Hi,
We are using nRF52840 for our project. we need two UARTs
UART0 - for BLE
UART1 - for communicating with SOC
Zephyr RTOS supports following API for UART.
Async UART API
Interrupt-driven UART API
Polling UART API
Throughput measurement:
Setup:
nRF52840 UART0 and UART1 connected to ubuntu host using FTDI interface (USB to serial)
We implemented interrupt-driven api based application to send/receive data to/from ubuntu.
We are seeing throughput of max 11.8KBps rate at Baud rate 1Mbps, which is very low.
Rx receive only 1 byte per interrupt but Tx transmits 32 byte per interrupt.
hope, using Async api will improve the throughput as it uses DMA.
we are more inclined to use interrupt driven api because we are using hci_uart sample program for BLE controller, which is implemented using interrupt-driven api.
request you to clarify following queries
1. Can we use interrupt-driven api for UART0 and Async API for UART1 in same application?
2. Can we configure the RX FIFO length? ie) Is it possible for receive more than 1 byte per interrupt in interrupt-driven api?
Thanks in advance
Alaganraj