1.接口电路
nRF905在使用中,根据不同需要,其电路不尽相同,下图是在某项目中使用的电路,MCU采用宏晶公司的STC12LV5410AD,为3.3V供电,其内部自带SPI接口,与nRF905接口比较方便。天线部分使用50Ω的单端天线。
根据nRF905芯片手册,在电路板设计中,也可以使用微带环形天线,把天线布在PCB板上,这可减小系统的体积。
2.软件设计
nRF905通过SPI接口和MCU进行数据传送,在配合几个简单控制信号,即可完成可靠的数据收发,软件设计主要有三部分:
(1)初始化
nRF905的初始化主要是对其配置寄存器进行设置,包括工作频段、输出功率、自动重发、接收地址等设置。对应RF配置寄存器内容,根据使用需要,将控制字传送给nRF905即可。
(2)发送流程
典型的nRF905发送流程分以下几步:
A.当MCU有数据要发送时,通过SPI接口,把目标地址和待发数据传送给nRF905。SPI接口的速率在通信协议和器件配置时确定。
B.微控制器TRX_CE和TX_EN引脚置高,激活nRF905的ShockBurst发送模式。
C.nRF905的ShockBurst发送。
*无线系统自动上电;*数据打包(加前导码和CRC校验码);
*发送数据包;
*当数据发送完成,DR引脚被置高;
D.如果AUTO_RETRAN被置高,nRF905不断重发,直到TRX_CE被置低。
E.当TRX__CE被置低,nRF905发送过程完成,自动进入待机模式。
注意:ShockBurst工作模式保证,一旦发送数据的过程开始,无论TRX_CE和TX_EN引脚如何变化,发送过程都会被处理完。只有在前一个数据包被发送完毕,nRF905才能接受下一个发送数据包。
(3)接收流程
A.设置TRX_CE为高、TX_EN为低,使得nRF905进入ShockBurst接收模式。
B.650us后,nRF905不断监测空中信息,等待接收数据。
C.当nRF905检测到同一频段的载波时,载波检测(CD)引脚被置高。
D.当接收到有效地址时,AM被置高。
E.当接收到有效数据包(CRC校验正确)时,nRF905自动移去前导码、地址和CRC校验位,然后把DR置高。
F.MCU把TRX_CE置低,nRF'905进入待机模式。
G.MCU可以通过SPI口,以一定的速率把数据读出。
H.当所有的数据读出完毕,nRF905把DR和AM置低。
I.nRF905此时可以进入接收模式、发送模式或掉电模式。
如果在接收数据包过程中,TRX_CFJ或TX_EN的状态发生改变,nRF905立即改变工作模式,并且数据包丢失。当MCU感知到AM信号之后,就知道nRF905正在接收数据包,可以决定是让nRF905继续接收该数据包等待DR信号,还是进入另一个工作模式。