如何动态地调整CC1101的发送功率?
根据TI软件查询,TX power在5dbm时的PA_TABLE值为0x86、在7dbm时的PA_TABLE值为0xCD、在10dbm时的PA_TABLE值为0xC5、在12dbm时的PA_TABLE值为0xC0,但PA_TABLE寄存器组共有8个,如果我在程序中希望先用5dbm发送一包数据,再逐次增大发送功率,采用7dbm、10dbm、12dbm各发送一次,应该如何调整呢?
对应功率的设置代码,看到过以下的二种类型的,正确的应该是如何的呢?
类型一:
char PaTable[] = {0xC0};
char PaTableLen = 1;
TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, PaTable, PaTableLen);
类型二:
char PaTabel[8] = {0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0};
TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, PaTabel, 8);
PA_TABLE不是这么用的,它用于ASK模式下每个比特是否选择ramping的方式,
如果你需要对一个数据封包做不同功率发射只需要设置FREND0.PA_POWER=0,在每个封包发射之前把PATABLE[0]设置成你想发射的功率就可以了,
那么,以下二种模式是否都可以呢?
模式一:
char PaTable[8] = {0x0E,0x1C,0x26,0x2B,0x60,0x86,0xCB,0xC2};
TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, PaTable, 8); //设置发送功率表
TI_CC_SPIWriteReg(TI_CCxxx0_FREND0, 0x10); //设置发送功率为表中的第0值、即-20dbm
//在后面需要调整为+7dbm时,执行这条语句就行了
TI_CC_SPIWriteReg(TI_CCxxx0_FREND0, 0x16); //设置FREND0.PA_POWER=6
模式二:
char PaTable[] = {0xCB};
TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, PaTable, 1); //设置发送功率表
TI_CC_SPIWriteReg(TI_CCxxx0_FREND0, 0x10); //设置FREND0.PA_POWER=0
//在后面需要调整为+7dbm时,执行这条语句
PaTable[] = {0xC2}; //修改发送功率为+10dbm
另外,能否详细解释一下 PA ramping 的意思呢?
可以这样配置:
char PaTable[8] = {0x0E,0x1C,0x26,0x2B,0x60,0x86,0xCB,0xC2};
TI_CC_SPIWriteReg(TI_CCxxx0_FREND0, 0x10);
TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, PaTable,1); //设置发送功率
//在后面需要调整为+7dbm时,执行这条语句就行了
TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, PaTable+6,1); //设置发送功率
PA ramping用于ASK调幅模式,当调制高电平或者低电平时幅度不是直接跳变而是渐变的。
可否这样呢?
//在后面需要调整为+7dbm时,执行这条语句:
TI_CC_SPIWriteReg(TI_CCxxx0_PATABLE, PaTable[+6]); //设置发送功率
不行,这样设置是无效的。
那么,这种方式是否为最简单、且切换时间最短的?
模式一:
char PaTable[] = {0x86}; //设置功率表为+5dbm
TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, PaTable, 1); //设置发送功率表
TI_CC_SPIWriteReg(TI_CCxxx0_FREND0, 0x10); //设置FREND0.PA_POWER=0
//在后面需要调整为+7dbm时,执行这条语句就行了?
PaTable[0] = {0xCB}; //设置功率表为+7dbm
不行,如果只执行
PaTable[0] = {0xCB}; //设置功率表为+7dbm
只是改变MCU变量值,没有改变CC1101的寄存器值
海尔集成半导体推出了个芯片型号HW3000,用量巨大,距离有2.5公里双向,与si4463差不多,比si4432 si4438远,比A7108 和A7139好很多,如果是10kpbs,比sx1278 远。LoRa没办法快速率,可了解,推荐!HW3000超低双向无线fsk模块完美替代CC1101、CC1120、A7139、A7108、si4432、si4438、si4463