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.

[参考译文] TRF7970A:TRF7970A RFID

Guru**** 2560390 points
Other Parts Discussed in Thread: TRF7970A

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/841480/trf7970a-trf7970a-rfid

器件型号:TRF7970A

大家好、

   我遇到一个问题:无法读取 trf7970的寄存  器、值也是0、MISO 始终为低电平。  写入 cmd:0x03和0x00。

随附图片为 trf7970的 sch。 MCU 为 stm32f030。

   如何帮助解决此问题?

  谢谢!

  Qi

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

    您好!

    首先、我检查了您的原理图、我看不到任何问题。 对于 TRF7970A 器件、一切正常。

    您描述的问题对我来说并不是很清楚。 命令0x03、0x00、我将其解释为使用数据0x00向寄存器0x03写入寄存器。

    是这样吗? 当您读取此值0x00时、MISO 将始终保持低电平。

    如果我的理解有误、请帮助我。

    此致、

    Helfried

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

    您好、Helfried、

       我找到了 MSP 的示例代码、并将其更改为初始化设置、只需将直接命令写入03和00、然后写入地址00和0x0B。 但尝试读回地址00和0x0B。 它始终为00。

      L 稍后将上传我的代码。

      谢谢!

       Qi

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

    您好!

      随附的文件是用于 trf7970的 SCH 和代码。

    首先 运行 trf7970的初始化设置,然后读回地址:00和0x0B,但该值始终为零(MISO 为 lowe2e.ti.com/.../RFID_5F00_schematic.pdf)。

      您能帮您了解这一点吗?

      谢谢!

      Qie2e.ti.com/.../trf797x.h

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

    您好!

      再次上传代码。

      谢谢!

      Qie2e.ti.com/.../trf797x.ce2e.ti.com/.../2055.main.ce2e.ti.com/.../8585.spi.c

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

    您好!  

       附加的图片是波形、第一个是 SS 和 CLK、第二个是 CLK 和 MOSI。

       

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

    您好!  

      另  一个四信号波形。

       

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

    您好、Qi、

    图片中显示的数据是什么(十六进制值)。

    对我来说、它与您在第一个帖子中所写的内容不相关。 (0x03、0x00)

    只是为了澄清一些问题。 SPI 数据必须在数据时钟的下降沿有效、并且数据必须 首先发送 MSBit。  (请参阅数据表的第40页)

    当发送 诸如 SW Init 命令0x03的直接命令时、位7必须为"1"、因为这标志着一个命令。

    要在 SPI 总线上进行初始化, 必须发送0x83 (SW 初始化),0x80 (IDLE)。

    当您查看您的时序时、情况是否如此?

    此致、

    Helfried

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

    您好、 Helfried、

      直接命令已将位7设置为1:

    void SpiDirectCommand (uint8_t ui8Command)

    SPI_NSS_SET (0);//启动 SPI 模式

    //将地址/命令字位分配设置为命令
    ui8Command =(0x80 | ui8Command);//命令
    ui8Command =(0x9f & ui8Command);//命令代码

    //SPI_SendData8 (SPI1、ui8Command);
    SPI1_ReadWriteByte (ui8Command);

    SPI_NSS_SET (1);//停止 SPI 模式
    }\

      图片尝试读取地址00。

      我已经检查了初始化波形、没有发现问题。

       谢谢!

       Qi

       

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

      init 的代码如下所示:

    无效
    Trf797xInitialSettings (空)

    uint8_t pui8ModControl[2];
    GPIO_InitTypeDef GPIO_InitStructure;

    SPI_NSS_SET (1);

    RCC_AHBPeriphClockCmd (RF_ENABLE_CLK、ENABLE);

    //将引脚配置为输出推挽模式

    GPIO_InitStructure.GPIO_Pin = RF_ENABLE_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Pud = GPIO_PUT_NOPULL;
    GPIO_Init (RF_ENABLE_PORT、&GPIO_InitStructure);

    GPIO_SetBits (RF_ENABLE_PORT、RF_ENABLE_PIN);

    pui8ModControl[0]= SOFT_INIT;
    Trf797xDirectCommand (pui8ModControl[0]);
    pui8ModControl[0]=空闲;
    Trf797xDirectCommand (pui8ModControl[0]);

    pui8ModControl[0]= TRF797x_MODEG_CONTROL;
    pui8ModControl[1]= 0x01;// ASK 100%、无 SYS_CLK 输出
    //Trf797xWriteSingle (pui8ModControl);
    Trf797xWrite (pui8ModControl[0]、pui8ModControl[1]);

    pui8ModControl[0]= TRF797x_NFC_TARGET_LEVEL;
    pui8ModControl[1]= 0x00;
    //Trf797xWriteSingle (pui8ModControl);
    Trf797xWrite (pui8ModControl[0]、pui8ModControl[1]);

    pui8ModControl[0]= TRF797x_STATUS_CONTROL;
    pui8ModControl[1]= 0x21;//0x20;// 3.3VDC、全功率输出
    // pui8Command[1]= 0x30;// 3.3VDC,半功率输出
    //Trf797xWriteSingle (pui8Command[0]);
    Trf797xWrite (pui8ModControl[0]、pui8ModControl[1]);

    pui8ModControl[0]= TRF797x_reguler_control;
    pui8ModControl[1]= 0x07;// 3.3VDC、全功率输出
    // pui8Command[1]= 0x30;// 3.3VDC,半功率输出
    //Trf797xWriteSingle (pui8Command[0]);
    Trf797xWrite (pui8ModControl[0]、pui8ModControl[1]);

    Trf797x_EXTI_Init();

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

    您好、 Helfried、  

       发送直接命令:03,00的波形如下所示:  

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

    您好、  Helfried、  

       如何通过其他方法检查 tf7970是否正常工作? 使用示波器测试 TX_OUT 也看不到任何东西。

      谢谢!

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

    您好、Qi、

    当 EN 被设定为高电平时、振荡器应该工作并且在 SYS_CLK 上、你应该看到一个时钟信号。

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

    您好、 Helfried、

       将开始读取 数据更改为 CLK 的第二个边沿、它现在可以读取该值:

       SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;

       感谢您提醒我。

       Qi