CH585手把手进行NFC硬件调试
01 概述
CH585 的 EVT 资料包中,《CH585 系列 NFC 读卡器应用指南》已系统介绍了 NFC 读卡器(PCD)的硬件设计全流程,本文基于 CH585M-EVT-R1 评估板与 CH585EVT 例程包,对该指南涉及的硬件调试环节逐一进行实际操作演示,包括发送档位调节、接收电路调试、天线测量与匹配网络调试等内容。
尽管官方的 CH585M-EVT-R1 评估板已经进行了 NFC 硬件调试,但出于教学目的,本文将基于不使用原有匹配元件参数的基础重新进行硬件调试过程。
本文涉及的硬件调试工具如下表:
- 矢量网络分析仪(VNA)(要求带宽覆盖1~100MHz,S11 SNR >50dB)
- 适用于该矢量网络分析仪的校准件
- 一条与该网络分析仪接口适配的射频馈线尾线,推荐选择 RG316 或 RF1.13 馈线
- 至少 70MHz 带宽的示波器及低寄生电容探头
- ISO14443A 测试卡(如 Mifare Classic)
- USB 转串口工具
- (可选)包含 1-330pF 范围的 NPO/C0G 贴片电容本(用于快速迭代调试,免于反复购买的麻烦)
02 认识 EVT 板上的 NFC 电路
CH585M-EVT-R1 评估板的 NFC 天线位于板卡左侧,包含 13.56MHz 线圈天线、EMC 低通滤波、匹配网络与接收分压电路。CH585 采用双端天线驱动方式,不支持单端天线。

本文将基于 NFC 电路中的匹配部分已拆除的情况进行阐述。
02.1 电路结构
NFC 电路的原理图如下:

完整的评估板原理图位于资料包 EVT/PUB/CH585SCH.pdf。
各部分作用说明:
- EMC 低通滤波器:由 L2/L3 与 C9/C13 组成,抑制高次谐波辐射,截止频率设计在 14~18MHz 范围内即可,常用 1uH/100pF 的组合;
- 匹配网络:由 C4/C10 与 C12/C14 组成,将天线谐振调整至 13.56MHz;
- 接收电路:由 R12、R15、R16 组成分压网络,将天线信号分压后送入 NFCI 引脚;
- 阻尼电阻:R13/R14 用于调节天线回路 Q 值。
02.2 官方推荐器件参数
官方推荐器件参数如下表:
| 元件位号 | 推荐值 | 备注 |
|---|---|---|
| L2、L3 | 1.0μH ±5% | Idc > 50mA |
| C9、C13 | 100pF ±2% | NP0/C0G 材料电容 |
| C4、C10 | 30pF ±2% | NP0/C0G 材料电容,需要根据实际测试调整 |
| C12、C14 | 200pF ±2% | NP0/C0G 材料电容,需要根据实际测试调整 |
| R13、R14 | 2Ω ±5% | 需要根据实际测试调整 |
| R12 | 1kΩ ±5% | 需要根据实际测试调整 |
| R15 | NC | 需要根据实际测试调整 |
| R16 | 2kΩ ±5% | 需要根据实际测试调整 |
02.3 C6/C17 拆分焊盘
由于计算出的电容值不一定能找到合适的成品电容,电路板预留了 C6 与 C17 焊盘,匹配调试时可将 C12/C14 的部分电容值拆分到 C6/C17 上,并联后得到目标电容值。例如原 200pF 可拆分为:
| 元器件 | 推荐值 | 备注 |
|---|---|---|
| C12、C14 | 180pF ±2% | NP0/C0G 材料电容 |
| C6、C17 | 20pF ±2% | NP0/C0G 材料电容 |
在开发阶段也推荐采取这样预留的设计,便于调试。
03 天线设计与测量
由于本文的主要内容是以官方 EVT 评估板为 PCB 样品进行硬件调试,故本章仅简述天线设计的重要事项。
03.1 天线设计要点
天线设计时需注意以下要点:
- CH585 采用双端天线,不支持单端天线;
- 推荐使用 PCB 天线,FPC 天线成本高、选型难、不易匹配;
- 一般来说,线圈面积、匝数越大,等效感值越大,耦合能量越大,传输距离越远;
- 但是,天线等效电感应设计在 1~1.5μH 范围内:感值过小,场强低,刷卡通信距离短;感值过大,匹配所需的电容较小,且Q值容易偏高,难以调节。
03.2 感值估算公式
板载天线(圆环状或矩形)的电感值可用以下公式估算:
$$L=2l_1N^{1.8}((ln\frac{l_1}{D_1})-K)$$
各参数含义:
| 参数 | 含义 | 单位 |
|---|---|---|
| L | 天线电感估算值 | nH |
| l1 | 一圈天线导线环的长度 | cm |
| D1 | PCB 线圈导线直径或覆铜宽度 | cm |
| K | 天线形状系数(圆环状 K=1.07,矩形 K=1.47) | — |
| N | 线圈匝数,一般不少于 2 | — |
此公式是一个经验性公式,计算的结果会与实际测试值有所偏差。
04 VNA 测量与参数反推
PCB 打样完成后即可得到实际的线圈。将线圈焊接射频馈线尾线,使用矢量网络分析仪(VNA)测量线圈的 R+jX 阻抗与自谐振频率,再反推出计算表所需要的相应等效参数,供匹配计算使用。
本文测量方式适用于所有支持 S11 测量且支持端口延伸的 VNA。鉴于 NanoVNA 等手持式仪器成本低,且在所需频率范围内精度可满足一般调试需求,本文的 VNA 相关使用图片以 NanoVNA 为例。
04.1 测量准备
- 将 VNA 的频率范围设置为 1~100MHz,中频带宽 1kHz;

- 对 VNA 进行 OSL(Open-Short-Load)校准,消除测试端口自身的系统误差;

- 将待使用的射频馈线尾线连接到 VNA 测试端口,进行端口延伸或电延迟修正(具体的设置方法因仪器而异),消除射频馈线尾线引入的相位延迟,确保测量参考面位于射频馈线尾线末端;


- 取下射频馈线尾线,将板载天线的一端焊接在射频馈线尾线的内芯线上,另一端焊接在射频馈线尾线的屏蔽层上,并将射频馈线连接到 VNA 测试端口。

焊接时需要小心不要短路或虚焊,建议使用热熔胶或其他方法固定射频馈线尾线,避免测量过程中线缆晃动导致焊盘脱落。
然后设置以下 S11 迹线:
- 史密斯图(R+jX)
- 虚部幅度(或相位)
04.2 测量自谐振频率
在 VNA 上观察虚部幅度(或相位)迹线(图中为紫色),该迹线过零点的频率,即为天线自谐振频率 $f_0$。
为了测量的准确性,建议使用光标功能跟踪虚部幅度(或相位)迹线的过零点,并记录光标跟踪到的频率值。本例中,自谐振频率为 68.32MHz。

04.3 读取 13.56MHz 处的 R+jX
将光标固定在 13.56MHz,读取并记录该光标处天线的复阻抗 $Z_{meas} = R + jX$。为了方便观察,可以重新设置 VNA 的频率参数,将中心频率设置为 13.56MHz,扫宽设置为 10MHz。本例中,复阻抗为 2.168+j101.6Ω。

04.4 反推计算表所需的等效参数
匹配计算表需要的是线圈的等效电感 $L_a$、等效寄生电容 $C_a$ 与等效损耗电阻 $R_a$。VNA 直接读到的阻抗和其定义方式不同,不能直接使用:线圈存在匝间寄生电容,VNA 显示的阻抗是对于等效电路为电感支路($R_a + j\omega L_a$)与寄生电容 $C_a$ 并联而言的。
【把这图给老子换成真图】
1 | +--- [ R_a ] ---[ L_a ]---+ |
第一步:将测量阻抗转换为导纳
反推在并联模型下进行,先将 13.56MHz 处读取的串联等效阻抗 $Z_1 = R + jX$ 转换为导纳:
$$Y_1 = \frac{1}{Z_1} = \frac{R - jX}{R^2 + X^2} = G_1 + jB_1$$
记 $G_1$ 为电导(实部)、$B_1$ 为电纳(虚部)。这两个值连同自谐振频率 $f_0$,就是反推所需的全部输入量。
第二步:高 Q 近似求解
上述并联结构的复导纳为:
$$Y(\omega) = \frac{1}{R_a + j\omega L_a} + j\omega C_a$$
分离实部(电导 G)与虚部(电纳 B):
$$G(\omega) = \frac{R_a}{R_a^2 + \omega^2 L_a^2}, \quad B(\omega) = \omega C_a - \frac{\omega L_a}{R_a^2 + \omega^2 L_a^2}$$
对于高 Q 线圈($R_a^2 \ll \omega^2 L_a^2$),$R_a^2$ 项可以忽略,13.56MHz 处的电导与电纳简化为:
$$G_1 \approx \frac{R_a}{\omega_1^2 L_a^2}, \quad B_1 \approx \omega_1 C_a - \frac{1}{\omega_1 L_a}$$
在自谐振频率 $f_0$ 处电纳为零,即 $\omega_0 C_a \approx \frac{1}{\omega_0 L_a}$,代入 $B_1$ 的表达式消去 $C_a$:
$$B_1 \approx \frac{\omega_1}{\omega_0^2 L_a} - \frac{1}{\omega_1 L_a} = \frac{1}{L_a}\left(\frac{\omega_1}{\omega_0^2} - \frac{1}{\omega_1}\right)$$
整理得到电感:
$$L_a \approx \frac{1 - \left(\frac{f_1}{f_0}\right)^2}{-\omega_1 B_1}$$
回代即可得到寄生电容与损耗电阻:
$$C_a \approx \frac{1}{\omega_0^2 L_a}, \quad R_a \approx G_1 \cdot (\omega_1 L_a)^2$$
其中 $\omega_1$ 为 13.56MHz 对应的角频率,$\omega_0$ 为自谐振频率对应的角频率。
计算示例
以上文实测数据为例:自谐振频率 $f_0 = 68.32\ \text{MHz}$,13.56MHz 处复阻抗 $Z_1 = 2.168 + j101.6\ \Omega$。
- 转换为导纳:$Y_1 = \frac{1}{2.168 + j101.6} \approx 2.099\times10^{-4} - j9.838\times10^{-3}\ \text{S}$,即 $G_1 \approx 2.099\times10^{-4}$、$B_1 \approx -9.838\times10^{-3}$;
- 代入高 Q 近似公式,得到 $L_a \approx 1.146\ \mu\text{H}$、$C_a \approx 4.735\ \text{pF}$、$R_a \approx 2.001\ \Omega$。
反推结果汇总如下:
| 参数 | 值 |
|---|---|
| 自谐振频率 $f_0$ | 68.32 MHz |
| 13.56MHz 处测量阻抗 | $2.168 + j101.6\ \Omega$ |
| 等效电感 $L_a$ | 1.146 μH |
| 等效寄生电容 $C_a$ | 4.735 pF |
| 等效损耗电阻 $R_a$ | 2.001 Ω |
05 匹配网络计算
【待完成,以下内容均为 AI 生成。】
05.1 匹配结构与计算工具
匹配网络采用经典的二电容结构,与 02.1 节电路结构对应。使用配套计算工具 NFC-Reader Antenna Tuning.xls 计算匹配元件初始值。
05.2 计算表填写演示
计算表输入参数如下表:
| 参数 | 说明 | 示例值 |
|---|---|---|
| L | 天线电感(实测 $L_a$ 或估算) | 1.146 μH |
| Cpa | 天线寄生电容(实测 $C_a$) | 4.735 pF |
| Rcoil | 天线电阻(实测 $R_a$) | 2.001 Ω |
| Q | 设计 Q 值 | 20(建议 10~35) |
| Target Impedance | 目标阻抗 | 50 Ω |
| Femc | EMC 滤波截止频率 | 13.56 MHz |
| L0 | 匹配电感 | 1000 nH |
| C01、C02 | EMC 滤波电容 | 与 C9/C13 对应 |
输出结果 C1、C2 与 Rq 为理想计算值,作为调试初始值使用,需通过后续测试调整。
【我图呢:计算表填写完成后的界面截图】
06 匹配网络焊接与验证
06.1 焊接要点
按照 05.2 节的计算值焊接匹配元件,此阶段注意:
- 不焊接主控芯片,或将匹配电感(L2/L3)翘起一边断开与主控的连接,使天线与匹配网络在 VNA 测量时不受芯片引脚寄生参数影响;
- 将射频馈线尾线连接到电感靠近主控一侧,两个电感的一侧各自连接到 04.1 节中使用的射频馈线尾线的内芯线和屏蔽层,以保持与 04.1 节测量相同的参考面;
- 焊接后检查焊点质量,避免虚焊,也要小心避免短路到其它元件。
【我图呢:断开主控连接后的焊接实物图】
06.2 VNA 验证
焊接完成后,使用 VNA 验证匹配结果:
- 测试频率范围设置为 10~20MHz;
- 添加 Marker 并定位至 13.56MHz;
- 观察 S11 对数幅度,理想情况下应小于 -10dB;
- 观察史密斯图,迹线应经过 50Ω 附近。
【我图呢:匹配后 VNA S11 曲线截图】
【我图呢:匹配后史密斯图截图】
06.3 迭代调试
实际焊接后谐振频率偏离 13.56MHz 属于正常现象,主要原因是 PCB 走线寄生参数、元件容差以及产品结构对天线近场环境的影响。微调方向如下:
- 谐振频率偏高 → 增大匹配电容;
- 谐振频率偏低 → 减小匹配电容。
调试时还需注意以下事项:
- Q 值越高谐振越尖锐,但 13.56MHz ISM 频段有 ±7kHz 带宽要求,Q 值过高会导致带宽过窄,可通过调整阻尼电阻 Rq 展宽带宽,在读卡距离与通信稳定性之间取平衡;
- 匹配电容使用 NPO/C0G 材质,精度 1%~5%;
- 天线下方禁止铺铜,周围留出净空区;
- NFC 走线避开蓝牙天线、晶振电路与高速 USB 信号线;
- 匹配应在最终装配状态下进行,壳体、电池等周边环境会影响匹配效果。
07 测试固件与发送档位
07.1 编译烧录 NFCA 例程
匹配验证完成后,恢复主控与匹配网络的连接,烧录 EVT/EXAM/NFCA/PCD/MifareClassic 例程工程作为测试固件,编译与烧录方法见《CH585 快速开始指南》04 节。
该例程的功能为循环寻卡,检测到卡片后通过日志串口打印卡片 UID 与各扇区块数据。
07.2 接线与日志
日志串口引脚与波特率以例程实际配置为准,接线方式见《CH585 快速开始指南》附录”关于日志输出”一节。
07.3 自动档位选择
例程启动时根据电源电压自动选择发送档位,档位与电压对应关系如下表:
| 发送档位 | Vdd 范围(V) |
|---|---|
| Level3 | 2.4 ≤ Vdd < 2.6 |
| Level2 | 2.6 ≤ Vdd < 3.0 |
| Level1 | 3.0 ≤ Vdd < 3.4 |
| Level0 | 3.4 ≤ Vdd ≤ 3.6 |
烧录后可通过日志串口观察实际选择的档位,与供电电压对照验证。
07.4 实测:不同档位下天线信号峰峰值
使用示波器在 NFCP/NFCI 处测量各发送档位下的天线信号幅度,对比结果如下:
| 发送档位 | 天线信号峰峰值(V) |
|---|---|
| Level0 | 【待实测】 |
| Level1 | 【待实测】 |
| Level2 | 【待实测】 |
| Level3 | 【待实测】 |
【我图呢:四个发送档位下天线信号波形对比截图】
07.5 档位补偿技巧
对于电感量偏小的天线,可通过提升发送档位来补偿信号强度。发送档位通过 nfca_pcd_set_out_drv() 函数设置。
08 接收电路调试
08.1 分压原理与判定标准
接收分压网络将天线信号按比例分压后送入 NFCI 引脚,分压关系如下:
$$V_{nfci_pp} = V_{ant_pp} \cdot \frac{R15}{R15 + R16}$$
判定标准:
- 无卡时,NFCI 引脚输入电压峰峰值在 $(3.6 + VDD) / 2$ 左右,且小于 $VDD + 1.4V$;
- 有卡时,载波电压峰峰值在 1.0V 以上。
08.2 正确测量方法
测量 NFCI 引脚信号时,需注意以下事项:
- 使用寄生电容极小的示波器探头,寄生电容过大会导致测量结果不准确;
- 测量应在无卡片环境中进行,避免卡片对天线信号幅度造成衰减;
- 同时测量天线信号与 NFCI 引脚信号,便于对照分压比例是否正确。
08.3 实测:无卡 / 有卡 NFCI 波形对比
【我图呢:无卡时 NFCI 引脚波形截图】
【我图呢:有卡时 NFCI 引脚波形截图】
08.4 调整 R16 的实操
当接收信号不满足判定标准时,调整 R16 的阻值。固定 R15 为 1kΩ,R16 越大,NFCI 引脚峰峰值越低。将支持电压范围内的天线信号都调整到符合要求即可。
【我图呢:R16 调整前后 NFCI 峰峰值变化对比截图】
08.5 NFC_CTR 动态分压(进阶)
当需要支持宽电压范围时,可使用 NFC_CTR 动态分压方案。读卡器开始工作时 NFC_CTR 输出低电平,R12 与 R16 形成分压;当 NFCI 引脚电压峰峰值过低时,将 NFC_CTR 设置为模拟输入,此时天线峰峰值不再分压。
09 低功耗检卡
对于电池供电的场景,读卡器通常不会持续开启射频场,而是周期性检测是否有卡片靠近,检测到卡片后才建立通讯。CH585 提供常规低功耗检卡与超低功耗检卡两种方案,本节对这两种方案作简要说明,重点介绍超低功耗检卡对硬件的要求。
09.1 两种低功耗检卡方案
| 方案 | 原理 | 特点 |
|---|---|---|
| 常规低功耗检卡 | 周期性发送 WUPA 命令,检测是否有卡片回复 | 功耗较高,但兼容性好 |
| 超低功耗检卡 | 检测天线信号 ADC 值的变化 | 功耗极低,适用于电池供电场景,一般与蓝牙睡眠同步使用 |
常规低功耗检卡需要工作一段时间才能判断有卡无卡,功耗偏高;超低功耗检卡不持续发射射频场,仅在短时间内检测天线信号,功耗显著更低。
09.2 超低功耗检卡原理
超低功耗检卡的检测过程如下:
- 打开 13.56MHz 信号发送;
- 检测 NFC 内部 ADC 的值;
- 通过阈值变化判断有卡无卡:有卡则进行后续通讯,无卡则关闭射频场。
09.3 超低功耗检卡的硬件要求
超低功耗检卡对硬件有两项要求,直接影响检卡灵敏度:
- 分压电阻调整:无卡时,分压电阻需调整到 NFCI 引脚峰峰值为 2.9V 左右为佳。该目标值与 08.1 节常规工作的判定标准不同,调整方法相同(固定 R15,调整 R16);
- 天线匹配:天线必须匹配到 13.56MHz 附近,且回波损耗越大越好。否则天线信号的变化不明显,无法有效检测到卡片靠近。
09.4 注意事项
超低功耗检卡与蓝牙、触摸功能共用 ADC 与引脚资源,使用时需注意以下事项:
- 与蓝牙共存:蓝牙例程中使能
HAL_SLEEP后,初始化时不可将蓝牙代码中关于 NFC 的 4 个引脚默认上拉,否则会影响超低功耗检卡的基线校准; - 与触摸共存:寄存器
R8_TKEY_CFG的RB_TKEY_PWR_ON位使能期间,R8_ADC_CHANNEL不可以为 NFC 的检测通道,否则会影响 NFC 检卡,需要一段时间才能恢复。
10 实际卡片测试
09.1 测试方法
- 读卡成功率:卡片在固定位置连续读卡 100 次,统计成功次数;
- 极限距离:逐渐拉远卡片距离,直到读卡失败,记录最大可读距离;
- 日志验证:观察串口日志中的 UID 与扇区块数据是否正确。
09.2 测试记录
| 测试项 | 结果 |
|---|---|
| 读卡成功率 | 【待实测】 |
| 最大读卡距离 | 【待实测】 |
11 常见问题 FAQ
| 现象 | 可能原因 | 解决措施 |
|---|---|---|
| 读卡距离短 | 匹配谐振点偏移 | VNA 验证并微调匹配电容 |
| 读卡距离短 | 发送档位过低 | 按电压表提升发送档位 |
| 读卡不稳定 | Q 值过高/带宽不足 | 调整阻尼电阻展宽带宽 |
| 读卡不稳定 | 天线被金属遮挡 | 检查天线下方净空区与壳体金属件 |
| NFCI 信号幅值异常 | 分压电阻比例不当 | 按 08.4 节调整 R16 |
| 谐振频率偏移 | 元件容差/结构环境变化 | 按 06.3 节方向微调电容 |
| VNA 测量结果异常 | 未做校准/端口延伸 | 完成 OSL 校准与端口延伸后重新测量 |
| 检卡不灵敏(超低功耗) | 天线谐振偏移或回波损耗不足 | 重新匹配天线到 13.56MHz 附近 |
| 超低功耗检卡误唤醒 | 检测阈值过小 | 增大阈值参数(如 NFCA_PCD_LPCD_THRESHOLD_PERMIL) |
附录
附录 A:NFC 电路器件参数速查表
同 02.2 节表格。
附录 B:接线速查表
| 用途 | 接口 / 引脚 | 说明 |
|---|---|---|
| 固件烧录 | USB 全速口 / 高速口 | 冷启动进入 ISP 后下载 |
| 日志观察 | 例程日志串口 | 见《CH585 快速开始指南》附录 |
附录 C:参考资料
- 官方《CH585 系列 NFC 读卡器应用指南》(CH585EVT 资料包内 PDF)
- CH585EVT 例程包(
EXAM/NFCA目录) - 《CH585 快速开始指南》(本文姊妹篇)