TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28335: SCI FIFO中断的问题

Part Number:TMS320F28335

在使用FIFO增强功能的时候,配置SCI FIFO接收或发送中断时,发现一个问题,对于接收中断,手册上的说法如下:

TXFFIL4-0 Transmit FIFO interrupt level bits.
The transmit FIFO generates an interrupt whenever the FIFO statusbits (TXFFST4-0) are less than or equal to the FIFO level bits(TXFFIL4-0). The maximum value that can be assigned to these bits
to generate an interrupt cannot be more than the depth of the TXFIFO. The default value of these bits after reset is 00000b. Usersshould set TXFFIL to best fit their application needs by weighingbetween the CPU overhead to service the ISR and the best possibleusage of SCI bus bandwidth.

我理解为当FIFO TXFFST发送状态寄存器的数小于或等于深度TXFFIL的值时,会产生中断,那如果把TXFFIL的值设为16,此时状态寄存器的值必然小于或等于16,岂不是一直会产生中断,那何时会停止产生中断?而且在启用FIFO模式时,向SCITXBUF写入字符,字符会一个字节一个字节的传输到SCI-TXFIFO,从而TXFFST发送状态寄存器的数增加,但仍然小于TXFFIL的值,此时也会产生中断?如果把TXFFIL的值设为0,是不是可以理解为当数据完全发送出去后,才会产生中断。

Yale Li:

结合TRM 593页的框图会更好理解一些。

ke Lan said:那如果把TXFFIL的值设为16,此时状态寄存器的值必然小于或等于16,岂不是一直会产生中断,

是的;

TX FIFO的level中断用来提醒程序FIFO中的数据已经快要发送完了,如果还需要发送的话,请添加新的数据进来。比如设置为2,每次往FIFO中写8个数据;每次发送到只剩两个的时候,就会产生TX FIFO level中断,在这个中断中向FIFO中写入新的数据发送,或做相关处理。试想一下如果不是小于等于触发,而是大于等于触发,那么这个中断要么一直不会触发(写入的数据量小于深度),要么一直触发(写入的数据量大于深度),才不符合使用的逻辑,这个中断也失去了意义。

,

ke Lan:

好的,谢谢答复。

,

Yale Li:

不客气

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28335: SCI FIFO中断的问题
分享到: 更多 (0)