本文测试使用的芯片是: ST25R3918, 采用 I2C 进行通讯.

芯片参考链接

开始移植

  1. 复制软件库所有文件(ST253916RFAL) 到项目

  2. 建议复制一个最简单示例检查芯片是否工作: 打开文件 en.STSW-ST25RFAL002/doc/rfal.chm 的 example 这是建议检查 NFC 芯片最简单的例子了, 后面如果已经识别到了卡片, 那么就根据 参考官方示例项目 拿自己需要的示例

  3. 复制文件: STM32L476RG-Nucleo\Applications\X-NUCLEO-NFC06A1\polling\analogConfigTbl_NFC06A1.c

  4. 复制文件: STM32L476RG-Nucleo\Applications\X-NUCLEO-NFC06A1\polling\Inc\rfal_platform.h 这个文件就是定义 ST25R391x 芯片如何工作, 以及编译所需内容, 用户必须根据自己的芯片进行修改这个文件

  5. 将 st25r3916Isr() 函数放到 IRQ 引脚发生中断被调用的函数里面

  6. 参考官方示例项目: STM32L476RG-Nucleo\Applications\X-NUCLEO-NFC06A1\polling (不需要复制这个项目的所有文件)

  7. 更多详细内容, 请查看 用户手册文件

调试 NFC 芯片是否在扫描设备

使用 示波器 识别到天线部分有 频率/压降 输出, 那证明 芯片 在工作, 可以使用 手机模拟 NFC 尽量靠近天线部分, 等待检测, 可以放久一点, 一般天线部分好的话, 那么可以到手机放在那里 示波器波形会有变化

后记

ST25R391x 芯片底层可以实现 Mifare Classic 相关的卡片认证读取功能, 由于法律原因, ST 官方不提供支援, 但是网上关于这部分资源基本没有, 所以该项目失败告终, 最后转向了使用 PN5190 芯片