|
最近在做一产品,用到CC1101做无线传输,要用电池供电,而且电池要求保证用一年,所以要用cc1101无线唤醒(WOR);可是怎样在保证不丢失数据包的情况下把功耗做到最小呢??
我的设想:
把前导字节数设为24,前导质量评估器阈值2,如果用10K波特率,那么前导时间为:24*8*0.1MS=19MS,那么只要我把Tevent0设置在19MS-(2*0.1MS)时间之间内的话应该能保证不丢失数据包吧。
我的设置:
MDMCFG4---0xc8
MDMCFG3---0x93
MDMCFG2---0x03
MDMCFG1---0xf2
PKTCTRL1---0x4b
halSpiStrobe(CCxxx0_SIDLE);
halSpiWriteReg(CCxxx0_MCSM2, 0x09); //12.5%
//15MS
halSpiWriteReg(CCxxx0_WOREVT1, 0x02);
halSpiWriteReg(CCxxx0_WOREVT0, 0x08);
halSpiWriteReg(CCxxx0_WORCTRL, 0x38);
halSpiStrobe(CCxxx0_SWORRST);
halSpiStrobe(CCxxx0_SWOR);
这样能够正确接收,可是功耗还是太大,想把功耗降下来,
把 halSpiWriteReg(CCxxx0_MCSM2, 0x09);
改为 halSpiWriteReg(CCxxx0_MCSM2, 0x08);
这样功耗是降下来很多,可是数据包丢的历害!!
可能是我理解不够,所以请大侠们帮帮忙,看看怎样才能把功耗降下来,先谢了!! |
|