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

28377的sci的fifo发送中断问题

各位工程师:

如题:28377的sci的fifo发送中断是用ScicRegs.SCIFFTX.bit.TXFFIL这一位来匹配进行触发的,这就意味着当最后一个数据从发送fifo队列中移送到移位寄存器中

后就触发发送中断,请问一下是这样的吗?

如果是这样的,我的理解这个发送中断就不是发送完中断,因为fifo队列为空的时候,最后一个数据还没从发送管脚上发送出去。我们一般用485作为串口发送和接收,而485芯片又涉及到使能发送和接收的信号,如果发送中断的时候数据并没有完全发送完毕,我就不得不在发送中断服务函数中等待ScicRegs.SCICTL2.bit.TXEMPTY置位后才能配置将485的接收使能打开,这样就会影响代码执行的效率。

请问28377有没有什么思路能够使得在进入发送中断服务函数的第一时间就可以使能485接收而不用等待查询ScicRegs.SCICTL2.bit.TXEMPTY的方法实现发送完同步打开485接收。

非常感谢!

HeiHei:

我的理解是 当最后一个数据送到移位寄存器寄存器,直到中断开始相应并处理的时候,这段时间内,数据已经发送完了

各位工程师:

如题:28377的sci的fifo发送中断是用ScicRegs.SCIFFTX.bit.TXFFIL这一位来匹配进行触发的,这就意味着当最后一个数据从发送fifo队列中移送到移位寄存器中

后就触发发送中断,请问一下是这样的吗?

如果是这样的,我的理解这个发送中断就不是发送完中断,因为fifo队列为空的时候,最后一个数据还没从发送管脚上发送出去。我们一般用485作为串口发送和接收,而485芯片又涉及到使能发送和接收的信号,如果发送中断的时候数据并没有完全发送完毕,我就不得不在发送中断服务函数中等待ScicRegs.SCICTL2.bit.TXEMPTY置位后才能配置将485的接收使能打开,这样就会影响代码执行的效率。

请问28377有没有什么思路能够使得在进入发送中断服务函数的第一时间就可以使能485接收而不用等待查询ScicRegs.SCICTL2.bit.TXEMPTY的方法实现发送完同步打开485接收。

非常感谢!

shook xu:

回复 HeiHei:

我实验了一下不是这样的,中断发生的时候数据并没有发送完,严格的说是刚开始发送fifo中的最后一个数据。当然我不知道我的中断设置有什么不对的地方,我设计的就是用fifo的匹配等级来触发中断的。不知道有没有可以设置成发送完数据来触发中断的方法?

各位工程师:

如题:28377的sci的fifo发送中断是用ScicRegs.SCIFFTX.bit.TXFFIL这一位来匹配进行触发的,这就意味着当最后一个数据从发送fifo队列中移送到移位寄存器中

后就触发发送中断,请问一下是这样的吗?

如果是这样的,我的理解这个发送中断就不是发送完中断,因为fifo队列为空的时候,最后一个数据还没从发送管脚上发送出去。我们一般用485作为串口发送和接收,而485芯片又涉及到使能发送和接收的信号,如果发送中断的时候数据并没有完全发送完毕,我就不得不在发送中断服务函数中等待ScicRegs.SCICTL2.bit.TXEMPTY置位后才能配置将485的接收使能打开,这样就会影响代码执行的效率。

请问28377有没有什么思路能够使得在进入发送中断服务函数的第一时间就可以使能485接收而不用等待查询ScicRegs.SCICTL2.bit.TXEMPTY的方法实现发送完同步打开485接收。

非常感谢!

li jianguo:

回复 shook xu:

你的理解是正确的,c28x  SCI 的fifo中断是最后一个数据发送出去是触发的(当TXFFIL4-0 = 0时)。

此时移位寄存器还没有发完,TX EMPTY是不能触发中断的,SCI这个功能使用很不方便。

各位工程师:

如题:28377的sci的fifo发送中断是用ScicRegs.SCIFFTX.bit.TXFFIL这一位来匹配进行触发的,这就意味着当最后一个数据从发送fifo队列中移送到移位寄存器中

后就触发发送中断,请问一下是这样的吗?

如果是这样的,我的理解这个发送中断就不是发送完中断,因为fifo队列为空的时候,最后一个数据还没从发送管脚上发送出去。我们一般用485作为串口发送和接收,而485芯片又涉及到使能发送和接收的信号,如果发送中断的时候数据并没有完全发送完毕,我就不得不在发送中断服务函数中等待ScicRegs.SCICTL2.bit.TXEMPTY置位后才能配置将485的接收使能打开,这样就会影响代码执行的效率。

请问28377有没有什么思路能够使得在进入发送中断服务函数的第一时间就可以使能485接收而不用等待查询ScicRegs.SCICTL2.bit.TXEMPTY的方法实现发送完同步打开485接收。

非常感谢!

shook xu:

回复 li jianguo:

这样的触发中断的方式,我的理解就是个伪中断了,但其他的芯片好像都是这么做的,比如英飞凌的xc164也是这样设计的,这其中有什么深远的含义吗,比如在某些场合就必须这样才更方便,大家可以讨论讨论。如果这种方式都给大家设计带来了不便利的话,能不能反馈给ti看能不能更改这个设计呢?大家集思广益哈。

各位工程师:

如题:28377的sci的fifo发送中断是用ScicRegs.SCIFFTX.bit.TXFFIL这一位来匹配进行触发的,这就意味着当最后一个数据从发送fifo队列中移送到移位寄存器中

后就触发发送中断,请问一下是这样的吗?

如果是这样的,我的理解这个发送中断就不是发送完中断,因为fifo队列为空的时候,最后一个数据还没从发送管脚上发送出去。我们一般用485作为串口发送和接收,而485芯片又涉及到使能发送和接收的信号,如果发送中断的时候数据并没有完全发送完毕,我就不得不在发送中断服务函数中等待ScicRegs.SCICTL2.bit.TXEMPTY置位后才能配置将485的接收使能打开,这样就会影响代码执行的效率。

请问28377有没有什么思路能够使得在进入发送中断服务函数的第一时间就可以使能485接收而不用等待查询ScicRegs.SCICTL2.bit.TXEMPTY的方法实现发送完同步打开485接收。

非常感谢!

li jianguo:

回复 shook xu:

个人希望TI能更改这个设计。

赞(0)
未经允许不得转载:TI中文支持网 » 28377的sci的fifo发送中断问题
分享到: 更多 (0)