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位由于每颗芯片的校准值不一定相同,所以默认值会有差异;

浙公网安备 33010602011771号