微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > 如何动态地调整CC1101的发送功率?

如何动态地调整CC1101的发送功率?

时间:12-23 整理:3721RD 点击:

根据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 

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top