This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

High Fequency UART transmissions

I am using the nrf52832 with its Development kit to transmit trough UART to the PC a frame with 26 bytes, I have configured the port to 1MBoudRate. Once I prepare the frame I use the next instructions to transmit:

while(nrf_drv_uart_tx_in_progress()){}; nrf_drv_uart_tx(finalframe ,26);

The intention is to transmit a new frame every 250uS which implies a frequency of 4kHz. In theory if I have settled the speed to 1MboudRate this should be possible, however, the frames are not received right, 1 of every 8 frames has a byte missing. It starts to send all bits properly when the frequency decreases to 2,5kHz.

Any idea why this could be happening? Maybe can I use another transmit function to tx using UART?

Parents
  • No, I have just checked and I don't get any APP_UART_FIFO_ERROR on the UART handler. No matter the value that I put on the TX_BUF_SIZE. The only thing is that if I put a number on TX_BUF_SIZE that is not power of 2, then the UART module does not work. But there is no difference or error if I put 1, 256 or 1024 on TX_BUF_SIZE.
    What other evaluation can I do to verify if the problem is related with the FIFO?

Reply
  • No, I have just checked and I don't get any APP_UART_FIFO_ERROR on the UART handler. No matter the value that I put on the TX_BUF_SIZE. The only thing is that if I put a number on TX_BUF_SIZE that is not power of 2, then the UART module does not work. But there is no difference or error if I put 1, 256 or 1024 on TX_BUF_SIZE.
    What other evaluation can I do to verify if the problem is related with the FIFO?

Children
No Data
Related