This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TRF7964A:15693协议,标签芯片已经返回数据,但是FIFO里面没有数据 μ A

Guru**** 2379800 points
Other Parts Discussed in Thread: TRF7964A
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1019222/trf7964a-15693-fifo

器件型号:TRF7964A

15693协议,使用260100指令,请求读取标签UID,标签已经返回数据(可以再OOK μ ASK引脚看到信号),但是TRF7964A的FIFO里面没有数据 μ A

IRQ 状态寄存器(0x0C),这个中断寄存器里面已经收到0x40标志(由于 RX 启动 IRQ 被设定),并且等到IRQ引脚有效,再次去读取FIFO长度寄存器,显示FIFO长度数据是0

这个情况不是每次都能出现,但是一旦出现后,通过软件复位TRF7964A,没有效果,情况依然存在 μ A

IRQ 状态寄存器(0x0C)中断寄存器中  

CRC 错误

奇偶校验错误

字节组帧或 EOF 错误

冲突错误

无响应时间中断

这些标志位都是0 μ A

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Wenwu、

    请用英文重复提问。

    此致、

    Helfried

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    trf7964A 在 ISO15693中工作,当 IC TX cmd (260100)、标签响应 cmd 时,我可以在 pin12看到副载波信号,但 fifo len 在 fifo 状态寄存器中为零,IRQ 状态寄存器没有错误标志。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Wenwu、

    您是否在接收到 TX 中断后按照常见问题解答第4.6章所述重置 FIFO:

    https://www.ti.com/lit/pdf/sloa248

    您要发送的命令是什么? 我不清楚 ISO 命令260100是什么。

    此致、

    Helfried

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好!

    这是我的 c 代码。

    while (tick < WaitTime)  //等待超时
       {
           if (TRF796x_GetIrqState ()  )//获取 IRQ 引脚状态
           {
               FLAG = TRF796x_ReadReg (TRF796x_REG_IRQ_STATUS); //读取 IRQ 寄存器
               if (flag & TRF796x_REG_ERR_MSK)                    //如果 reg 值是错误代码,则停止 接收标签 rsp。
               {
                   ERR = TRF796x_FmtErrInfo (FLAG & TRF796x_REG_ERR_MSK);
                   中断;
               }
               否则、如果(flag & TRF796x_REG_IRQ_TX_END)            //如果 reg 值是 TX END、则分离 FIFO
               {
                   TRF796x_WriteCmd (TRF796x_CMD_RESET_FIFO);  //清空FIFO
               }
               否则、IF (FLAG & TRF796x_REG_IRQ_FIFO_LV)          //
               {
                   ERR = TRF796x_FmtErrInfo (FLAG & TRF796x_REG_ERR_MSK);
               }
               其他
               {
                   if (flag & TRF796x_REG_IRQ_RX_START)//如果 reg 值、则读取标签 rsp。
                   {
                       ERR = TRF796x_ERR_OK;
                       ERR = TRF796x_ReadReg (TRF796x_REG_IRQ_STATUS);
                       rxFifoLen = TRF796x_ReadReg (TRF796x_REG_FIFO_CONTROL)和 TRF796x_REG_FIFO_RXLEN_MSK;
                       TRF796x_ReadRegs (TRF796x_REG_FIFO、rxFifoLen、pTrf76xFrame->frame + pTrf76xFrame->rxLen);
                       pTrf76xFrame->rxLen = rxFifoLen;
                       中断;
                   }
               }
           }
           tick++;
       }

    错误是:蚂蚁中的标签、标签重新入侵 cmd (260100--15693库存一个标签)、  tf7964A 可以读取 RX_START 标志、但 FIFO 长度为零。

    错误不会每次出现。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我可以看到代码看起来很好。 唯一让我们感到奇怪的是、代码在循环中运行、并且未设置为中断服务例程。 因为在 TX 就绪 IRQ 之后应立即重置 FIFO、所以在您的情况下、这可能不够快。

    此致、

    Helfried  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    SPI 速度为9Mhz、非常快。

    CPU 速度为72Mhz。

    我认为环路足够快、当 CPU 接收到 TX 结束标志时、tf7964必须等待330us 接收标签响应信号。

    当 FIFO 长度为零时、pin12处的副载波信号非常好。但为什么 tf7964在 fifo 中没有标签?

    有时,trf7964运行良好,它可以接收正确的标签 rsp,而其他时间,trf7964运行不是很好。

    为什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    trf7964寄存器:

    地址-------- 值

    00------ 20.

    01 -------- 02

    02---------------------------------- 00

    03 -------- 00

    04 -------- C1

    05 ---------- BB

    06 -------- 00

    07 ---------- 14.

    08 -------- 18

    09 ---------- 09.

    0A------------ 4C

    0b -------- 06

    0C--> 00

    0D---------- 1f

    0E---------- 00

    0f---------- 40

    10 -------- 10.

    ---------- 00

    ---------- 00

    ---------- 00

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您正在使用非常快的 SPI 时钟和快速的 CPU 速度。 我已在论坛中查看了是否发现类似问题、并收到一个帖子、其中客户需要在检测 RX 启动 IRQ 和检查 FIFO 之间插入延迟。 这是必要的、因为发出 SOF 信号的 RX IRQ 并未完成。 这可能会有所不同。

    此致、

    Helfried

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我已经听过你的回声了一段时间,所以这条胎面已经关闭了。 如果您希望继续讨论、请在下面发布包含更新的回复(或创建新主题帖)。

    此致、
    Helfried