DSP C6727 没有提供专门的外部中断引脚,使用McASP AMUTEIN引脚作为外部中断引脚,利用McASP的AMUTEiN事件触发dMAX,使dMAX产生相应的中断递交给CPU (可用中断:INT9,INT10,INT11,INT12,INT13,INT15)。
详细步骤如下:
1, 配置CFGMCASPx寄存器,选择AMUTEINx引脚
可选引脚:
2, 将上一步选择的相应管脚配置为GPIO 输入引脚
3, 在相应McASP模块中,禁止AMUTEIN信号驱动AMUTE输出,通过将AMUTE寄存器的INEN位清“0”来实现。
4, 配置dMAX (SPRU795d)
1) 配置DEPR寄存器,选择上升沿或下降沿触发
2) 配置DEHPR或DELPR寄存器,选择高优先级或低优先级
3) 配置EVENT ENTRY,选择中断号,将其保存在对应的Param位置
4) 配置DEER寄存器,使能相应的dMAX事件
5, 配置中断(SPRU733A)
修改中断向量表,将相应中断的跳转地址改为对应的中断服务程序(也可通过程序实现),然后使能相应中断:
1) 禁止全局中断 CSR.GIE = 0
2) 使能相应中断 IER.IEn = 1
3) 使能NMI中断 IER.NMIE=1
4) 使能全局中断 CSR.GIE=1
6, 加入C6727补丁(非常重要!!)
在CMD文件或编译选择的LINKER配置中加入以下两句:
7,ok,编译,运行,enjoy
CCS 3.3下测试,AMUTEN0/1/2均可成功触发所有dMAX支持的中断,三个中断同时工作也正常。
BTW:
如果需要使用CSL或DSP/BIOS,可参考文献:SPRAAJ3: Configuring External Interrupts on TMS320C672x Devices及其示例
配置代码:
详细步骤如下:
1, 配置CFGMCASPx寄存器,选择AMUTEINx引脚
可选引脚:
2, 将上一步选择的相应管脚配置为GPIO 输入引脚
3, 在相应McASP模块中,禁止AMUTEIN信号驱动AMUTE输出,通过将AMUTE寄存器的INEN位清“0”来实现。
4, 配置dMAX (SPRU795d)
1) 配置DEPR寄存器,选择上升沿或下降沿触发
2) 配置DEHPR或DELPR寄存器,选择高优先级或低优先级
3) 配置EVENT ENTRY,选择中断号,将其保存在对应的Param位置
4) 配置DEER寄存器,使能相应的dMAX事件
5, 配置中断(SPRU733A)
修改中断向量表,将相应中断的跳转地址改为对应的中断服务程序(也可通过程序实现),然后使能相应中断:
1) 禁止全局中断 CSR.GIE = 0
2) 使能相应中断 IER.IEn = 1
3) 使能NMI中断 IER.NMIE=1
4) 使能全局中断 CSR.GIE=1
6, 加入C6727补丁(非常重要!!)
在CMD文件或编译选择的LINKER配置中加入以下两句:
7,ok,编译,运行,enjoy
CCS 3.3下测试,AMUTEN0/1/2均可成功触发所有dMAX支持的中断,三个中断同时工作也正常。
BTW:
如果需要使用CSL或DSP/BIOS,可参考文献:SPRAAJ3: Configuring External Interrupts on TMS320C672x Devices及其示例
配置代码: