UART with DMA and use PM to enable the LOWPOWER mode

Hi everyone

I am using nrf52840 costume board. and using NUS ( Nordic Uart Service ) as the basic start sample.

My desire:

1. UART0 and UART1 work in async mode with DMA

2. SPI for external flash

3. I2C for external sensor

4. Power Management

My Problem:

When I enable CONFIG_BT_NUS_UART_ASYNC_ADAPTER=y and CONFIG_UART_INTERRUPT_DRIVEN=y I can send data to uart0 and uart1 but Timeout interrupt does not work while receiving and the rx callback runs only on buffer full condition

When I disable CONFIG_BT_NUS_UART_ASYNC_ADAPTER=n and CONFIG_UART_INTERRUPT_DRIVEN=n send and receive is working but SUSPENDING UARTs by Power Management causes RESTART in MCU it seems that timeout interrupt is the reason . I am using  pm_device_action_run(uart0PM_DEVICE_ACTION_SUSPEND); and pm_device_action_run(uart1PM_DEVICE_ACTION_SUSPEND);  for power management.

Please guide me how can I use two UART with DMA and use PM to enable the LOWPOWER mode ( current consumption should be less than 10 uA ) without  restart .
Parents Reply Children
No Data
Related