Hi,
I've got an application based off the asset tracker firmware that needs a UART. From the many threads on the topic, I've found a way to shut down the UARTs to save power but I cannot shut down the console UART since the +CEREG notifications are coming in periodially.
If a notification comes in with the console UART_0 shut off, the application crashes.
In my application prj.conf I've got:
# UART 2 CONFIG_SERIAL=y CONFIG_UART_NRFX=y CONFIG_UART_INTERRUPT_DRIVEN=y CONFIG_UART_2_NRF_UARTE=y # Console CONFIG_STDOUT_CONSOLE=n CONFIG_LOG=n CONFIG_BOOT_BANNER=n CONFIG_PRINTK=n #CONFIG_CONSOLE_SUBSYS=y #CONFIG_CONSOLE_HANDLER=y #CONFIG_CONSOLE_GETCHAR=y # LOG config: CONFIG_LOG=n CONFIG_LOG_IMMEDIATE=n CCONFIG_AWS_FOTA_LOG_LEVEL=0 CONFIG_AWS_JOBS_LOG_LEVEL=0 CONFIG_LTE_LINK_CONTROL_LOG_LEVEL=0 CONFIG_AT_NOTIF_LOG_LEVEL=0 CONFIG_NRF_CLOUD_LOG_LEVEL=0 CONFIG_NRF9160_GPS_LOG_LEVEL=0 CONFIG_MODEM_INFO=n # Modem info #CONFIG_MODEM_INFO=y
And my SPM prj.conf is:
CONFIG_IS_SPM=y CONFIG_FW_INFO=y CONFIG_GPIO=n CONFIG_STDOUT_CONSOLE=n CONFIG_LOG=n CONFIG_BOOT_BANNER=n CONFIG_PRINTK=n
To shut the UARTs down, I'm calling these disable functions:
// nrf_uarte_disable(NRF_UARTE0); nrf_uarte_disable(NRF_UARTE2);
Note: this other suggested method from older threads didn't lower the sleep power consumption. It was still at 1.5mA:
// Start the UART (stopped for reduced power consumption) NRF_UARTE1_NS->ENABLE = 8; NRF_UARTE1_NS->TASKS_STARTTX = 1; NRF_UARTE1_NS->TASKS_STARTRX = 1; <use uart> // Stop the UART for reduced power consumption NRF_UARTE1_NS->TASKS_STOPRX = 1; NRF_UARTE1_NS->TASKS_STOPTX = 1; NRF_UARTE1_NS->ENABLE = 0;
What else can I do to disable all console output so I can safely turn off UART_0?
Thanks,
Tim