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.

[参考译文] PGA970:PGA970

Guru**** 2535150 points
Other Parts Discussed in Thread: PGA970, UNIFLASH

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1557458/pga970-pga970

部件号:PGA970
Thread 中讨论的其他器件: UNIFLASH

工具/软件:

大家好、我设法下载了这些文件、但无法使用 CCS 20.2.0 进行编译:



此软件是否适合用于编译和记录样例程序?

我也尝试直接使用 J-Link 和 OpenOCD 录制,但我无法录制文件,只能读取几个字节,即使这样我也不知道它是否正确读取:

考虑到我们只有 J-Link 作为录制设备可用、正确的方法是什么?

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

    尊敬的 Felipe:  

    我认为示例固件是使用版本 CCS v.6 编译的。 我的团队更喜欢 CCS v12.8。  

    以下是一些常见问题:

    • 您 在下载 CCS 时没有安装 PGA 功能集
    • 您未将 rtsv6M0_T_le_eabi.lib 复制到以下路径中: C:\ti\ccs1281\ccs\tools\compiler\ti-cgt-arm_20.2.7.LTS\lib
      • 由于您使用的是 CCS v20、因此路径看起来略有不同
    • 您没有初始化设备定义:
      • 更新属性后需要删除一些文件
    • 您的错误是“未在路径中找到程序“make"</s>“
    • 您的错误是“致命错误:无法打开源文件“pga970_platf.h"</s>“
    • 您的错误是“unresolved symbols remain“

    在他们的网站上、J-Link 似乎不支持 PGA970。

    我不支持有关非 TI 调试器的问题。 带有 XDS110 调试器的 Uniflash 是 TI 将固件加载到 PGA970 的首选工具。 您可以 在此处找到更多信息。  

    谢谢、

    Maggie

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

    很棒、非常好!

    我安装了版本 12.8.1、遵循了您的建议、成功编译了它、用 J-Link 记录了它、并且它已经在生成 5kHz 正弦波。

    是否有任何用于发送 LVDT 读取的 SPI 通信和库示例?

    非常感谢。

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

    尊敬的 Felipe:  

    除了示例固件之外、我们没有任何示例、我相信您已经拥有这些示例。  

    有多种方法可以读取 LVDT 读数。  

    1. 如果 PGA970 微控制器处于复位状态(因此补偿算法和固件未运行)、那么您可以使用 SPI 直接从 解调输出 (DEMODx_DATA 和 DEMODx_phx) 中读取。 如果微控制器处于复位状态、如果您希望使解调输出线性化、则必须使用外部微控制器。  
    2. 如果 PGA970 微控制器正在运行(因此补偿算法正在运行)、那么您可以使用 COMBUF 寄存器通过 SPI 获取补偿数据。

     有关 COMBUF 的更多详细信息、请参阅 7.3.1.12.1 在微处理器运行时访问 PGA970 存储器、但简而言之、只有几个寄存器供用户在 PGA 微控制器运行时访问。 当 COMBUF 收到某些命令时、用户可以通过写入固件来执行某些操作。 以下寄存器最有用:

    • COM_MCU_TO_DIF_Bx、由数字接口读取
    • COM_DIF_TO_MCU_Bx、由数字接口写入

    例如、您可以编写执行以下操作的固件:

    1. 定义 COMBUF 命令 0xAAAA、该命令指示微控制器通过 SPI 发送补偿后的数据、直到发出停止命令。  
    2. 将 0xFFFF 定义为 STOP 命令
    3. 如果没有向 COM_DIF_TO_MCU_Bx 写入任何命令、则不会发生任何情况。 补偿算法将按照您在固件中编写的那样运行。  
    4. 如果将 0xAAAA 写入  COM_DIF_TO_MCU_Bx、则在算法循环结束时、微控制器会将补偿值写入 COM_MCU_TO_DIF_Bx。 用户可以通过 SPI 读取该寄存器来读取补偿值。  
    5. 补偿值会反复写入 COM_MCU_TO_DIF_Bx、直到用户向 COM_DIF_TO_MCU_Bx 写入 0xFFFF 。  

    谢谢、

    Maggie

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

    您好、Maggie、

    我准确记录了此文件:



    但无法从 SPI 获得响应。
    我遵循的例子:



    但在没有接收的情况下、我在 SPI 数据包开始时收到了 0x05。

    可能会出现什么问题?

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

    我严格按照这个例子:

    以下是通过 J-Link 记录器读取 FRAM 存储器:

    发送的命令:

    示波器读数:

    没有返回预期值 0x31。

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

    尊敬的 Felipe:  

    这个示例是数据表中的一个错误。 要从 FRAM 读取、首先需要通过对 FRAM_PAGE_ADDR 寄存器进行写入来选择 FRAM 页面地址(0b010 0001 1000 1 aaaaaaaaaa xxxx;A=所需的页面地址、并且 x=无关)。 然后、您必须发送读取命令 (0b100 aaaaaaaa 0 xxxxxxxxxxxx)。 寄存器数据将在下一个 SPI 事务中可用。  

    谢谢、

    Maggie

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

    我们在 SPI 配置中发现错误、修复后我们开始接收 0x05 作为答案、位于 SPI 主器件固件和数字分析仪显示 SPI 通信的图像下方。

    即使有了这些指令、我也会收到 0x05 作为应答、0x00 作为数据、我们也需要一个示例来回答来自以下固件的 LVDT 数字转换。



    使用修改后的示例固件、我们设法测量 DAC 引脚上的 LVDT 读数、结果没有问题、但使用原始示例、我们需要通过 SPI 直接从寄存器读取数据、您能帮助提供一个分步指南来显示位命令以获得该答案吗?

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

    尊敬的 Felipe:  

    向 PGA970 发送 SPI 读/写命令时、PGA970 微控制器是否处于复位状态、或者是否在运行? 如果它处于复位状态、那么您应该能够使用我昨天分享的指令读取解调器输出。 例如、如果用户想要读取 DEMOD1_DATA(即 32b)、则可以使用以下命令:

    1. 0b000 00010000 0 xxxx xxxx xxxx(读取寄存器 0x10 和 0x11 的命令)
    2. 0b000 00010010 0 xxxx xxxx xxxx(读取寄存器 0x12 和 0x13 的命令、来自 0x10 和 0x11 的寄存器数据将在 MISO 的第 2 个和第 3 个字节上可用)
    3. 命令只要是有效的 SPI 命令、就无关紧要(来自 0x12 和 0x13 的寄存器数据将在 MISO 的第 2 个和第 3 个字节上可用)

    X =不用考虑

    如果要在微控制器运行时读取寄存器数据、则必须使用 COMBUF 寄存器、这需要固件。 我认为示例固件没有实现任何命令来与 COMBUF 寄存器交互。 您可以查看数据表了解更多详细信息。  

    谢谢、

    Maggie