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:DLP-7970ABP

Guru**** 2502485 points
Other Parts Discussed in Thread: TRF7970A, DLP-7970ABP, MSP-EXP430G2ET

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1537884/trf7970a-dlp--7970abp

器件型号:TRF7970A
主题中讨论的其他器件: DLP-7970ABPMSP-EXP430G2ET

工具/软件:

大家好:

我遇到了 TRF7970A 初始化以及读取和写入其寄存器方面的问题。 我还应该提到,我已经迁移了 TI 示例代码,以在 STM32F103RB 上运行,我目前正在尝试使用此平台与 TRF7970A 连接。

我将 TRF7970 Booster Pack(器件型号:DLP-7970ABP)与 Nordic 控制器 (nRF5340DK) 配合使用。 配置完所有 SPI 引脚(时钟,从器件选择,MOSI 和 MISO)后、我尝试与 TRF7970A 器件进行通信、但不知何故我无法接收到任何信息。

我将尝试描述我执行的所有步骤:

我已根据数据表初始化 TRF7970A:

注意:我已将时钟频率设置为 2MHz。
CPOL = LOW 和 CPHA = 1 边沿

1) 4ms 后提升 SS 和 EN。
2) 我没有升高 EN2(其连接的接地)、因为 TI 提供的读/写器应用中没有这样做。
3) 发出软件初始化直接命令 (0x03 -> SPI MOSI:0x83)、后跟空闲直接命令 (0x00 -> SPI MOSI:0x80)。
4) 1ms 延迟
5) 发出复位 FIFO 直接命令 (0x0F -> SPI MOSI:0x8F)
6) 将调制器和 SYS_CLK 控制寄存器 (0x09) 写入晶体和系统时钟设置的相应应用特定设置。我将 0x01 写入寄存器。
7) 使用适当的应用特定设置写入稳压器和 I/O 控制寄存器 (0x0B)。 我将 0x00 写入寄存器。使用值 0x00 写入 NFC 目标检测级别寄存器 (0x18)。

我写了一个值 0x55 ot reg value 0x03 并试图读回它,只是为了确保 SPI 通信工作良好,我可以继续射频,但我观察到一些随机值.

我已使用逻辑分析仪查看 SPI 信息。

这些是发出“直接命令 0x03“和“空闲命令 0x00“后发送的命令

我正在将 0x55 写入寄存器地址 0x03

读回寄存器值 0x03 ,我期望 0x55 但最终得到一些随机值。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1) 4ms 后提高 SS 和 EN。
    2) 我没有升高 EN2(其连接的接地)、因为 TI 提供的读/写器应用中没有这样做。
    3) 发出软件初始化直接命令 (0x03 -> SPI MOSI:0x83)、后跟空闲直接命令 (0x00 -> SPI MOSI:0x80)。
    4) 1ms 延迟
    5) 发出复位 FIFO 直接命令 (0x0F -> SPI MOSI:0x8F)
    6) 将调制器和 SYS_CLK 控制寄存器 (0x09) 写入晶体和系统时钟设置的相应应用特定设置。我将 0x01 写入寄存器。
    7) 使用适当的应用特定设置写入稳压器和 I/O 控制寄存器 (0x0B)。 我将 0x00 写入寄存器。使用值 0x00 写入 NFC 目标检测级别寄存器 (0x18)。

    这看起来很好。

    [引述 userid=“661769" url="“ url="~“~/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1537884/trf7970a-dlp-–7970abp

    这些是发出“直接命令 0x03“和“空闲命令 0x00“后发送的命令

    [/报价]

    这个波形看起来没有问题。

    [引述 userid=“661769" url="“ url="~“~/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1537884/trf7970a-dlp-–7970abp

    我正在将 0x55 写入寄存器地址 0x03

    [/报价]

    当将 0x55 写入寄存器 0x03 时、此波形看起来也可以正常。

    [引述 userid=“661769" url="“ url="~“~/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1537884/trf7970a-dlp-–7970abp

    读回寄存器值 0x03 ,我期望 0x55 但最终得到一些随机值。

    [/报价]

    它不是随机值、而是根据 MISO 信号上返回的 0x0 读取 0x0。  

    您能尝试使用其他寄存器吗? 由于您已经编写了寄存器调制器和 SYS_CLK 控制 (0x09) 以及稳压器和 I/O 控制 (0x0B)、为什么您不尝试读回它们? 结果是什么?  

    不知道为什么要写入 0x3 寄存器。 TI 示例没有根据我所能知道的程度配置该寄存器。 一些位字段未被使用、此寄存器用于 ISO14443。  数据表还说明、 每次写入 ISO 控制寄存器 (0x01) 时、该寄存器将默认为 0x0。  

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


    谢谢你,查尔斯蔡。 我衷心感谢您的支持、尽管目前问题仍未解决。

    我尝试读取调制器和 SYS_CLK 控制 (0x09) 以及稳压器和 I/O 控制 (0x0B) 的寄存器值、这是我获得的结果。


    SYS_CLK 控制寄存器的预期值为 0x01。 该 0x49 值在 MISO 信号上的含义是什么?

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

    您好、

     您能否放大看一下波形? 我无法判断您的数据是在 SPICLK 的上升沿还是下降沿上转换。 MCU 应在上升沿转换 MOSI 数据、并在下降沿对数据进行采样。  

    另一方面、在第二个字节上、MOSI 应保持低电平。 为什么发送 0x49 和 0x49。 第一个 0x49 用于指定要读取的地址。 在接下来的 8 个周期中、您应将 MOSI 保持为低电平、而不会与其他寻址模式重复。 请参阅数据表、看看这样是否会改变结果。  

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


    您好、

    我已经审核了您的建议并进行了建议的更改、但遗憾的是、问题仍然存在。 如能提供进一步的指导、我将不胜感激。

    我已经实施了您提供的建议并仔细查看了相关部分、但遗憾的是、我仍无法按预期运行。

    下面是 放大的波形。

    用于读取 0x49(调制器和系统时钟控制)

    用于读取 0x0B(稳压器和 IOC 控制)

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

    您好、

     您是否有 MSP-EXP430G2ET LaunchPad 开发套件? 如果您这样做、则可以  在 LaunchPad 上运行 TI 固件 SLOA297。 借助它、您可以在 MSP 从复位状态释放后在 SPI 接口上捕获逻辑分析仪波形。 通过这种方式、您可以将预期的 SPI 波形与运行 Nordic 处理器的波形进行比较。 看一下波形、我真的不明白为什么 TRF 返回 0x0。 我假设您已经向 0x9 和 0xB 写入了一些值、对吗? 您能展示一下写入事务的波形吗?

     下面是从寄存器 0x19 和 0x0C 读取的示例波形。  

    另一个问题是您提到的是哪个 TI 固件?  

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

    您好、

    遗憾的是、我目前无法使用 MSP-EXP430G2ET LaunchPad 开发套件、因此无法在该平台上运行 SLOA297 固件。

    下面是寄存器 0x09 和 0x0B 的写入事务的 SPI 波形。

    将 0x01 写入 0x09 寄存器(调制器和系统控制)  

    将 0x01 写入 0x09 寄存器(稳压器和 IOC 控制)  




    示波器结果:

    我已经使用示波器监视了 SPI 通信、以下是观察到的结果。  

    注意:  

    黄色 :  SPI_Clock
    蓝色   :  SPI_MOSI
    粉色   :  SPI_MISO

    我们仅观察到 MISO 线上的时钟信号反射。

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

    您好、

     所有图片均不可查看。 您是否可以重新上传?

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

    您好、

    谢谢您让我知道 、抱歉。 我已重新上传图像、现在应该可以查看这些图像。

     我目前无法使用 MSP-EXP430G2ET LaunchPad 开发套件、因此无法在该平台上运行 SLOA297 固件。

    下面是寄存器 0x09 和 0x0B 的写入事务的 SPI 波形。

    将 0x01 写入 0x09 寄存器(调制器和系统控制)。

    将 0x01 写入 0x09 寄存器(稳压器和 IOC 控制)  

    示波器结果:

    我已经使用示波器监视了 SPI 通信、以下是观察到的结果。  

    注意:  

    黄色 :  SPI_Clock
    蓝色   :  SPI_MOSI
    粉色   :  SPI_MISO

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“661769" url="“ url="~“~/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1537884/trf7970a-dlp-–7970abp/5928670

    将 0x01 写入 0x09 寄存器(调制器和系统控制)。

    [/报价]

    我在这里没有看到任何问题。 请参阅下面的内容、通过值 0x01 写入 0x09。

    [引述 userid=“661769" url="“ url="~“~/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1537884/trf7970a-dlp-–7970abp/5928670

    将 0x01 写入 0x09 寄存器(稳压器和 IOC 控制)  

    [/报价]

    写入常规/IO 控制似乎也可以。 下面是我写入的值为 0x0 而非 0x1。

    [引述 userid=“661769" url="“ url="~“~/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1537884/trf7970a-dlp-–7970abp/5928670

    黄色 :  SPI_Clock
    蓝色   :  SPI_MOSI
    粉色   :  SPI_MISO

    [/报价]

    这是什么? 这是读取吗? 您能放大一下吗? 很难知道 MOSI 是什么以及相对于 SPICLK 的过渡。 0x49 可能会尝试从寄存器 0x0 读取、但我不确定是否不放大。 MOSI 转换也似乎在 SPICLK 的下降沿上、与逻辑分析仪捕获相反。 我建议您首先仔细检查 SPI 的极性和相位设置、以符合数据表要求。