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

PRF Production Test

1. 功能概述

本工程为 PAN10xx 芯片的射频产测(生产测试)Demo 工程,支持两种 DTM(Direct Test Mode)测试模式,客户可根据需求选择并移植到自己的产品中进行产测阶段的射频测试。

支持的测试模式

  1. HCI DTM 模式(默认):通过标准 HCI UART 协议与测试工具通信,兼容 PAN107x ToolBox 等工具。

  2. 2-Wire DTM 模式:通过简化的 2 线制协议进行通信,兼容nRF Connect for Desktop 中的 Direct Test Mode 测试工具。

主要功能

  • 射频发射测试(单载波、调制发射)

  • 射频接收测试(包统计)

  • 发射功率配置

  • RSSI/增益读取

  • 发射参数配置(间隔、包数)


2. 环境要求

硬件

项目

说明

开发板

PAN10xx EVB

USB转串口工具

支持 115200 波特率

频谱仪

用于射频指标测试(频偏、EVM等)

软件

项目

说明

Keil MDK

用于编译和烧录固件

PAN107x ToolBox

测试工具,下载地址

nRF Direct Test Mode

用于 2-Wire DTM 模式测试

串口配置

项目

说明

波特率

115200

数据位

8

停止位

1

校验位

None

流控

None

3. 工程配置

配置文件位置:keil_107x/configuration/sdk_config.h(PAN107x)或 keil_101x/configuration/sdk_config.h(PAN101x)

关键配置项

配置项

默认值

说明

DTM_TEST_MODE

1

DTM 测试模式:0=2-Wire DTM,1=HCI DTM

CONSTANT_TONE_TEST_ENABLE

0

上电是否自动启动单载波测试:0=禁用,1=启用

CONFIG_RF_TX_POWER_LVL

0

默认发射功率等级(0=0dBm,可配置 0-9 对应 0-9dBm)

CONFIG_LOG_UART_BAUDRATE

921600

日志 UART 波特率

4. 编译和烧录

工程路径

芯片型号

工程路径

PAN107x

<nimble_root>/pan10xx_samples/solutions/prf_production_test/keil_107x/

PAN101x

<nimble_root>/pan10xx_samples/solutions/prf_production_test/keil_101x/

编译步骤

  1. 打开 Keil μVision

  2. 打开对应芯片的工程项目文件(prf_production_test.uvprojx

  3. 点击 “Build” 按钮(或按 F7)进行编译

  4. 编译成功后,在 Objects 目录下生成 .hex 文件

烧录步骤

  1. 连接 J-Link 调试器到 EVB 板

  2. 在 Keil 中点击 “Flash” → “Download”(或按 F8)

  3. 烧录完成后复位芯片


5. 硬件连接

PAN107x EVB 连接说明

PAN107x EVB 引脚

USB转串口工具

说明

P1.0 (UART1_TX)

RX

数据发送

P2.4 (UART1_RX)

TX

数据接收

VBAT

VCC (3.3V)

电源

GND

GND

PAN101x EVB 连接说明

PAN101x EVB 引脚

USB转串口工具

说明

P0.1 (UART1_TX)

RX

数据发送

P0.0 (UART1_RX)

TX

数据接收

VBAT

VCC (3.3V)

电源

GND

GND

注意:串口引脚可根据需求自行修改,也可使用 SWD 烧录口复用为串口。


6. 测试模式说明

6.1 HCI DTM 模式(默认)

HCI DTM 模式使用标准 Bluetooth HCI 命令进行射频测试,可通过 PAN107x ToolBox 工具进行测试。

测试流程

  1. 将编译好的固件烧录到 EVB 板

  2. 连接 UART 到 PC

  3. 打开 PAN107x ToolBox 工具

  4. 选择对应的串口和波特率(115200)

  5. 参照工具界面进行射频测试

详细操作步骤请参考 PAN107x RF Test 文档

支持的 HCI 命令

详见第 7 章《串口 HCI 协议说明》。


6.2 2-Wire DTM 模式

2-Wire DTM 模式使用简化的 2 字节命令协议,适合自定义测试工具开发。

适用场景

2-Wire DTM 模式适用于以下场景:

  1. 资源受限的环境:不需要完整的 HCI 协议栈,代码量更小

  2. 快速产线测试:命令简洁,测试流程更快

  3. 兼容 nRF 测试工具:可与 nRF Connect for Desktop 的 Direct Test Mode 工具配合使用

上位机工具

推荐使用 nRF Connect for Desktop 中的 Direct Test Mode 测试工具:

  1. 下载并安装 nRF Connect for Desktop

  2. 在应用中安装 Direct Test Mode 插件

  3. 连接 PAN10xx 开发板到 PC

  4. 在工具中选择对应的串口和波特率(115200)

  5. 选择 “2-Wire” 模式进行测试

注意:使用 nRF 工具时,需确保硬件连接正确,且已烧录 2-Wire DTM 模式的固件。

配置方法

sdk_config.h 中设置:

#define DTM_TEST_MODE   0   // 选择 2-Wire DTM 模式

命令格式

2-Wire DTM 命令为 2 字节(MSB 优先):

[15:14] Command Type
[13:08] Parameter 1
[07:00] Parameter 2

命令类型

Command Type

说明

LE_TEST_SETUP (00)

0

测试设置命令

LE_RECEIVER_TEST (01)

1

启动接收测试

LE_TRANSMITTER_TEST (10)

2

启动发射测试

LE_TEST_END (11)

3

结束测试

示例命令

  • 复位命令0x0000(设置测试模式为复位)

  • 启动接收测试(2402MHz)0x4000(Command=01, Channel=0)

  • 启动发射测试(2402MHz, PRBS9)0x8000(Command=10, Channel=0, Length=0, Payload=0)

  • 结束测试0xC000(Command=11)

响应格式

响应为 2 字节(MSB 优先):

[15:08] Event Type
[07:00] Return Parameter
  • 成功:0x0000

  • 错误:0x0001

  • 接收包计数报告:0x8000 + 16-bit 包计数

实际串口数据示例

以下为使用串口调试助手进行 2-Wire DTM 测试的实际数据示例(十六进制显示):

示例 1:复位命令

发送(2 字节):

00 00

接收(2 字节):

00 00  (成功)

示例 2:启动接收测试(2402MHz,Channel=0)

发送(2 字节):

40 00

接收(2 字节):

00 00  (成功)

示例 3:启动发射测试(2402MHz, PRBS9, Channel=0)

发送(2 字节):

80 00

接收(2 字节):

00 00  (成功)

示例 4:结束测试并读取接收包数

发送(2 字节):

C0 00

接收(2 字节):

80 2A  (成功,接收到 0x002A = 42 个包)

注意:2-Wire DTM 模式的串口数据为每个命令/响应 2 字节,MSB 优先。使用串口调试助手时,请设置为十六进制发送/接收模式。

2-Wire 模式命令速查表

命令类型

命令值(Hex)

计算方法

响应

说明

复位

0x0000

固定值

0x0000

复位 DTM 状态

接收测试

0x40XX

0x4000 + (Ch << 8)

0x0000

启动接收测试

发射测试(PRBS9)

0x80XX

0x8000 + (Ch << 8)

0x0000

启动 PRBS9 发射

发射测试(11110000)

0x80XX

0x8000 + (Ch << 8) + 1

0x0000

启动 11110000 发射

发射测试(10101010)

0x80XX

0x8000 + (Ch << 8) + 2

0x0000

启动 10101010 发射

结束测试

0xC000

固定值

0x8000+计数

结束测试,返回接收包数

命令格式详细说明

Bit 位

名称

说明

[15:14]

Command Type

00=SETUP, 01=RECEIVER, 10=TRANSMITTER, 11=END

[13:08]

Parameter 1

信道号 (0-39) 或负载类型

[07:00]

Parameter 2

负载类型(仅发射测试)或保留

常用信道与频率对应

Channel

频率(MHz)

Channel

频率(MHz)

0

2402

19

2440

1

2404

20

2442

9

2420

29

2458

10

2422

30

2460

18

2438

39

2480

提示:完整的 0-39 信道对应 2402-2480 MHz,步长 2 MHz。


7. 串口 HCI 协议说明

7.1 HCI 命令格式

标准 HCI UART 传输格式:

[Packet Type] [Opcode] [Parameter Length] [Parameters...]
     1字节       2字节      1字节           N字节
  • Packet Type: 0x01 (Command)

  • Opcode: OGF(6位) + OCF(10位)

  • Parameter Length: 参数长度

  • Parameters: 命令参数

7.2 HCI 事件格式

[Packet Type] [Event Code] [Parameter Length] [Parameters...]
     1字节       1字节        1字节           N字节
  • Packet Type: 0x04 (Event)

  • Event Code: 0x0E (Command Complete) 或 0x0F (Command Status)


7.3 标准 HCI LE 测试命令

7.3.1 LE Test Reset

项目

OGF

0x03 (Controller Baseband)

OCF

0x0003

Opcode

0x0C03

参数

功能:每次测试前执行复位,重置测试状态。

命令示例

发送: 01 03 0C 00
接收: 04 0E 04 01 03 0C 00

7.3.2 LE Receiver Test (v1)

项目

OGF

0x08 (LE Controller)

OCF

0x001D

Opcode

0x201D

参数

RX_Channel (1字节)

参数说明

参数

说明

RX_Channel

0x00-0x27,对应 2402-2480 MHz

命令示例(接收 2402MHz):

发送: 01 1D 20 01 00
接收: 04 0E 04 01 1D 20 00

7.3.3 LE Transmitter Test (v1)

项目

OGF

0x08 (LE Controller)

OCF

0x001E

Opcode

0x201E

参数

TX_Channel (1), Length (1), Payload (1)

参数说明

参数

说明

TX_Channel

0x00-0x27,对应 2402-2480 MHz

Length

0x00-0xFF,数据包负载长度

Payload

0x00=PRBS9, 0x01=11110000, 0x02=10101010

命令示例(2402MHz, 255字节, PRBS9):

发送: 01 1E 20 03 00 FF 00
接收: 04 0E 04 01 1E 20 00

7.3.4 LE Test End

项目

OGF

0x08 (LE Controller)

OCF

0x001F

Opcode

0x201F

参数

响应参数

参数

说明

Status

0x00=成功

Num_Packets

2字节,接收测试时返回接收包数

命令示例

发送: 01 1F 20 00
接收: 04 0E 06 01 1F 20 00 XX XX

(XX XX 为接收包数,LSB 优先)


7.4 HCI LE 测试命令 (v2)

7.4.1 LE Receiver Test (v2)

项目

OGF

0x08 (LE Controller)

OCF

0x0033

Opcode

0x2033

参数

RX_Channel (1), PHY (1), Modulation_Index (1)

参数说明

参数

说明

PHY

0x01

LE 1M PHY

PHY

0x02

LE 2M PHY

PHY

0x03

LE Coded PHY

Modulation_Index

0x00

Standard Modulation Index

Modulation_Index

0x01

Stable Modulation Index

命令示例(2402MHz, 2M PHY):

发送: 01 33 20 03 00 02 00
接收: 04 0E 04 01 33 20 00

7.4.2 LE Transmitter Test (v2)

项目

OGF

0x08 (LE Controller)

OCF

0x0034

Opcode

0x2034

参数

TX_Channel (1), Length (1), Payload (1), PHY (1)

参数说明

参数

说明

PHY

0x01

LE 1M PHY

PHY

0x02

LE 2M PHY

PHY

0x03

LE Coded PHY (S=8)

PHY

0x04

LE Coded PHY (S=2)

命令示例(2402MHz, 255字节, 11110000, 2M PHY):

发送: 01 34 20 04 00 FF 01 02
接收: 04 0E 04 01 34 20 00

7.5 厂商自定义 HCI 命令

7.5.1 HCI Vendor Debug Write Tx Power

项目

OGF

0x3F (Vendor)

OGF_EXT

0x0F (Debug)

OCF

0x03

Opcode

0xFFC3

参数

Tx_Power (1)

参数说明

参数

说明

Tx_Power

-24 到 +7 dBm

命令示例(设置 0 dBm):

发送: 01 C3 FF 01 00
接收: 04 0E 04 01 C3 FF 00

7.5.2 HCI Vendor Constant Tone Test (v1)

项目

OGF

0x3F (Vendor)

OGF_EXT

0x0F (Debug)

OCF

0x0B

Opcode

0xFFCB

参数

TX_Channel (1)

功能:启动单载波测试。

命令示例(2402MHz):

发送: 01 CB FF 01 00
接收: 04 0E 04 01 CB FF 00

7.5.3 HCI Vendor Read RSSI GAIN

项目

OGF

0x3F (Vendor)

OGF_EXT

0x0F (Debug)

OCF

0x0A

Opcode

0xFFCA

参数

响应参数

参数

长度

说明

Status

1字节

0x00=成功

RSSI_OUT

2字节

RSSI 输出值,转换为 dBm: (value - (2<<14)) / 4.0

RSSI_RAW

2字节

RSSI 原始值

RSSI_SEG

2字节

RSSI 段值

GAIN

1字节

增益值

命令示例

发送: 01 CA FF 00
接收: 04 0E 0B 01 CA FF 00 XX XX XX XX XX XX XX

7.5.4 HCI Vendor Debug LE Transmitter Parameters

项目

OGF

0x3F (Vendor)

OGF_EXT

0x0F (Debug)

OCF

0x11

Opcode

0xFFD1

参数

Tx_Interval (2), Packet_Count (2)

参数说明

参数

说明

Tx_Interval

0x0000=使用默认值,其他=发射间隔(us)

Packet_Count

0x0000=持续发射直到收到停止命令,其他=发射包数

命令示例(间隔 1000us,发射 1000 包):

发送: 01 D1 FF 04 E8 03 E8 03
接收: 04 0E 04 01 D1 FF 00

8. 常见问题

Q1: 如何切换 DTM 测试模式?

A: 修改 sdk_config.h 中的 DTM_TEST_MODE 宏:

  • 0:2-Wire DTM 模式

  • 1:HCI DTM 模式(默认)

Q2: 如何修改 UART 波特率?

A: 修改 src/app.cuart1_init() 函数的 UART1_OBJ.initObj.baudRate 值,并重新编译。

Q3: 接收测试时如何读取接收包数?

A: 发送 LE Test End 命令,响应中包含 Num_Packets 字段。

Q4: 如何确认射频发射正常?

A: 使用频谱仪观察发射频点,确认频偏和功率在正常范围内。


9. RAM/Flash 资源使用情况

PAN107x

Flash 使用:   24.70 KB
RAM 使用:     5.68 KB

PAN101x

Flash 使用:   24.10 KB
RAM 使用:     4.44 KB

注意:以上资源使用情况仅供参考,实际使用情况可能因配置不同而变化。