【MSP430和nRF905的无线数传系统设计】 4.1初始化配置
第一阶段应完成初始化配置,分以下几项:
①MSP430的SPI接口设置 。MSP430的异步串行接口和SPI接口用同一个uSART模块,这里需要用软件配置为SPI功能 。本设计中SPI配置为主机模式、3线制和8位数据 。程序源代码参见子程序“SPI_SET” 。(编者注:程序源代码见本刊网站www.mesnet.com.cn 。)
②初始化nRF905的射频配置寄存器 。这些寄存器中有很多信息,必须根据实际情况进行配置,本设计中nRF905外接16MHz晶体,“XOF”应配置为“011”;“PA_PWR”为发射功率,”RX_RED_PWR”为接收灵敏度,可根据需要配置;另外还有发送地址、接收地址、发送数据和接收数据的长度(字节数),可根据实际应用配置 。注重这组寄存器中还有接收时的实际地址,而发送地址在其他单独寄存器中 。
③配置nRF905的发送地址,最多4个字节(32位),发送端的发送地址应与接收端设备的接收地址相同 。在实际工作中,nRF905可以自动滤除地址不相同的数据,只有地址匹配且校验正确的数据才会被接收,并存储在接收数据寄存器中 。
4.2发送数据
使nRF905发送数据前,需要MSP430通过SPI总线在待机模式下先把待发数据填进发送数据寄存器中,一次最多32B 。然后把nRF905的“TRX_CE”、“TX_EN”引脚都置为高电平,数据就会自动发送出去 。本设计在射频配置寄存器中选定了自动重发位,因此在“TRX_CE”被置高的时间内数据一直在重复不断地发 。本程序中设计延时500ms,之后拉低“TRX_CE”引脚,回到待机模式 。
4.3接收数据
MSP30把nRF905的“TRX_CE”引脚置为高电平,“TX_EN”引脚拉为低电平后,就开始接收数据 。本设计中CPU在设定的35s内一直判定nRF905的“DR”引脚是否变高,若为高,则证实接收到了有效数据,可以退出接收模式,若一直没有接收到,待时间到时也退出接收模式 。退出后在待机模式,CPU通过SPI总线把nRF905内部的接收数据寄存器中的数据读出,即接收到的有效数据 。编写接收部分程序时,有一点应该注重,很多资料中都没有提到,就是CPU在“M0SI”信号线上发出读命令字节后,在“MISO)”信号线上nRF905会自动返回一字节数据,为本身的状态寄存器信息,后续的接收数据并不会自动跟着输出,只有CPU在“MOSI”上再输出一个字节(可以是随意值),nRF905才会在“MISO”上返回一个字节,CPU再发,nRF905再返回,直到读完为止 。
推荐阅读
- 积极防治花生根腐病和茎腐病
- 微信被改了密码和手机号怎么办
- Intel和NDS合作展示WiMAX移动电视业务
- S700C 我和我曾经价值5000大票的大S
- 内网和外网的区别
- 11和xr区别
- 农保和医保哪个划算
- 如何制盐酸和硫酸
- 铂金和18k白金的区别是什么
- 兰州拉面和面配方
