Hi,
I am working with QN9021 in SOC Mode, implementing a Quintic private profile in Server Role.
The highlights of my project configuration are:
driver_config.h :
#define __AHB_CLK CLK_32M /*!< AHB clock frequency */
#define __APB_CLK CLK_32M /*!< APB clock frequency */
#define __BLE_CLK CLK_16M /*!< BLE clock frequency */
usr_config.h :
#define CFG_DC_DC
#define CFG_DEEP_SLEEP
#define CFG_BLE_SLEEP
Hardware design:
Firmware:
I can see, debugging the board that program is entering deep sleep mode (then, generating a interrupt in a GPIO will wake the device up).
Finally, the question is:
How can I achieve the 2uA of current consumption in deep sleep mode?? Because, with settings mentioned above, I am getting around 60uA and I have tried different options (QN_32K_LOW_POWER_MODE_EN = TRUE and FALSE, CFG_DC_DC defined and commented, etc) and can not decrease QN9021 power consumption.
Thank you in advance!
Hello Rodrigo Garbi,
Achieving the lowest power can be a little tricky since it depends on a lot of factors like hardware and software. Since you are using a custom board, I can't be sure what is causing your excess current. I tested the demo with the QN9020DK and measured ~2µA. The first thing that comes to mind is to remove #define CFG_DC_DC because your power supply is configured without DC-to-DC converter as shown in Fig 9. QN9021 typical application schematic without DC-to-DC converter in the QN902x datasheet.
Try configuring your used GPIOs as inputs.
Try to run the sleep demo located in "C:\QBlue\QN9020\QBlue-1.3.9\Projects\Driver\sleep" and see if you get different results. You can set the following macros in sleep_example.c to go to deep sleep:
#define TEST_SLEEP_CPU_CLK_OFF FALSE
#define TEST_SLEEP_NORMAL FALSE
#define TEST_SLEEP_DEEP TRUE
Run the demo and press BUTTON1 (P1.4) to go to deep sleep.
Let me know if you managed to reduce your current.
Regards,
Gerardo