【原创】TI C2833x介绍---复位与中断(2)
0赞C2833x的中断源有很多,简单的归类可以分为片内的中断事件和片外的中断事件;片内的中断事件由片内的软硬件事件产生,比如3个CPU定时器、各个外设如eCAP、ePWM等、看门狗等,以及一些用户自定义的中断事件;片外的中断源则一般是与DSP的管脚联系在一起的,在特定管脚上检测到规定长度的脉冲或者上升沿、下降沿之后产生中断标志事件,比如XINT1-7外部触发中断管脚、Tz1-6与PWM有关的陷阱管脚(捕捉PWM故障以保护IGBT等)、上次提到的XRS管脚(产生复位事件)、XNMI_XINT13(不可屏蔽中断,non-maskable interrupt,有XNMICR寄存器控制是否使能)。其中,因为我们所使用的DSP片上外设较多,其中断事件也是多种多样,比如一个ePWM模块里面带的定时器就可以包含上溢、下溢、周期、定时等多种中断方法,而DSP的中断处理核心只能接受16个事件,这样就需要对外设产生的中断事件进行类似编码-译码,或者说是多路选择开关的操作,这就是配置外设中断时需要用到的PIE寄存器,即Peripheral Interrupt Expansion:外设中断扩展。用一个简图来表示这些中断源的处理方法如下:
图1 中断源的处理
说实话,在当年刚刚推出2812这个片子的时候,我理解这些概念也是花了很大的功夫(我记得是一个冬天的下午,在暖气边上晒着太阳整整看了数小时,却什么也没理解),完全没有“书读百遍,其义自见”的那种效果,现在想想就是因为死对着datasheet从头看到尾,看完前面忘了后面,完全是效率很低的事情。所以在一开始只要有个整体的概念就好,知道配置的流程、工作原理在哪里可以查到,然后亲自编写程序、配置并调试一个代码,理解起来要快的多。