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用作232串口时,使用FIFO接收,是否有超时中断之类的机制

Other Parts Discussed in Thread: POWERSUITE

您 好!

    如题,我在使用28377的SCI配置成UART,使能了FIFO,RXFIFO的中断等级为8字节,比如我在收到了3个字节后,未达到FIFO中断数量,但一直没收到新的数据,此时是否可以产生一个中断,读走FIFO中的数据?

   还有,recieve中的break中断是什么用途的,当我把RX线接地时,一直收到frame error的中断,但没有break error置位,是不是要刚好10个电平宽度?

  • 是的,break就是总线空闲功能,是用于判断总线是否在空闲状态。

    关于FIFO,F28377的SCI的FIFO是16个word的深度,就是可以装载16个word的buffer。可以在不达到最大FIFO的状态下就产生SCI中断,只要使能RXFFINT位和设置RXFFIL位来设定触发中断的深度就可以

  • 是这样的,我将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引脚上无电平跳变,则产生一个空闲中断,如果是这样,是不是合理些?

  • 其他肯定正常啊,在发送接收数据的时候都是内部推挽产生高低电平,你上拉不起作用的。一般来说UART一类的外设空闲的时候都是低电平的。

  • 既然上拉不起作用,为什么调试时发送3个字节从来没进去过中断,而要发送12个以上的字节才进接收中断。

    注意到手册上有说,使用FIFO的SCI,receive break中断使能位为RXERRINTENA,中断标志位为RXERR,是否只需要关注这两个位,而TX/BKINTENA位就可以忽略了?

  • 发送几个字节进中断只和你fifo设置的中断深度有关系啊。你RXBKINTENA还是要使能,否则不会触发中断

  • 我测试时RXBKINTENA、RXERR、RXFIFO这三个中断我都使能了,发送低于FIFO设置的中断深度的字节数,就不会触发中断。

  • 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在收到回车字符后就能产生中断,不知道有没有支持?谢谢

  • 楼主,您好!复位break error,我们测得需要9ms的时间,您测试是多长时间呢?