工具/软件:
29-2025
尊敬的 E2E 支持团队:
主题:AM243xLP 版本 A 上的 UART 通信错误
我正在使用 AM243xLP A 版电路板、利用 UART #3 和 UART #4、配置为 3,000,000 波特率、8 位、1 个停止位、无奇偶校验。 在传输由 8 位计数器序列 (0x00 到 0xFF) 组成的长消息时、我在大约 1000 个字符后遇到了一致的错误。
具体来说:
- 对于 1200 字节的消息、大约 1000 个字符后、发送 0x94 会导致接收 0xA4。 随后、接收到的字节不正确递增(0xA5、0xA6 等)。
- 类似地、发送 0x00 时发生了另一种类型的错误;接收到的字节是不正确的 0x10、然后是顺序错误。
我的设置涉及由 150µs 计时器中断触发的轮询模式 UART 传输。 我已验证在 UART 传输之前保存数据的阵列包含正确的数据、表明在进入 UART 发送缓冲区之前没有问题。
下面是相关的传输代码片段:
tx_fifo_Cycle13[uart_id]= uart_hwregs[uart_id]->TXFIFO_LVL;
tx_fifo_cplace = max_char_fifo_tx - tx_fifo_cycle13[uart_id];
if (tx_fifo_place < output_message_length[uart_id]){
for (send_index = 0;send_index < tx_fifo_place;send_index++){
tx_save_tx_buff[uart_id][tx_save_tx_buff_index[uart_id]+]=*uart_data_to_send[uart_id];
uart_hwregs[uart_id]->RBR_THR_DLL =(uint32_t)*uart_data_to_send[uart_id]++;
}
output_message_length[uart_id]-= tx_fifo_place;
}
您能否说明这些 UART 传输错误的潜在原因并提出纠正措施建议?
感谢您的帮助。
此致、
Baruch Einziger
