第一步:下载 Arduino IDE
打开 Arduino 官网下载并安装 Arduino IDE。已经安装的客户直接跳到库管理器。
Arduino IDE 下载NFC · I2C · EEPROM
ST25DV16K 是动态 NFC/RFID Tag 芯片,内部 16-Kbit EEPROM,支持 I2C 有线读写,也支持手机 NFC 通过 13.56MHz RF 接口读取。适合做可动态改写的网址标签、设备配置卡、NFC 信息牌和 I2C 到 NFC 的实验项目。
Quick Facts
Product
下面为本店实物图。模块带板载 NFC 天线,两侧有 STEMMA QT / Qwiic 接口,也保留 2.54mm 焊盘。
Specs
以下参数按 ST25DV16K 芯片公开资料和模块常见设计整理;模块供电、丝印、接口以当前实物为准。
| 项目 | 说明 | 备注 |
|---|---|---|
| 芯片型号 | ST25DV16K | 动态 NFC/RFID Tag IC |
| EEPROM 容量 | 16-Kbit,约 2048 bytes | I2C 按 byte 访问,RF 按 4-byte block 访问 |
| 通信接口 | I2C + RF | RF 为 13.56MHz NFC/RFID |
| RF 协议 | ISO/IEC 15693,NFC Forum Type 5 | 手机 NFC 一般可读 Type 5 标签 |
| 芯片供电 | 1.8V ~ 5.5V | 模块 VIN 可按主控逻辑电平供电 |
| I2C 速度 | 最高 1MHz | 排查时先用 100kHz 或 400kHz |
| 常见 I2C 地址 | 0x2D、0x53、0x57 | 同一芯片不同存储/寄存器区可能响应不同地址 |
| GPO | 可配置事件输出 | 用于 RF 活动/中断提示,可先不接 |
| VEH | 能量采集输出 | 非稳压电源,不建议给主控供电 |
Wiring
STEMMA QT / Qwiic 线序按常见颜色:红 VCC/VIN、黑 GND、蓝 SDA、黄 SCL。不要把 GPO、VEH 当成普通 I2C 必接线。
| 模块引脚 | Arduino UNO/Nano | ESP32 | 说明 |
|---|---|---|---|
| VIN | 5V | 3.3V | 建议与主控 I2C 逻辑电平一致 |
| GND | GND | GND | 必须共地 |
| SDA | A4 / SDA | GPIO21 | I2C 数据线 |
| SCL | A5 / SCL | GPIO22 | I2C 时钟线 |
| GPO | 可不接 | 可接任意输入脚 | RF 活动/中断提示,需要外部上拉时再接 |
| VEH | 可不接 | 可不接 | 能量采集输出,不是稳定电源 |
Software
先用 I2C 扫描程序确认接线和地址,再安装官方 ST25DV 库运行示例。客户不会下载程序时,可以直接发这一段。
打开 Arduino 官网下载并安装 Arduino IDE。已经安装的客户直接跳到库管理器。
Arduino IDE 下载Arduino IDE 里打开“工具 / 管理库”,搜索 STM32duino ST25DV,安装 STMicroelectronics 维护的库。
安装后打开 文件 → 示例 → STM32duino ST25DV → ST25DV_HelloWorld,按示例修改引脚和 URL 后上传。
Quick Test
下面这个程序只用于确认模块 I2C 有响应,不负责写 NFC URL。扫到 0x2D、0x53、0x57 中的一个或多个,通常说明 I2C 接线基本正常。
#include <Wire.h>
void setup() {
Serial.begin(115200);
Wire.begin(); // UNO/Nano: SDA=A4, SCL=A5
// Wire.begin(21, 22); // ESP32: SDA=GPIO21, SCL=GPIO22
Serial.println("ST25DV16K I2C scan start");
Serial.println("Common addresses may include 0x2D, 0x53, 0x57.");
}
void loop() {
byte found = 0;
for (byte addr = 1; addr < 127; addr++) {
Wire.beginTransmission(addr);
byte error = Wire.endTransmission();
if (error == 0) {
Serial.print("I2C device found at 0x");
if (addr < 16) Serial.print("0");
Serial.println(addr, HEX);
found++;
}
}
if (found == 0) Serial.println("No I2C device found. Check VIN/GND/SDA/SCL.");
delay(3000);
}
Use Notes
ST25DV 系列是一个芯片,但用户存储区、系统区、动态寄存器/邮箱等区域可能使用不同 I2C 地址。模块背面也标了 0x2D、0x53、0x57,所以看到多个地址不一定异常。
写入 NDEF URL 或文本后,支持 NFC Type 5 / ISO15693 的手机通常可以靠近天线读取。天线面积较小,测试时手机 NFC 区域要贴近模块天线。
常见 PN532 教程多用于 ISO14443 / Mifare 一类标签,不一定支持 ISO15693。客户用 PN532 读不到,不代表 ST25DV16K 模块坏。
VEH 是能量采集输出,受 RF 场强和负载影响,不是稳定电源。资料页只建议用它做实验或检测,不建议给主控稳定供电。
Downloads
官方原理图和 PCB 文件请保留来源链接,不建议去掉官方 LOGO 后重新发布。网站里已自绘无水印接线图,客户需要原理图时直接点官方链接下载。
Customer Reply