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.
大家好
我目前正在使用 TMS320F28388D。
我想使用921600处的 SCI 速度。
当前使用的主时钟使用20Mhz。
系统时钟的工作频率为200MHz、
LSPCLK 以50MHz 频率运行、具有4个分频。
此时、我尝试以波特率921600运行 SCI、
当 SCI 被传送到 Teraterm 等程序时、数据被断开。
连接连接方式如下。
28388D SCI 端口-> ISO7221A (隔离器)-> FT234XD -> USB 端口
ISO7221A 使用的最大传输速度为1Mbps、但 当使用示波器测量相应的波形时、已确认其正常输出。
FT234XD 在3Mbps 时具有足够的裕量。
下面是 SCI 的初始化代码。
void initSCIAFIFO() { SCI_setConfig(SCIA_BASE, DEVICE_LSPCLK_FREQ, 921600, (SCI_CONFIG_WLEN_8 | SCI_CONFIG_STOP_ONE | SCI_CONFIG_PAR_NONE)); SCI_enableModule(SCIA_BASE); SCI_resetChannels(SCIA_BASE); SCI_enableFIFO(SCIA_BASE); SCI_enableInterrupt(SCIA_BASE, (SCI_INT_RXFF | SCI_INT_TXFF)); SCI_disableInterrupt(SCIA_BASE, SCI_INT_RXERR); SCI_setFIFOInterruptLevel(SCIA_BASE, SCI_FIFO_TX2, SCI_FIFO_RX1); SCI_performSoftwareReset(SCIA_BASE); SCI_resetTxFIFO(SCIA_BASE); SCI_resetRxFIFO(SCIA_BASE); }
由 SCI_setConfig 函数计算得出的波特率921600为
SCIHBAUD = 0;
SCILBAUD = 5;
它具有上述值。 它是正确的吗?、
我认为它已正常初始化
数据会产生奇怪的结果。
请帮助
谢谢
您好!
感谢您的提问。 使用您所示的时钟、可能无法实现921600的波特率。 使用您选择的 BRR 设置、您将获得921600波特率的+13.03%(实际波特率将为1041667)。
最接近的 BRR 值为"6"、对应于892857波特率和-3.12%。 对于稳定的通信、这可能仍然离921600太远。
请尝试将其他设备的波特率更改为892857 (最近)或1041667。
此致、
Vince