您 好!
如题,我在使用28377的SCI配置成UART,使能了FIFO,RXFIFO的中断等级为8字节,比如我在收到了3个字节后,未达到FIFO中断数量,但一直没收到新的数据,此时是否可以产生一个中断,读走FIFO中的数据?
还有,recieve中的break中断是什么用途的,当我把RX线接地时,一直收到frame error的中断,但没有break error置位,是不是要刚好10个电平宽度?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您 好!
如题,我在使用28377的SCI配置成UART,使能了FIFO,RXFIFO的中断等级为8字节,比如我在收到了3个字节后,未达到FIFO中断数量,但一直没收到新的数据,此时是否可以产生一个中断,读走FIFO中的数据?
还有,recieve中的break中断是什么用途的,当我把RX线接地时,一直收到frame error的中断,但没有break error置位,是不是要刚好10个电平宽度?
是这样的,我将FIFO的触发深度设置为12字节,如果我上位机发送了一条16个字节的命令,这样第一次中断时读走了12字节,而第二次接收的4字节由于达不到FIFO触发深度,就不会产生中断了,这时就需要一个总线空闲中断来读走剩余的4字节。
break是空线空闲功能?RS232总线空闲是高电平,但break中断的产生是SCIRXD线持续10bit以上的低电平啊
RS232是你外部还要加PHY芯片,关键看的是SCI的RX上是不是持续10bit以上的低电平,SCI的TTL电平不可能在空闲时候被拉高的。232驱动芯片外面的信号不能影响前面的
为什么TTL电平不可能在空闲时被拉高?如果停止位是高,发送完成后,就一直处于高,这样不合理?
我这边电路上SCIRX引脚上拉到了3.3V,在调试232串口时,除了空闲中断其他一切功能都正常啊
还有,break功能为什么不改成:成功接收到一个stop位后,连续10bit以上SCIRX引脚上无电平跳变,则产生一个空闲中断,如果是这样,是不是合理些?
既然上拉不起作用,为什么调试时发送3个字节从来没进去过中断,而要发送12个以上的字节才进接收中断。
注意到手册上有说,使用FIFO的SCI,receive break中断使能位为RXERRINTENA,中断标志位为RXERR,是否只需要关注这两个位,而TX/BKINTENA位就可以忽略了?
https://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter#Break_condition
手册上说:A break conditionoccurs when the SCI receiver data line (SCIRXD) remains continuously low for at least ten bits,beginning after a missing first stop bit.
从28377手册来看,break不是空闲中断,而你们PowerSuite中,gridConnectedInverterLCLFltr工程中,也将BRKDT状态用于串口复位
我并没有在28377的手册上找到有关SCI idle中断的说明,应该是不具备这个功能
手册上这那句说明就是指的SCIRXD引脚上的状态,跟你们内部的推挽电路没关系吧,如果UART的空闲是低电平,而UART的起始位也是低,那不是一定会产生Frame Error?
http://e2e.ti.com/support/microcontrollers/c2000/f/171/p/493128/1783164#1783164
http://e2e.ti.com/support/microcontrollers/c2000/f/171/t/59694
楼主,这个问题后来解决了吗?我现在也是使能了8级FIFO,我希望FIFO在收到回车字符后就能产生中断,不知道有没有支持?谢谢