CH585抬升电压以提高无线发射功率

CH585发射功率最大为+4.5dBm,在一些应用场景下4.5dBm仍不能够满足需求,可采取抬升电压的方式增加发射功率;

因芯片差异,每颗芯片的抬升值不一定相同,抬升范围可在当前的发射功率基础上增加1-2dBm;

下面为抬升电压函数,需要自己定义:

void Raise_voltage(uint8_t enable)
{
    if(enable)
    {
        /*将6、7、8位写为111,可开启电压抬升功能*/
        sys_safe_access_enable();
        *(PUINT32V)(0x40001048) |= 0X1C0;//提高电压,提升发射功率
        sys_safe_access_disable();
    }
    else 
    {
        /*将6、7、8位写为010,即可关闭电压抬升功能*/
        sys_safe_access_enable();
        *(PUINT32V)(0x40001048) &=~ 0X1C0;
        *(PUINT32V)(0x40001048) |= 0x80;
        sys_safe_access_disable();
    }
}

 

/* TxPower define(Accuracy:±2dBm) */
#define LL_TX_POWEER_MINUS_20_DBM       0x01
#define LL_TX_POWEER_MINUS_15_DBM       0x03
#define LL_TX_POWEER_MINUS_10_DBM       0x05
#define LL_TX_POWEER_MINUS_8_DBM        0x07
#define LL_TX_POWEER_MINUS_5_DBM        0x0B
#define LL_TX_POWEER_MINUS_3_DBM        0x0F
#define LL_TX_POWEER_MINUS_1_DBM        0x13
#define LL_TX_POWEER_0_DBM              0x15
#define LL_TX_POWEER_1_DBM              0x1B
#define LL_TX_POWEER_2_DBM              0x23
#define LL_TX_POWEER_3_DBM              0x2B
#define LL_TX_POWEER_4_DBM              0x3B

 

示例:

//设置0dbm发射功率
RFIP_SetTxPower(LL_TX_POWEER_0_DBM);
    
//设置0dbm发射功率,在此基础上增加1-2dbm
RFIP_SetTxPower(LL_TX_POWEER_0_DBM);
Raise_voltage(ENABLE);
    
//抬升后,再次还原至0dbm
Raise_voltage(DISABLE);

 

注意事项:

1、*(PUINT32V)(0x40001048)为CH585寄存器,其他芯片不通用;

2、*(PUINT32V)(0x40001048)寄存器会在shutdown休眠唤醒复位时或者冷启动(重新上电)时恢复为复位值,软件复位和硬件复位不会恢复;

3、*(PUINT32V)(0x40001048)读出来的值中,16-31位由于每颗芯片的校准值不一定相同,所以默认值会有差异;

posted @ 2025-06-11 11:23  oTvTo  阅读(102)  评论(0)    收藏  举报