20_SDK_VariableNodeIdPacketTx¶
1 功能概述¶
本代码示例主要演示PAN312x可变包长帧结构带NodeId的发送功能。
1、NodeId在Length之前,帧结构如下图所示:
preamble + syncword + nodeid + length + payload + crc
2、NodeId在Length之后,帧结构如下图所示:
preamble + syncword + length + nodeid + payload + crc
3、PAN3120为tx时,默认支持NodeId在Length之前,当设置NodeIdLenght不为0时,NodeId就会生效,并且硬件会自动将其添加到数据帧结构中;
4、当NodeId在Length之后时,可以将NodeId作为payload的组成部分;
5、可通过宏定义NODEID_POS来选择Node的位置,当NODEID_POS == 0时,表示nodeid处于length之前,当NODEID_POS == 1时,表示nodeid处于length之后;
2 环境要求¶
Board: PAN312x_EVB
PAN312x 模组
USB转串口模块
PC端串口数据显示上位机
3 编译和烧录¶
例程位置:01_SDK\PAN312x_DK_Develop\Projectc\MDK-ARM(AC5)
打开\Projectc\MDK-ARM(AC5)目录下project.uvprojx工程,选择SDK_VariableNodeIdPacketTx,如下图所示
工程选择¶
然后编译并下载该程序。
4 RF参数参数设置¶
RF参数设置¶
1、如上图所示,RF参数目前主要包括:频点、调制方式、速率、Tx Deviation、Rx Deviation、供电方式,发射 功率等参数,
2、其中频点由基础频点,频点步进,通道3部分组成,即:
Frequency = FrequencyBase + FrequencyStep * FrequencyChannelNumber
3、关于PowerSelect说明:
POWER_LDO_0603:表示供电方式为LDO,匹配电路中用的电感封装为0603;
POWER_LDO_0402:表示供电方式为LDO,匹配电路中用的电感封装为0402;
POWER_DCDC_0603:表示供电方式为DCDC,匹配电路中用的电感封装为0603;
POWER_DCDC_0402:表示供电方式为DCDC,匹配电路中用的电感封装为0402;
5 帧结构参数设置¶
帧结构参数设置¶
1、如上图所示,帧结构参数主要包括:前导码长度,前导码内容,同步字长度,同步字内容,前导码、同步字和数据区域的manchester编码是否模式,以及manchester编码是否使能,Fec编码,白化选择等参数;
6 CRC参数设置¶
CRC参数设置¶
1、如上图所示:CRC参数目前主要CrcMode、Crc多项式、Crc种子、CrcBitOrder、CrcByteSwap、Crc作用范围,Crc输出是否取反,Crc是否使能等参数。
7 测试方法¶
1、复位PAN312x、等待PAN312x Ready;
2、初始化一些寄存器;
3、设置RF参数,配置频点为493000000Hz,调制方式为2FSK,速率为50000bps,Tx Deviation为25000Hz,Rx Deviation为25000Hz,供电方式为POWER_LDO_0603,发射功率为21dBm,如下所示:
RF参数设置¶
4、设置帧结构参数,如下图示:
帧结构参数设置¶
NodeId参数介绍:
1、NodeIdState:用来指示是否使能NodeId;
2、TxNodeIdLength:用来表示NodeId的长度;
3、TxNodeIdValue:NodeId的值;
5、设置CRC为 CRC_16_BAICHEVA,如下图所示:
CRC参数设置¶
6、设置TxPpacket为可变包长,根据需要确认是否需要使能CRC;
7、将IRQ_MAKS_TX_DONE中断映射到IRQ(GPIO8)引脚上;
8、设置系统自动清除部分中断状态;
9、清除所有中断状态;
10、在while循环中,隔一段时间往fifo中写入数据,并执行发送命令,同时更改数据长度;如下图所示:
可变包长帧结构发送主循环处理逻辑¶
可变包长帧结构Tx中断处理逻辑¶
备注:
1、若使能设置系统自动清除部分中断状态,除了 IRQ_RX_DONE、IRQ_RX_CRC_ERROR、 IRQ_TX_FIFO_TH、IRQ_RX_FIFO_TH 这些中断状态,需要额外发送命令来清除,其它中断状态都可以由PAN312x自动清除掉;
8 测试现象¶
1、运行后,串口会打印log,包括例程基本信息,Radio Prameter、Packet Prameter、Crc Prameter,如下图所示:
可变包长帧结构(NodeId在前)测试现象——例程基本信息,Radio Prameter、Packet Prameter、Crc Prameter¶
1、测试现象,串口会打印将要发送出去的数据,如下图所示:
可变包长帧(NodeId在前)结构——PAN312x模组作为Tx发送的数据¶
2、其他模组作为Rx,接收PAN312x发送的数据,如下图所示:
可变包长帧结构(NodeId在前)——PAN312x模组作为Rx收取到的数据¶
3、通过对比Tx和Rx数据,两边是一致的,证明PAN312x可变包长帧结构的发送功能正确;
备注: 1、测试过程中,可以用另外一块PAN312x模组或其他模组作为Rx,配置相同的rf参数,就可以收取到PAN312x发送过来的数据。