cancel
Showing results for 
Search instead for 
Did you mean: 

How to reduce Rx consumption current?

ngodoanvan
Senior

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.

1 ACCEPTED SOLUTION

Accepted Solutions
Louis AUDOLY
ST Employee

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

View solution in original post

6 REPLIES 6
Louis AUDOLY
ST Employee

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
Senior

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

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
Senior
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
ST Employee

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
Senior

I got it. Thanks for your support.