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

BMD 300 Baud rate

I am running a NUS at 115200 Baud and it works fine but when I run it at 921600 my BMD 300 triggers a Serial Fault.   Is there a trick to get the 921600 to work without flow control.

Parents
  • Hi,

    The app_uart library used by ble_app_uart can only receie a single byte at a time, causing lots of interrupts for the CPU to update the buffer to receive more bytes. This limits the effective throughput and will give overflow errors on high baudrate/throughput without HWFC.

    The Libuarte - advanced UARTE driver was created specifically to resolve this issue, using multiple larger buffers together with timers and PPI to handle switching and timeouts. If you replace app_uart with libUARTE, you should be able to use the higher baudrate.

    Here is a good starting point for you!

    Best regards,
    Jørgen

Reply
  • Hi,

    The app_uart library used by ble_app_uart can only receie a single byte at a time, causing lots of interrupts for the CPU to update the buffer to receive more bytes. This limits the effective throughput and will give overflow errors on high baudrate/throughput without HWFC.

    The Libuarte - advanced UARTE driver was created specifically to resolve this issue, using multiple larger buffers together with timers and PPI to handle switching and timeouts. If you replace app_uart with libUARTE, you should be able to use the higher baudrate.

    Here is a good starting point for you!

    Best regards,
    Jørgen

Children
Related