radio 事件_nRF52832/51822系列RADIO外设介绍/使用

本文介绍了nRF52832/51822系列芯片的RADIO外设操作,包括空中无线协议、RADIO状态与发送接收数据的流程,以及自动发送和接收的优化方法。详细解析了地址配置、数据包结构和CRC校验,并探讨了接收过程中的CRC校验问题和地址过滤策略。
摘要由CSDN通过智能技术生成

8f81b794d9e58880ab09abcc85465910.png

nRF52/51系列

以nRF52832的RADIO外设(下文简称RADIO)为例,操作寄存器的方式介绍和使用该外设;

目的在于充分认识RADIO外设,和记录自己走过的坑;

全为自己理解,可能有不对的地方感谢指正。

1.空中无线协议

81681478fa9e31a67c3ceb22dd2cca95.png

这是RADIO从天线发出的数据。顺序固定但是内容可以配置。

*【PREAMBLE】为前导码/前同步码:根据地址自动设置,我们无需关心,但是它是8bit还是16bit可以通过PCNF0寄存器的PLEN配置。(除2Mb/s BLE模式外,前导码长度都为1字节。 如果【ADDRESS】的第一位为0,则前导码将设置为0xAA,否则0x55)PS:Ble_1Mbit为带宽250 kHz,NRF_1Mbit带宽160 kHz。

*【ADDRESS】是“接入地址”,由我们的代码设置,这个地址由 BASEPREFIX两部分组成,BASE分为BASE0(4Bytes)、BASE1(4Bytes); PREFIX分为PREFIX0(4Bytes)、PREFIX1(4Bytes),BASEn 和 PREFIXn 的值可以在RADIO的寄存器中设置。

BASEn 和 PREFIXn要怎么组合成“接入地址”呢?见下表:

9516b2d3fbf63551166dabcb1b5cc66a.png

地址共有8种组合方式,启用哪几种方式可以在RADIO的寄存器中设置。(下面代码启用0方案)

NRF_RADIO->TXADDRESS = 0 << RADIO_TXADDRESS_TXADDRESS_Pos;      //TX使用的某一个地址
NRF_RADIO->RXADDRESSES = RADIO_RXADDRESSES_ADDR0_Enabled << RADIO_RXADDRESSES_ADDR0_Pos; //RX使用的某些地址,可以是多个

其中PREFIXn固定贡献1字节BASEn可以贡献2~4字节NRF_RADIO->PCNF1中的BALEN设置)一起组成“接入地址”,所以“接入地址”长度范围为 3~5字节。(PS:BLE广播时“接入地址”为0x8E89BED

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值