01_normal_setup 普通型收发配置例程¶
1. 简介¶
本例程在00_normal
例程的基础上进一步补充了非EASY_RF的配置功能。
另外对IOMUX功能也进行了说明。
2. 应用代码说明¶
2.1. 发射和接收流程¶
见上一个例程 00_normal
的说明。
2.2. EASY_RF与非EASY_RF配置方式¶
与00_normal例程相比,本例程增加了EASY_RF配置选项,用户可以修改pan211.h
中的EASY_RF定义来选择不同的配置方式。
2.2.1. EASY_RF方式¶
//pan211.h
#define EASY_RF 1
这种情况下,采用与00_normal
例程相同的方式进行配置,上电以后,PAN211_Init()
函数会自动根据easy_reg.h
中的参数表进行初始化,用户无需再进行额外的参数配置操作。
2.2.2. 非EASY_RF方式¶
//pan211.h
#define EASY_RF 0
这种情况下,用户需要手动配置参数表,即gRfConfig
结构体中的参数,然后调用PAN211_SetUpConfig
,此函数会在PAN211x已经完成上电初始化的情况下,重新将参数表写入到PAN211x中,并进行校准,这一过程的时间会比较长,可达数十毫秒,不建议在频繁的操作中使用。
可修改的配置如下:
RFConfig_t gRfConfig =
{
.Channel = 12, // 0 ~ 83 -> 2400MHz ~ 2483MHz
.TxPower = PAN211_TXPWR_0dBm, // 0 ~ 9
.DataRate = PAN211_DR_1Mbps, // 1Mbps, 2Mbps, 250Kbps
.ChipMode = PAN211_CHIPMODE_XN297,// 297, FS01,FS32
.EnWhite = true, // false, true
.Crc = PAN211_CRC_2byte, // disable, 1byte, 2byte, 3byte
.TxLen = 32, // 1 ~ 128
.RxLen = 32, // 1 ~ 128
.TxAddrWidth = PAN211_WIDTH_5BYTES, // 2 ~ 5
.TxAddr = {0xcc, 0xcc, 0xcc, 0xcc, 0xcc},
.RxAddrWidth = PAN211_WIDTH_5BYTES, // 2 ~ 5
.RxAddr = {
true, {0xcc, 0xcc, 0xcc, 0xcc, 0xcc},
false, {0},
false, {0},
false, {0},
false, {0},
},
.Endian = PAN211_ENDIAN_BIG, // big, little
.crcSkipAddr = false, // false, true
.EnRxPlLenLimit = false, // false, true
.WorkMode = PAN211_WORKMODE_NORMAL, // Normal
.EnDPL = false,
.EnTxNoAck = true,
.EnManuPid = false,
.TRxDelayTimeUs = 0,
.RxTimeoutUs = 0,
.AutoDelayUs = 0,
.AutoMaxCnt = 0,
.TxMode = PAN211_TX_MODE_SINGLE,
.RxMode = PAN211_RX_MODE_CONTINOUS,
};
注意: EASY_RF的两种配置方式本质上一样,这不属于芯片本身的属性,只是为了方便用户使用而提供的两种软件配置方式!
3. 例程演示¶
例程位置:
01_SDK/example/01_normal_setup
修改参数:
pan211_.h
中的EASY_RF
宏定义为0时,可通过修改gRfConfig
结构体来配置参数。
pan211_.h
中的EASY_RF
宏定义为1时,可使用配置导出工具替换对应工程的./src/easy_reg.h
文件来配置参数。
使用步骤:
找到两块PAN211x开发板,分别作为Tx端和Rx端。
用Type-C数据线供电
用跳线帽连接电源跳线P9。
将电源切换开关S1切换至“USB”端。
使用串口模块连接到UART调试引脚P8。
分别打开
tx
和rx
工程,编译后下载到两个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