最近在研究2.4G芯片的一些应用,一般这种芯片都是通过SPI或者IIC的接口与MCU相连接,通过对SPI或IIC的编程读写芯片的寄存器从而达到控制的效果。
最近在用WL1600的一个2.4G的芯片,该芯片可以通过SPI与stm32相连接。于是我就做了一个类似透传模组的试验,使用两块1600和两个stm32分别控制,既然要做透传也就是说芯片不但要工作在接收状态(RX)当串口有数据的时候还要工作在发送状态(Tx),这样就要求每种模式都要是非阻塞的模式下才能满足这个要求。
另外每个1600在开始工作以前要设置一些寄存器的初始化,也就是一些硬件参数校验码等。这样收发的准确率会很高,参考值每个芯片手册都会给出的。
收发的而数据都是通过一个fifo寄存器来存储的。
发送过程:首先往fifo里填写数据,之后打开Tx mode,等待fs结束标志,其他的一些参数也可以设置,比如打开CRC,FEC等。
接收过程:设置成Rx mode ,然后去检测接收标志位是非起来,起来说明收到数据,这个时候就可以去fifo里将数据读出,也可通过校验CRC是否正确来判断数据的对错。
fifo的大小是64Byte,也就是一次最多能发送64个字节,当然还有其他的模式可以发送更多的字节数,这个以后再说
为了将数据分类,可以得知那个模组发出的做了如下规划:
为了做透传模组需要使用AT指令来控制模组的收发情况。
代码以后上传 谢谢