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

00_normal 普通型收发例程

1. 简介

本例程演示PAN211x普通(单向)通信功能,Tx发射数据,Rx接收数据。

2. 应用代码说明

2.1 发射应用代码

TX端设置为发射模式,间隔500ms发送一次数据, 流程如下:

  1. PAN211_Init()初始化芯片,从DeepSleep切换到STB3状态,期间写入应用参数并校准。

  2. 在发射之前清除中断PAN211_ClearIRQFlags

  3. 调用PAN211_SendPacket发送数据

  4. PAN211_GetIRQFlags()获取中断标志,如果发送成功则会有RF_IT_TX_IRQ标志

  5. 在发送结束后使用PAN211_ClearIRQFlags清除中断

2.2 接收应用代码

RX端设置为接收模式,轮询是否有数据接收到,流程如下:

  1. PAN211_Init()初始化,从DeepSleep切换到STB3状态,期间写入应用参数并校准。

  2. 在接收之前清除中断PAN211_ClearIRQFlags

  3. 调用PAN211_RxStart开始接收

  4. 轮询PAN211_GetIRQFlags()获取中断标志,如果接收成功则会有RF_IT_RX_IRQ标志

  5. 使用PAN211_ReadFifo读取数据

  6. 在接收结束后使用PAN211_ClearIRQFlags清除中断

2.3. IOMUX功能

本例程还增加了IOMUX功能,IOMUX用于3线SPI和IIC接口模式下,将PAN211x的SDA引脚复用为中断输出引脚,用户可以通过SDA引脚来检测是否触发了中断。

PAN211_EnableInterfaceMuxIRQ(true); 使能IOMUX功能。

PAN211_ConfigIT(RF_IT_TX_IRQ); 将TX中断输出到SDA引脚,即SDA引脚在TX中断触发时会输出低电平,否则为高电平。使用者可以将多个中断复用到SDA引脚,触发任意中断都会使SDA引脚输出低电平。清除中断标志后SDA引脚会恢复高电平。

while(!IRQ_DETECTED); 表示等待SDA引脚输出低电平,即TX中断触发。

3. 如何修改应用参数

应用参数比如频率、发射功率、速率等以参数表的形式存储在easy_reg.h中,用户可以根据自己的需求,使用配置导出工具生成对应的参数表,使用方法见《PAN211x 参数配置导出工具使用说明》。

PAN211_Init()会在初始化过程中将easy_reg.h中的参数表写入到PAN211中。

4. 如何切换3线SPI,4线SPI,IIC接口

用户可以通过修改pan211_port.h中的INTERFACE_MODE宏定义来切换接口模式。

3线SPI模式:

#define INTERFACE_MODE        USE_SPI_3LINE

4线SPI模式:

#define INTERFACE_MODE        USE_SPI_4LINE

IIC模式:

#define INTERFACE_MODE        USE_I2C

5. 例程演示

例程位置:

01_SDK/example/00_normal

修改参数:

确保pan211_.h中的EASY_RF宏定义为1,即#define EASY_RF 1,可使用配置导出工具替换对应工程的./src/easy_reg.h文件来配置参数。

使用步骤:

找到两块PAN211x开发板,分别作为Tx端和Rx端。

  1. 用Type-C数据线供电

  2. 用跳线帽连接电源跳线P9。

  3. 将电源切换开关S1切换至“USB”端。

  4. 使用串口模块连接到UART调试引脚P8。

  5. 分别打开txrx工程,编译后下载到两个PAN211x开发板上。

TX端日志:

CPU @ 64000000Hz
SPI-3LINE
Tx[1]
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 
Tx[2]
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 
Tx[3]
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 

RX端日志:

CPU @ 64000000Hz
SPI-3LINE
Rx[1]:
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 
Rx[2]:
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 
Rx[3]:
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f