当前文档版本为 v0.8.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

Frequency-Hopping例程

1 功能概述

本代码示例主要演示PAN3029实现软件双频点跳频通信的功能,并演示CAD TX/RX检测功能,通过串口观察通信结果。

2 环境要求

  • Board: PAN3029 开发板

  • Mini USB线2根,用于给开发板供电和查看串口打印Log

  • J-Link下载器一个,用于程序下载

  • 将 J1,J4用跳帽连接

3 编译和烧录

例程位置:01_HCSDK\Demo\Frequency-Hopping\TX\MDK

01_HCSDK\Demo\Frequency-Hopping\RX\MDK

打开目录下的pan3029.uvprojx工程,编译整个代码工程。

4 使用说明

根据环境要求一节的介绍,正确连接2套 EVB 开发板的跳线,编译、下载程序:

  1. 在电脑上打开串口调试工具,串口参数:115200/8bit/1stop/无校验

  2. 先打开RX设备,再打开TX设备,观察串口打印的内容

  3. 一个设备下载TX工程,一个设备下载RX工程

RX设备串口输出信息如下:

please check GPIO_PORT_CAD is OK
RX start: 480250000, 473550000, time:64
cad:1
###Rx len  53##freq=0, 480250000
###Rx cnt 1##
###Tx cnt 1##
cad:2
###Rx len  163##freq=0, 480250000
###Rx cnt 2##
###Tx cnt 2##
cad:3
###Rx len  217##freq=0, 480250000
###Rx cnt 3##
###Tx cnt 3##
cad:4
###Rx len  67##freq=0, 480250000
###Rx cnt 4##
###Tx cnt 4##
cad:5
###Rx len  162##freq=0, 480250000
###Rx cnt 5##
###Tx cnt 5##
cad:6
###Rx len  69##freq=1, 473550000
###Rx cnt 6##
###Tx cnt 6##

RX设备需要确保CAD GPIO连接正确。初始化完成后,设备会打印显示当前跳频频点信息以及当前chirp符号时间。

当设备接收到cad信号时,会打印显示”cad:”字样。

当设备接收到数据包时,会打印显示当前数据包长度”Rx len”,当前接收信道“freq”的信道号和频率值,当前收包计数“Rx cnt”,接收到数据包内指示的当前发包计数“Tx cnt”。

TX设备串口输出信息如下:

TX start: 480250000, 473550000
Tx cnt 1, len 53, fre 480250000 
Tx cnt 2, len 163, fre 480250000 
Tx cnt 3, len 217, fre 480250000 
Tx cnt 4, len 67, fre 480250000 
Tx cnt 5, len 162, fre 480250000 
Tx cnt 6, len 69, fre 473550000 

TX设备初始化完成后,设备会打印显示当前跳频频点信息。随后立即开始发送,发送时,随机选取数据包长和通信信道。

当设备发送完成后,会打印显示发送情况,包括发送计数“Tx cnt”,发送数据包长“len”,发送选取的频率值“fre”。

5Frequency-Hopping Tx Demo

5.1 TX代码流程图

img

图 5-1 Tx代码流程图

5.2 注意事项

当芯片配置进入连续发射模式后,就可以连续进行数据发射。

连续发射模式中,发射完成后,如果不退出发射状态(切换至standby3模式可退出发射状态),那么芯片的工作电流会一直保持为发射电流。

本Demo示例中发射端的发射间隔和发射包长是随机的。发射包长1-255字节,发射间隔时间大于150ms,随机数来自初始生成的随机数组。

多频点切换收发时,发射端需要根据不同的MCU和代码逻辑实测一下RX程序切换耗时,然后根据这个耗时计算TX发射端应当配置的前导码个数。例如,对于双频点切换的场景,测得程序切换耗时为T1,根据SF和BW计算得one_chirp_time,RF启动RX时有一个固定的启动耗时约360us。双频点场景极限情况下所需前导码示例表如下:

企业微信截图_17043302997510

图5-2 双频点场景极限情况下所需前导码示例表

在TX DEMO中,TX端根据计算结果((one_chirp_time*7+360)3+T12)/one_chirp_time+8配置前导码个数。

6Frequency-Hopping Rx Demo

6.1 代码流程图

img

图 6-1 Rx代码流程图

6.2 注意事项

当芯片配置进入连续接收模式后,就可以连续进行数据接收。不论接收成功还是接收失败,芯片都会在接收结束后继续保持接收状态,除非用户主动退出该状态(切换至standby3模式可退出接收状态)。

在RX DEMO中,检测到CAD信号后,进入等待接收结果状态。这里在等待接收结果期间,建议多读取两次CAD信号,确保更高的CAD准确性。同是,建议设置一个RX端最大接收超时时间,超时时间根据TX端最大发包时间确定,可以选择RX DEMO中的计时方法,也可以选用rf_enter_single_timeout_rx(timeout)来接收。

更多CAD应用相关说明请参考应用参考中CAD说明文档。