新闻中心

EEPW首页>嵌入式系统>设计应用> AVR和TMS320VC5402的HPI接口通信设计

AVR和TMS320VC5402的HPI接口通信设计

作者: 时间:2012-03-06 来源:网络 收藏

#pragma interrupt_handler int2_isr:4
void int2_isr(void)
{
unsigned int number;
AL = 0x0f;
AH = 0xff;
for(number=0;number120;number++) /* 传送vector数据段 */
{
AUTOWL = vector[number]>>8;
AUTOWH = vector[number];
}
…… /* 传送其他数据段 */
AL = 0x00; /* 设置DSP程序入口地址 */
HPIAH = 0x7f;
WRITEL = 0x30;
WRITEH = 0x00;
while(((PIND 0x04)==0x00)) /* 撤销DSP的中断申请 */
{
HPICL = 0x0;
HPICH = 0x8;
}
}

4.软件框架

4.1. 主控器命令的发布

是主控器,DSP是从机。和DSP之间通过DSP内部存储器的命令缓冲区和响应标识缓冲区交换信息。AVR触发DSP的HPI中断通知DSP 有新的命令,DSP通过向响应标识缓冲区写入不同的内容向AVR表明DSP所处的状态。AVR通过查询的方式确定DSP的处理状态。

AVR发布命令的程序框架:
HPIAL = 0x00;
HPIAH = 0x60;
WRITEL = orderhighbyte;
WRITEH = orderlowbyte; /* 向命令缓冲区0x60写入命令*/
HPIAL = 0x00;
HPIAH = 0x61;
WRITEL = orderhighparameter;
WRITEH = orderlowparameter; /*向命令缓冲区0x61写入命令参数*/
HPICL = 0x0; /*触发DSP中断*/
HPICH = 0x4;
dsphpidata = 0x00;
HPIAL = 0x00;
HPIAH = 0x62;
while((dsphpidata != 0xaa)) /*判断响应标识区0x62内容是否为0xaaaa*/
{
dsphpidata = READL;
dsphpidata = READH;
}
……



评论


相关推荐

技术专区

关闭