Skip to main content
ngodoanvan
Associate III
July 6, 2022
Solved

How to reduce Rx consumption current?

  • July 6, 2022
  • 6 replies
  • 2584 views

Hi,

My project is SubGHZ Phy Ping Pong. In AN5568 the Rx consumption varies from 4mA to 10mA. In my project, the Rx consumption current from 8mA to 9mA. I want to reduce the Rx consumption. My configure below,

0693W00000QKYBRQA5.png0693W00000QKYBbQAP.pngPlease recommend me some solutions.

Thanks.

This topic has been closed for replies.
Best answer by Louis AUDOLY

Hello @Ngô Vạn​ ,

In fact the LDO is always on, so your flag will always be set. But if you enable the DCDC, so the power source will be the DCDC an no current will come from the LDO but it will still be mark as ready.

To know which power source is use, you have to check the SMPSRDY flag.

Best regards

6 replies

Louis AUDOLY
ST Employee
July 7, 2022

Hello @Ngô Vạn​ ,

Do you use an code you have modify and genrate from CubeMx ou you took the example in STM32Cube_FW_WL_V1.2.0 ?

First you can reduce your consumption power by disabling the LED's during an Rx and then you can check the configuration of your system.

For Rx mode, if you use a boosted LNA, LDO mode, or LoRa modulation, all these parameters will increase your consumption, so you can play with it to tune your radio to lower at the maximum it.

The matching network and the frequency have also an impact but not so important than the other parameters mentioned above. (in Tx the High Power and Low Power modes impact the consumption also)

I suggest you to refer to the SX126x datasheet on table 3-5 and 3-6 for more information on Rx and Tx mode consumption.

Regards

ngodoanvan
Associate III
July 7, 2022

Thanks for your support.

I found the PWR_SMPS example code in STM32Cube_FW_WL_V1.2.0. This is my PWR_SR2 register.0693W00000QKdv5QAD.pngthe LDO is enabled. How to disable LDO?

Thanks.

Louis AUDOLY
ST Employee
July 7, 2022

In the file radio_driver.h, you can find this code to select the LDO or the DCDC power regulation mode:

/*!
 * \brief Declares the power regulation used to power the device
 *
 * This command allows the user to specify if DC-DC or LDO is used for power regulation.
 * Using only LDO implies that the Rx or Tx current is doubled
 */
typedef enum
{
 USE_LDO = 0x00, // default
 USE_DCDC = 0x01,
}RadioRegulatorMode_t;

Regards

ngodoanvan
Associate III
July 8, 2022
void SUBGRF_SetRegulatorMode( void )
{
 /* ST_WORKAROUND_BEGIN: Get RegulatorMode value from RBI */
 RadioRegulatorMode_t mode;
 
 if ( ( 1UL == RBI_IsDCDC() ) && ( 1UL == DCDC_ENABLE ) )
 {
 mode = USE_DCDC ;
 }
 else
 {
 mode = USE_LDO ;
 }
 /* ST_WORKAROUND_END */
 SUBGRF_WriteCommand( RADIO_SET_REGULATORMODE, ( uint8_t* )&mode, 1 );
}

the RBI_IsDCDC() return IS_DCDC_SUPPORTED

#define IS_DCDC_SUPPORTED 1U

DCDC_ENABLE

#define DCDC_ENABLE ( 1UL )

But LDORDYbit set when I run project.

What wrong ?

Please review for me.

Thanks.

Louis AUDOLY
Louis AUDOLYBest answer
ST Employee
July 8, 2022

Hello @Ngô Vạn​ ,

In fact the LDO is always on, so your flag will always be set. But if you enable the DCDC, so the power source will be the DCDC an no current will come from the LDO but it will still be mark as ready.

To know which power source is use, you have to check the SMPSRDY flag.

Best regards

ngodoanvan
Associate III
July 10, 2022

I got it. Thanks for your support.