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.

[参考译文] TMS320F28075:SCI RXERROR

Guru**** 657500 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1107383/tms320f28075-sci-rxerror

器件型号:TMS320F28075

您好专家、

我们在 F28075 SCI 调试中遇到问题:
1) SCI-RX 引脚始终具有数据(主机每100ms 发送一个数据帧、每个数据帧为15字节)、但寄存器 SCIFFRX.BIT.RXFFST 在大约30s 内为0;
2) 30秒期间、SCIRXST.RXERROR 和 SCIRXST.FE 都设置为1、软件没有复位串行端口(SW 复位未设置为1)、但后来读取​​SCIRXST.RXERROR 和 SCIRXST.FE 的值都为0;
3) 3)在 SCI 无法接收数据的现象持续大约30秒后、SCI 接收到的数据恢复正常。

有两个问题、请帮助回答、谢谢!
Q1:SCIRXST.RXERROR 设置为1后、SCI RX 缓冲器无法接收数据? SCIRXST.RXERROR 设置为1后、SCI 的接收/发送处理逻辑是多少? 《TMS320F2807x 微控制器技术参考手册》中未找到相关说明;
Q2:在 SCIRXST.RXERROR 被设定为1后、不执行软件复位。 为什么 SCIRXST.RXERROR 和 SCIRXST.FE 被清零?

SCI 配置代码如下:

    ScicRegs.SCICCR.all =0x0007;  
    ScicRegs.SCICTL1.all =0x0003;  
    ScicRegs.SCICTL2.bit.RXBKINTENA =0;
   //Baud rate is 38400 bit/s = 20000000/((64+1)*8)		 //LSPCLK  = 20MHz
    ScicRegs.SCIHBAUD.all = 0;//ARM_BAUD>>8;
    ScicRegs.SCILBAUD.all = 64;//ARM_BAUD&0x00ff;
    ScicRegs.SCICTL1.all =0x0023; 
    ScicRegs.SCIFFTX.all=0xC000;
    ScicRegs.SCIFFRX.all=0x10;
    ScicRegs.SCIFFCT.all=0;
    ScicRegs.SCIFFTX.bit.TXFIFORESET=1;  
    ScicRegs.SCIFFRX.bit.RXFIFORESET=1;  

BR

Emma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Emma:

    [引用 userid="278152" URL"~/support/microriors/c2000-microriers-group/C2000/f/c2000-microriers-forum/1107383/tms320f28075-sci-rxerror"]3)在 SCI 无法接收数据持续约30秒的现象之后,SCI 接收到的数据恢复正常。[/]

    为了澄清这30秒内没有收到数据是正确的吗? 当它恢复正常时、将接收新数据。  

    [~ userid="278152" URL"μ C/support/microrims/C2000-microset-group/C2000/f/C2000-microset-forum/1107383/tms320f28075-sci-rxerror"]Q1:SCIRXST.RXERROR 设置为1后、SCI RX 缓存无法接收数据? SCIRXST.RXERROR 设置为1后、SCI 的接收/发送处理逻辑是多少? 在"TMS320F2807x 微控制器技术参考手册"中未找到相关说明;

    我将在设计中检查出现错误时 SCI 模块的当前状态。 通常情况下、客户应在发生错误时实施软件复位、以便清除错误。  

    [~ userid="278152" URL"μ C/support/microsoftware/C2000-microsoftware-group/C2000/f/c2000-microsoftware-forum/1107383/tms320f28075-sci-rxerror"]Q2:SCIRXST.RXERROR 设置为1后、不执行软件复位。 为什么 SCIRXST.RXERROR 和 SCIRXST.FE 被清零?[/QUERPLET]

    只能通过软件复位或系统复位来清除 RXERROR。 系统是否在任何时候复位? 此外、RXERROR 是中断检测、组帧错误、溢出和奇偶校验错误的逻辑 OR。 看到的实际误差是多少?

    此致、

    Marlyn

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Emma:

    我仍在等待我们的设计团队的回复。 我会给他们另一条笔记、并在收到回复后立即告知他们所说的内容。  

    此致、

    Marlyn

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Emma:

    [引用 userid="315358" URL"~/support/microcontrollers/C2000-microcontrollers-group/CC2000/f/C2000-microcontrollers-forum/1107383/tms320f28075-sci-rxerror/4104534#4104534"]当出现错误时、我将使用设计检查 SCI 模块的当前状态。

    我听到设计团队的反馈、并确认即使 没有错误中断服务、SCI 模块也可以接收数据。

    此致、

    Marlyn