当前页面为 开发中 版本,查看特定版本的文档,请在页面左下角的下拉菜单中进行选择。

SDK_FixedLongPacketRx

1 功能概述

本代码示例主要演示PAN312x固定包长帧结构怎么实现长包接收。

备注: 1、当接收的字节数长度大于fifo长度(128bytes)时,可采用rx fifo阈值的方式来实现长包接收; 2、当前rx fifo 阈值固定为64 bytes;

2 环境要求

  • Board: PAN312x_EVB

  • PAN312x 模组

  • USB转串口模块

  • PC端串口数据显示上位机

3 编译和烧录

例程位置:01_SDK\PAN312x_DK_Develop\Projectc\MDK-ARM(AC5)

打开\Projectc\MDK-ARM(AC5)目录下project.uvprojx工程,选择SDK_FixedLongPacketRx,如下图所示

image

工程选择

然后编译并下载该程序。

4 RF参数参数设置

image

RF参数设置

如上图所示:RF参数目前主要包括频点、调制方式、速率、Tx Deviation、Rx Deviation、发射功率等,其中频点由基础频点,频点步进,通道3部分组成;

举例配置频点为493000000Hz,调制方式为2FSK,速率为50000bps,Tx Deviation为25000Hz,Rx Deviation为25000Hz,发射功率为21dBm,如下所示:

image

RF参数设置举例

5 帧结构参数设置

image

帧结构参数设置

如上图所示:帧结构参数目前主要包前导码长度,前导码内容,同步字长度,同步字内容,前导码、同步字和数据区域的manchester编码是否模式,以及manchester编码是否使能,Fec编码,白化选择等参数;

举例配置帧结构,如下图示:

image

帧结构参数设置举例

6 CRC参数设置

image

CRC参数设置

如上图所示:CRC参数目前主要CrcMode、Crc多项式、Crc种子、CrcBitOrder、CrcByteSwap、Crc作用范围,Crc输出是否取反等。

举例配置CRC为 CRC_16_IBM,如下图所示:

image

CRC参数设置举例

7 测试方法

1、复位PAN312x、等待PAN312x Ready;

2、初始化一些寄存器;

3、设置RF参数、帧结构参数、CRC参数;

4、设置RxPpacket为固定包长,根据需要确认是否需要使能CRC;

5、将IRQ_MASK_RX_FIFO_TH中断映射到IRQ(GPIO8)引脚上;

6、设置系统自动清除部分中断状态;

7、设置RxTimeout时间;

8、设置RxTimeout、RxInvalid、RxValid后,RF的状态为Rx;

9、设置RF的进入Rx;

9、长包发送处理逻辑,如下图所示::

image

固定包长帧结构接收主函数处理逻辑

image

固定包长帧结构接收中断处理逻辑

备注

1、若使能设置系统自动清除部分中断状态,除了 IRQ_RX_DONE、IRQ_RX_CRC_ERROR、 IRQ_TX_FIFO_TH、IRQ_RX_FIFO_TH 这些中断状态,需要额外发送命令来清除,其它中断状态都可以由PAN312x自动清除掉;

2、关于int PAN312x_Enter_Rx(uint16_t channel, uint8_t condition, uint16_t rx_len),需要注意,当设置PAN312x的帧结构为固定包长时,第三个参数rx_len为实际接收的数据长度,当设置PAN312x的帧结构为可变包长时,第三个参数rx_len 为0;

3、因为固定包长帧结构,无法知道发送端发送的数据长度,所以在进入接收时,需要将接收的数据长度设置为最大0x1fff