CC1101无线模块SPI口中MISO引脚和寄存器问题
一、MISO引脚,有三个重点:
1、通过SPI操作CC1101的时候,要先判断MISO是否为低(为高则说明CC1101处于忙或者非激活状态),这是之前说CS用SPI_NSS_Soft的原因之一。另外也是我建议引脚配置GPIO_Mode_IPU的原因。
2、CC1101的MISO是可以设置成GDO1,不过默认是做MISO。
3、即使作为MISO,系统的状态也要使晶振起振(用strobe命令),才能有数据输出到STM32中,所以不仔细看datasheet,可能会发现读出来的数据老是0啊!
二、CC1101的寄存器和一些操作:
简单说,操作主要有:
1、single write
2、single read
3、burst write
4、burst read
5、strobe
本来看上去没有什么,但变态的是有些寄存器和strobe命令的地址是重叠的。深刻理解英文datasheet page70(SWRS061H)的那个图。
主要是有几个坑爹的事情:
1、0x30~0x3D的位置 single read,也会是strobe的命令(最坑爹的);
2、0x3E,0x3F位置的burst read,其实是读FIFO。
有人说,不是有专门的TI提供的软件么?没错,我要说的就是这个软件,叫做 “Smart RF studio”。只是,这个软件我本身也还没完全弄明白,希望有高手能补充。
1、设计时,要注意平衡,Data rate越高,那么灵敏度就会越低;
2、频段是有限的(比如433M其实是433.07MHz~433.92MHz),channel spacing越宽则能支持的channel就越少;
3、channel spacing至少要是data rate的1倍,当然间隔越大,越没那么容易干扰
4、个人还不是太明白“RX filter BW” 和 “Deviation”,我最初设计时是参考demo的做法,希望有牛人来解释一下。
5、注意中心频率的问题,以433M为例,你的频率间隔是50K,那么Base frequency应该是433.07M + 0.05M = 433.12M。
楼主最近还看过