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

How do I reduce power consumption on the UART interface

In one of my projects, UART interface is used for the communication of external sensors. During the power consumption test, I found that when 9160 enters the idle state, its average current is about 600uA.  However, after I turn off UART, the average current in Idle state is only less than 100uA. Therefore, what method can be used to reduce the power consumption of UART?  So it goes to sleep after the data has been transmitted or it shuts down automatically or something like that?  

this is my prj.conf file:

#
# Copyright (c) 2019 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-BSD-5-Clause-Nordic
#
# General config
CONFIG_NEWLIB_LIBC=y
CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y
CONFIG_ASSERT=y
CONFIG_REBOOT=y
CONFIG_GPIO=y
CONFIG_TRUSTED_EXECUTION_NONSECURE=y

# Log
CONFIG_LOG=y
CONFIG_LOG_IMMEDIATE=y
CONFIG_USE_SEGGER_RTT=y
CONFIG_LOG_BACKEND_RTT=y
CONFIG_LOG_BACKEND_UART=n
CONFIG_LOG_DEFAULT_LEVEL=4
CONFIG_LOG_MODE_OVERFLOW=y
CONFIG_LOG_BACKEND_RTT_MODE_DROP=y
CONFIG_LOG_BACKEND_SHOW_COLOR=n
CONFIG_LOG_BACKEND_FORMAT_TIMESTAMP=n

# Modem info
CONFIG_MODEM_INFO=y

# BSD library
CONFIG_BSD_LIBRARY=y
CONFIG_BSD_LIBRARY_TRACE_ENABLED=n

# Flash
CONFIG_FLASH=y
CONFIG_IMG_ERASE_PROGRESSIVELY=y

# NVS
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_NVS=y
CONFIG_NVS_LOG_LEVEL_DBG=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y

# nRF Cloud
#CONFIG_CLOUD_API=y
#CONFIG_NRF_CLOUD=y
#CONFIG_NRF_CLOUD_LOG_LEVEL_DBG=y
#CONFIG_NRF_CLOUD_AGPS=y
# Needed for the cloud codec
#CONFIG_CJSON_LIB=y

# GPS
CONFIG_NRF9160_GPS=y
#CONFIG_GPS_USE_SIM=y
CONFIG_GPS_USE_EXTERNAL=y
CONFIG_GPS_DEV_NAME="NRF9160_GPS"
CONFIG_GPS_CONTROL_PSM_ENABLE_ON_START=y
CONFIG_GPS_CONTROL_FIRST_FIX_CHECK_DELAY=10
CONFIG_GPS_CONTROL_FIX_CHECK_INTERVAL=30
CONFIG_GPS_CONTROL_FIX_TRY_TIME=360
CONFIG_GPS_CONTROL_PSM_DISABLE_ON_STOP=n

# AT_CMD
#CONFIG_AT_HOST_LIBRARY=y
#CONFIG_UART_INTERRUPT_DRIVEN=y

# Console
CONFIG_CONSOLE_SUBSYS=n
CONFIG_CONSOLE_HANDLER=n
CONFIG_CONSOLE_GETCHAR=n
CONFIG_CONSOLE=n
CONFIG_RTT_CONSOLE=n
CONFIG_UART_CONSOLE=n

# Enable SUPL client support AGPS
CONFIG_SUPL_CLIENT_LIB=n

# Network
CONFIG_NETWORKING=y
CONFIG_NET_NATIVE=n
CONFIG_NET_SOCKETS_OFFLOAD=y
CONFIG_NET_SOCKETS=y
CONFIG_NET_SOCKETS_POSIX_NAMES=y

# LTE link control
CONFIG_LTE_LINK_CONTROL=y
CONFIG_LTE_AUTO_INIT_AND_CONNECT=n
CONFIG_LTE_NETWORK_USE_FALLBACK=n
CONFIG_LTE_NETWORK_TIMEOUT=600
CONFIG_LTE_NETWORK_MODE_LTE_M_GPS=n
CONFIG_LTE_NETWORK_MODE_NBIOT_GPS=y
CONFIG_LTE_LEGACY_PCO_MODE=y

# PSM
CONFIG_LTE_PSM_ENABLE=y
CONFIG_LTE_PSM_REQ_RPTAU="00100001"
CONFIG_LTE_PSM_REQ_RAT="00000000"

# eDRX
CONFIG_LTE_EDRX_ENABLE=n
CONFIG_LTE_EDRX_REQ_VALUE="1001"

# RAI
CONFIG_LTE_RAI_ENABLE=y

# MQTT
CONFIG_MQTT_LIB=y
CONFIG_MQTT_LIB_TLS=n
CONFIG_MQTT_PUB_TOPIC="device/auri/pushdata"
CONFIG_MQTT_SUB_TOPIC="device/auri/"
CONFIG_MQTT_CLIENT_ID="my-client-id"
CONFIG_MQTT_USER_NAME="admin123"
CONFIG_MQTT_PASSWORD="admin123"
CONFIG_MQTT_BROKER_HOSTNAME="47.107.51.89"
#CONFIG_MQTT_BROKER_HOSTNAME="18.135.53.53"
CONFIG_MQTT_BROKER_PORT=1883
CONFIG_MQTT_KEEPALIVE=300

# Library for buttons and LEDs
CONFIG_DK_LIBRARY=y
CONFIG_DK_LIBRARY_INVERT_LEDS=n

# Heap and stacks
CONFIG_HEAP_MEM_POOL_SIZE=16384
CONFIG_MAIN_STACK_SIZE=8192
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
CONFIG_HW_STACK_PROTECTION=y

# MCUBOOT
#CONFIG_BOOTLOADER_MCUBOOT=y
#CONFIG_IMG_MANAGER=y
#CONFIG_MCUBOOT_IMG_MANAGER=y

# SPI
CONFIG_SPI=y
CONFIG_SPI_NRFX=y
CONFIG_SPI_2=y
CONFIG_SPI_2_NRF_SPIM=y
CONFIG_SPI_3=y
CONFIG_SPI_3_NRF_SPIM=y

# I2C
CONFIG_I2C=y
CONFIG_I2C_NRFX=y
CONFIG_I2C_1=y
CONFIG_I2C_1_NRF_TWIM=y
CONFIG_I2C_2=n
CONFIG_I2C_2_NRF_TWIM=n
CONFIG_I2C_INIT_PRIORITY=60

# UART
#CONFIG_SERIAL=y
#CONFIG_UART_INTERRUPT_DRIVEN=y
#CONFIG_UART_LINE_CTRL=y
#CONFIG_UART_0_NRF_UART=y
#CONFIG_UART_0_NRF_UARTE=y
#CONFIG_UART_0_NRF_FLOW_CONTROL=n
#CONFIG_UART_1_NRF_UARTE=n
#CONFIG_UART_1_NRF_FLOW_CONTROL=n

# WIFI
CONFIG_WIFI=y

# Use smaller buffers for net_buf as CANBUS packets are quite small.
CONFIG_NET_BUF_DATA_SIZE=64
CONFIG_NET_BUF_USER_DATA_SIZE=1

#CONFIG_LOG=n
CONFIG_SERIAL=n

    

Parents Reply Children
No Data
Related