一.安信可(Ai-Thinker)NF-04规格书解读
安信可规格书内需要了解的是NF-04模块引脚定义,因为其PCB丝印未标注引脚定义,我们需要从规格书内查询引脚定义。我们可以从第四页与第五页查询到其引脚定义与典型电路
通过经典电路我们可以猜测,其通信方式大概率为SPI通信。
二.BK2425 Datasheet 解读
简介
特性
- 其无线电频率在2400MHz~2483.5MHz频段,符合ISM频段要求。
- 其无线通信速率支持250Kbps、1Mbps以及2Mbps。
- 具有低功耗
可使用低精度晶振(16MHz±60ppm)- 动态负载(从1字节到32字节)
- 自动分组处理
- 1:6星型网络,具有6数据通道
- 1.9v-3.6v的宽输入电压
- 最大8MHz时钟速率的四线SPI接口
4x4mm的20引脚封装
应用
无线电脑外设,无线游戏手柄,无线音频,遥控器,玩具
芯片引脚图
芯片结构图
其芯片含有十个外部接口,分别为
- RFP-天线正
- RFN-天线负
- XTALP-晶振正
- XTALN-晶振负
- CSN-片选
- SCK-时钟
- MOSI-主机发送从机接收
- MISO-从机发送主机接收
- IRQ-中断
- CE-芯片使能
我们可以通过SPI接口(SPI interface)(加黑标记)控制寄存器组(register banks),通过控制寄存器从而控制整个芯片。同时可通过框图了解到,芯片含有两块FIFO区域,分别是接收FIFO(RX FIFO)与发送FIFO(TX FIFO)。其余部分可看做连接到内部控制器上,其可自动处理。
*注意,其寄存器组(register banks)共有两组
bank0与bank1,即同一寄存器地址可能对应两个寄存器!
概述
- BK2425可以在TDD模式下进行发送与接收
- BK2425不同信道的频率不相同,调整信道可以通过向bank0内的RF_CH寄存器写入不同值来调整。其频率与信道的对应关系为F₀=2400+RF_CH(MHz)。射频信道频率分辨率为1MHz
- 接收机的接收信道和发射机的发射信道相同时才能传输数据
- 其发射功率可通过RF_SETUP的RF_PWR位控制
- 无线传输空中速率可由RF_RD_HIGH与RF_RD_LOW寄存器设置,并且需要发送设备与接收设备设置相同。
- 在下文中未指明在哪一个bank中的寄存器,均在bank0中。
缩写
引脚信息
状态控制
BK2425内置状态机,可控制不同模式直接的状态转换
当自动确认被失能时,状态转换完全由单片机控制
- 引脚信号:VDD CE
- SPI寄存器:PWR_UP, PRIM_RX, EN_AA, NO_ACK, ARC, ARD3. 系统信息:Time out(超时), ACK received(应答接收), ARD elapsed(自动重传已过), ARC_CNT(重传计数), TX FIFO empty(发送队列空), ACK packet transmitted(发送响应包), Packet received (接收包)
发送状态控制图
流程如下
- 开始当电源输入大于1.9v
- 系统进入“Power Down”状态
- 检查“PWR_UP=1”且“上电时间大于1.5ms”条件是否满足 ?
- 满足:进入步骤4
- 不满足:进入步骤2 - 系统进入“Standby-I”状态
- 检查“TX_FIFO非空”、“ARC_CNT<ARC TX Setting大于130us”、“ARC elapsed”且“CE高电平大于15us”条件是否满足
- 满足:进入步骤6
- 不满足:回到步骤4 - 系统进入“TX”状态
- 检查“EN_AA=0”、“NO_ACK=1”且“TX FIFO”不为空
- 满足:回到步骤6
- 不满足:进入步骤8 - “EN_AA=1”、“NO_ACK=0”且“RX setting”大于130us
- 满足:进入步骤13
- 不满足:进入步骤9 - 检查“TX FIFO”是否为空且“CE”为高电平
- 满足:进入步骤10
- 不满足: 回到步骤6 - 系统进入“Standby-II”状态
- 检查“TX_FIFO非空”、“TX setting”大于130us且“CE高电平”条件是否满足
- 满足:回到步骤6
- 不满足:进入步骤12 - 检查“TX_FIFO为空”且“CE=0”
- 满足:回到步骤4
- 不满足:回到步骤10 - 系统进入“RX”状态
- 检查“超时”与“接受完成”
- 满足:回到步骤4
- 不满足:回到步骤13
发送步骤
1-2-3-4-5-6-7-8-9-10-11-12
10-11-12
10-11-12……
接收状态控制图
流程如下
- 电源输入大于1.9v,进入“Power Down”状态
- 当"PWR_UP=1"时进入初始状态“Standby-I”,表示接收器处于待机状态。
- 当“CE=1”的且RX setting大于130us时进入RX状态。
- 当“CE=0”时”进入“Standby-I”状态。
- 当“EN_AA=1”、“NO_ACK=0”且TX setting大于130us时,从"RX"转到"TX"模式。
- 当"CE=1"且“TX setting”大于130us时,从“TX”转到“RX”模式。
接收步骤
1-2-3-4
模式解释
断电模式
在断电模式下,BK2425处于睡眠模式,电流消耗最小。SPI接口在这种模式下仍然是活跃的,并且所有寄存器值都可以通过SPI改变。通过将CONFIG寄存器中的PWR_UP位设置为低,进入下电模式。
待命模式1
通过将CONFIG寄存器中的PWR_UP位设置为1,并将CE设置为0,设备进入待命模式1。待命模式用于最小化平均电流消耗,同时保持较短的启动时间。在这种模式下,部分晶体振荡器处于活动状态。这也是当CE设置为低时BK2425从TX或RX模式返回的模式。
待命模式2
在待命模式2下,比待命模式1下更多的时钟缓冲区是活动的,并且使用更多的电流。当CE在具有空TX FIFO的PTX设备上保持高位时,会进入待命模式2。如果有新的报文以这种方式上传到TX FIFO,设备将自动进入TX模式,报文继续传输。
发送模式
- PTX设备(PRIM_RX=0)
TX模式是一种主动模式,PTX设备在此模式下传输报文。要从掉电模式进入该模式,PTX设备必须将PWR_UP位设置为高,PRIM_RX位设置为低,TX FIFO中有有效载荷,CE上有超过10us的高脉冲。PTX设备保持在TX模式,直到完成当前数据包的传输。
如果CE=0,则返回到待机I模式。
如果CE=1,则下一步动作由发送FIFO的状态决定。
如果TX FIFO不为空,则PTX设备保持在TX模式,发送下一个数据包。
如果TX FIFO为空,则PTX器件进入待命模式2。
当自动重传(EN_AA=1)且需要自动确认(NO_AC=0),则PTX当ARD经过且重试次数小于ARC时,设备将从待命模式1进入TX模式。 - PRX设备(PRIM_RX=1)
只有当接收到的报文中EN_AA=1且NO_ACK=0时,PRX设备才会从RX模式进入TX模式,以发送在TX FIFO中挂载的确认报文
接收模式
- PRX设备(PRIM_RX=1)
RX模式是一种主动模式,其中BK2425无线电被配置为接收器。若要从待命模式1进入该模式,PRX设备必须设置PWR_UP位为高,PRIM_RX位设为高,CE引脚设为高电平。或者,当接收数据包中的EN_AA=1且NO_ACK=0时,PRX设备可以在发送确认数据包后从TX模式进入此模式。
在这种模式下,接收器对来自RF信道的信号进行解调,不断地将解调后的数据提供给分组处理引擎。数据包处理引擎不断地搜索有效的数据包。如果(通过匹配的地址和有效的CRC)找到有效的包,则包的有效负载将出现在RX FIFO中的空槽中。如果接收FIFO满,则丢弃接收到的包。
PRX器件保持在RX模式,直到MCU将其配置为待命模式1或掉电模式。在RX模式下,载波检测信号可用。当在接收频率信道内检测到RF信号时,CD被设置为高电平。内部CD信号在提供给CD寄存器之前经过滤波。在将CD置为高电平之前,RF信号必须存在至少128μs。 - PTX设备(PRIM_RX=0)
只有当EN_AA=1且NO_ACK=0时,PTX器件才会从TX模式进入RX模式以接收应答数据包。
//先写这么多,还剩大约一半多,下个笔记再写