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.

[参考译文] TMS320F28386D:SCI

Guru**** 2455560 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1240250/tms320f28386d-sci

器件型号:TMS320F28386D

没有 SCI RXFFIL 的清除单元。

TI 是否可以提供此信息?  单位是字节或字。

  

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

    单位是字、本质上说、RxFFIL 中的值设置了此次跳闸之前在 RXFIFO 中接收到的字数的阈值。

    此致!

    马修

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

    我对它进行测试、结果显示该单位是字节。

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

    我发送了一个字节、它将进入中断函数。

    如果我发送了两个字节、它将 两次进入中断函数。

    中断无效 sciaRxFifoIsr (void)
    INTERRUPT_register (INT_SCIA_RX、sciaRxFifoIsr);
    void Init_SCI_A(void){
        //
        // 8 char bits, 1 stop bit, no parity. Baud rate is 115200.
        //
        SCI_setConfig(SCIA_BASE, DEVICE_LSPCLK_FREQ, 115200, (SCI_CONFIG_WLEN_8 |
                                                            SCI_CONFIG_STOP_ONE |
                                                            SCI_CONFIG_PAR_NONE));
        SCI_enableModule(SCIA_BASE);
        SCI_resetChannels(SCIA_BASE);
        SCI_enableFIFO(SCIA_BASE);
    
        //
        // RX and TX FIFO Interrupts Enabled
        //
        SCI_enableInterrupt(SCIA_BASE, (SCI_INT_RXFF | SCI_INT_RXERR ));
        SCI_disableInterrupt(SCIA_BASE, (SCI_INT_TXFF | SCI_INT_RXRDY_BRKDT | SCI_INT_TXRDY));
    
        //
        // The transmit FIFO generates an interrupt when FIFO status
        // bits are less than or equal to 2 out of 16 words
        // The receive FIFO generates an interrupt when FIFO status
        // bits are greater than equal to 2 out of 16 words
        //
        SCI_setFIFOInterruptLevel(SCIA_BASE, SCI_FIFO_TX16, SCI_FIFO_RX1);
        SCI_performSoftwareReset(SCIA_BASE);
    
        SCI_resetTxFIFO(SCIA_BASE);
        SCI_resetRxFIFO(SCIA_BASE);
    }
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉、我认为存在一种命名惯例差异、造成了这里的混淆。

    接收 FIFO 实际上是10位宽、以便也可以保存奇偶校验和组帧错误标志位。  虽然实际的通信信息是一个字节(8位数据)、但会捕获10位信息;所以我想这就是 TRM 把它称为"字"的原因。

    不要将它与所示的数据字(16位)相混淆。

    因此、FIFO 阈值和状态寄存器中的1个"字"是指1个"字节"的数据。

    我承认、发送 FIFO 只有8位宽、因此在概念上、我们本来可以在其 FIFO 中使用"字节"一词、但很可能是使用了字来实现一致性。

    在中、上述所有"字"指的是1个 FIFO 位置、无论它是8位还是10位。

    此致!

    马修

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

    感谢您的双重确认。