Other Parts Discussed in Thread: TRF7960, TRF7960A
器件型号: TRF7960A
主题中讨论的其他器件: TRF7960、
尊敬的 Texas Instruments 支持团队:
我们目前正在使用 TRF7960 进行 RFID 通信、并尝试使用 ISO15693“获取随机数“命令从 NXP ICODE SLIX2 标签中检索一个随机数。
然而、尽管命令似乎已传输且收到响应、但返回的随机数始终为 0x0000。
详情如下。
TRF7960 寄存器配置
TRF7960 寄存器的配置如下:
寄存器[0] = 0x31
寄存器[1] = 0x02
寄存器[2] = 0x00
寄存器[3] = 0x00
寄存器[4] = 0xC1
寄存器[5] = 0xBB
寄存器[6] = 0x00
寄存器[7] = 0x0E
寄存器[8] = 0x1F
寄存器[9] = 0x01
寄存器[10]= 0x40
寄存器[11]= 0x80
寄存器[12]= 0x00
寄存器[13]= 0x3E
寄存器[14]= 0x00
寄存器[15]= 0x40
2.传输的命令(获取随机数–ICODE SLIX2)
发送以下命令序列:
0x8F //复位 FIFO
0x91 //与 CRC 一起发送
0x3D //连续写入
0x00 //数据包长度(高/中半字节)
0x30 //数据包长度(低半字节)
0x02 // ISO15693 标志
0xB2 //获取随机数命令 (ICODE SLIX2)
0x04 // IC 制造商代码 (NXP = 0x04)
3.中断和 FIFO 行为
发送命令后、会发生中断。
读取 IRQ 状态寄存器 (0x0C/0x6C) 返回:
0x80// 由于 TX 结束而设置 IRQ
接下来、写入复位 FIFO (0x0F/0x8F)。
发生另一个中断。
读取 IRQ 状态寄存器 (0x0C/0x6C) 返回:
0x40 //由于 RX 启动而设置 IRQ
读取 FIFO 状态寄存器 (0x1C/0x5C) 返回:
0x22 //在 FIFO 中加载 3 个字节
读取 FIFO I/O 寄存器 (0x1F/0x7F)(3 字节)返回:
0x00、0x00、0x00
4、问题描述
第一个字节 0x00 指示成功响应、似乎是正确的。
但是、随后的两个字节(随机数)都是 0x00。
根据 ICODE SLIX2 规范、随机数不应为 0x0000。
5.问题
对于 ISO15693 Get Random Number 命令、上面显示的命令格式或寄存器配置是否正确?
正确接收随机数是否需要任何其他 TRF7960 设置或时序要求?
是否存在任何已知行为、TRF7960 由于 FIFO 处理、CRC 设置或 IRQ 流程而针对随机数返回 0x0000?
该问题是否与 FIFO 复位时序或 RX 中断的处理有关?
其它系统信息
MCU:STM32G0B0VET6
MCU 和 TRF7960A 之间的接口:SPI 通信
MCU (STM32G0B0VET6) 通过 SPI 与 TRF7960A 成功通信、
所有寄存器读取/写入操作都按预期运行。
其他 ISO15693 命令(例如库存)正常运行。
如果您能提供任何指导或建议、我们将不胜感激。
非常感谢您的支持。