2022-07-06 02:54 AM
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,
Please recommend me some solutions.
Thanks.
Solved! Go to Solution.
2022-07-08 04:49 AM
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
2022-07-07 01:38 AM
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
2022-07-07 02:56 AM
Thanks for your support.
I found the PWR_SMPS example code in STM32Cube_FW_WL_V1.2.0. This is my PWR_SR2 register.the LDO is enabled. How to disable LDO?
Thanks.
2022-07-07 06:04 AM
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
2022-07-07 06:33 PM
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.
2022-07-08 04:49 AM
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
2022-07-10 05:20 AM
I got it. Thanks for your support.