Tool/software:
29-jun-2025
Dear E2E Support Team,
Subject: UART Communication Error on AM243xLP Ver A
I'm working with the AM243xLP version A board, utilizing UART #3 and UART #4 configured at 3,000,000 baud rate, 8 bits, 1 stop bit, and no parity. While transmitting long messages consisting of an 8-bit counter sequence (0x00 to 0xFF), I've encountered consistent errors after approximately 1000 characters.
Specifically:
- For a 1200-byte message, after about 1000 characters, sending 0x94 resulted in receiving 0xA4. Subsequently, the received bytes increment incorrectly (0xA5, 0xA6, etc.).
- Similarly, another type of error occurred when sending 0x00; the received byte was incorrectly 0x10, followed by sequential errors.
My setup involves polling-mode UART transmission triggered by a 150 µs timer interrupt. I verified that the array holding data prior to UART transmission contains the correct data, indicating no issues before entering the UART transmit buffer.
Here is the relevant transmission code snippet:
tx_fifo_cycle13[uart_id] = UART_hwregs[uart_id]->TXFIFO_LVL;
tx_fifo_place = 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;
}
Could you please advise on potential causes for these UART transmission errors and suggest corrective actions?
Thank you for your assistance.
Best regards,
Baruch Einziger
