您好!
我们使用 TRF7960A 作为标签读取器(通过 SPI 连接到 MCU)和 NXP ICODE SLIX-S 标签。 我们已成功执行了大多数支持的功能命令、但发送获取系统信息命令时遇到问题。 它始终返回0x0F 错误代码、我们尝试了寻址和非寻址模式、但无法确定问题所在。 需要帮助才能更进一步。
请求帧:
8F 91 3D 00 20 02 2B
响应帧:
00 00 0F 00 00
代码片段,
usleep(20000);
SPI_readSingle (&irqsts、TRF79X0_IRQ_STATUS_REG);
SPI_directCommand (TRF79X0_RESET_FIFO_CMD);
ISO15693_sendGetSystemInfo();
irqsts = 0x00;
SPI_readSingle (&irqsts、TRF79X0_IRQ_STATUS_REG);
while ((irqsts & 0x80)!= 0x80)
{
SPI_readSingle (&irqsts、TRF79X0_IRQ_STATUS_REG);
}
IF (irqsts & 0x80)
{
usleep(20000);
SPI_directCommand (TRF79X0_RESET_FIFO_CMD);//在 TX 之后复位 FIFO
usleep(20000);
SPI_directCommand (0x94);
}
SPI_readSingle (&irqsts、TRF79X0_IRQ_STATUS_REG);
while ((irqsts & 0x40)!= 0x40)
{
SPI_readSingle (&irqsts、TRF79X0_IRQ_STATUS_REG);
}
IF (irqsts & 0x40)
{
//SPI_readSingle (&g_ui8FifoRxLength、TRF79X0_FIFO_STATUS_REG);
SPI_readCont (g_pui8T5TBuffer、TRF79X0_FIFO_REG、0x7F);
GPIO_clearInt (CC2640R2_LAUNCHXL_GPIO_TRFIRQ_ENABLE);
}
uint8_t ISO15693_sendGetSystemInfo (空)
{
uint8_t ui8Offset = 0;
uint8_t ui8Status = 0x00;
uint8_t 计数;
uint8_t tempBuff[8]={0x82、0x02、0x0F、0x02、0xD0、0x02、0x04、0xE0};
//发送库存
G_pui8TrfBuffer[ui8Offset++]= 0x8F;//复位 FIFO
G_pui8TrfBuffer[ui8Offset++]= 0x91;//使用 CRC 发送
G_pui8TrfBuffer[ui8Offset++]= 0x3D;//连续写入
G_pui8TrfBuffer[ui8Offset++]= 0x00;//数据包长度(以字节为单位)-发送字节长度的上半字节和中半字节
G_pui8TrfBuffer[ui8Offset++]= 0x20;//数据包长度(以字节为单位)-发送字节长度的较低半字节和不完整半字节
G_pui8TrfBuffer[ui8Offset++]= 0x02;// ISO15693标志
G_pui8TrfBuffer[ui8Offset++]= 0x2B;//获取系统信息命令代码
/* for (count = 0;count < 8;count++)
{
G_pui8TrfBuffer[ui8Offset++]= tempBuff[count];
}
*
SPI_Rawwrite (&g_pui8TrfBuffer[0]、ui8Offset);//发出 ISO15693库存命令
返回 ui8Status;
}