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.

[参考译文] Linux/PGA460-Q1:PGA 460 -Q1与 Arduino UNO 连接

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/590243/linux-pga460-q1-pga-460--q1-is-interfaced-with-arduino-uno

器件型号:PGA460-Q1
主题中讨论的其他器件: PGA460BOOSTXL-PGA460ENERGIAMSP-EXP430F5529LP

工具/软件:Linux

大家好

我已经使用 Arduino 完成了 pga460-Q1。 现在、我只能使用响应命令从 pga460读取复位值、但无法写入 EEPROM 和所有阈值寄存器。 我已经使用适当的命令进行了三次写入、但我只能读取下面我附加到该帖子的值...

有人能帮我写什么吗?

  

谢谢您的帮助

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Prapeep、您好!
    您要为 EEPROM 写入传输哪些值? 当您说"EEPROM write"时、您是否正在尝试烧录 EEPROM /对其进行编程?

    如果是、要对 EEPROM 进行编程、请执行以下步骤(在 PGA460软件开发指南中进行了讨论):
    •步骤1. 使用具有4位唯一解锁模式的 UART 或 TCI 发送 EEPROM 编程命令。 0x40寄存器中的编程位设置为0。 解锁密码为0xDh。
    •步骤2. 立即发送相同的 UART 或 TCI 命令、同时将编程位设置为1。
    如果在解锁代码(步骤1)后发出任何其他命令、EEPROM 程序序列将中止。 如果步骤1中的解锁命令不正确、则 EEPROM 未编程。 EEPROM 会在每次发出编程命令后自动再次锁定。 相关示例代码可在第16页的 PGA460软件开发指南中找到、共48页。

    如果没有、并且您正在尝试写入单个/大容量寄存器、请使用 GUI 的"Interface Mode"页面检查您的传输值。
    例如、如果要将频率值更新为40kHz、使用 UART 地址0的 PGA460、请发送:{0x55、0x0A、0x1C、0x32、 0xA7}
    其中
    •0x55 = SYNC 字节
    •0x0A =用于寄存器写入的 UART 地址0和命令10
    •0x1C =寄存器命名的频率
    •0x32 =值等于40kHz
    •0xA7 =校验和结果

    使用 GUI 的接口模式 UART 终端以十六进制形式输入 M-S 数据字节、即0A 1C 32 (请注意、没有同步字节、因为校验和计算中不包含同步字节)。 单击"Calculate and Append Checksum (计算并追加校验和)"时、您将看到一个 A7的值附加到同一字符串。 这表示更新频率寄存器所需的值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 你 Akeem Whitehead

    现在可以读取和写入 EEPROM。

    但是、当前的问题是我使用批量读取命令 EEPROM 或阈值。 我将随机获取前5个字节。 5个字节后、读取的正是我所写入的内容。

    假设如果 我逐个读取这些等效寄存器、那么只有我才会获得正确的值。

    我不知道问题是什么。 即使我更改了波特率、它也无法正常工作。  

    此外、还请帮助我完成从步骤1正确获取超声波测量的步骤?  

    请提前谢谢。。。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Pradeep、
    您读取的前五个随机字节是否可能是前一条命令的剩余字节? 您可能需要在从 PGA460读取数据之前刷新或清除串行缓冲器。 在这五个随机字节之后、EEPROM 批量读取的开始地址是否为 USER_Data1 (addr 0x00)或 USER_DATA6 (addr 0x05)?

    澄清您的最后一个问题:
    "还请帮助我完成从步骤1正确获取超声波测量的步骤?"
    询问如何从命令5中读取超声波测量结果?
    如果是、典型的过程是发送突发+监听命令、然后等待该特定预设的记录长度的持续时间。 因此、您可能需要等待至少4.096ms 或最长65.536ms、具体取决于您的飞行时间和距离要求。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Akeem Whitehead

    1.您正在读取的前五个随机字节是否可能是前一条命令中的剩余字节?

    没有、这些不是任何剩余字节。 它们与任何寄存器无关。

    2.在从 PGA460读取数据之前、您可能需要清除或清除串行缓冲器。

    是的、当然、在执行每个读取命令之前会刷新串行缓冲器。 我还尝试在执行命令后刷新。 但它不起作用。

    在这五个随机字节之后、用于 EEPROM 批量读取的是从 USER_Data1 (addr 0x00)还是 USER_DATA6 (addr 0x05)开始?

    从 Data7 (addr 0x06)到 P2_GAIN_CONTROL 不起始。

    4.询问如何从命令5中读取超声波测量结果?

    不是、不是从那里。 从所有寄存器初始化到超声波测量结果。

    从初始化到距离读取的流程图。

    我的新问题是

    OUTA 和 OUTB 引脚突发的峰峰值电压是多少?

    我仅获得低于500mV 的突发脉冲。

    我现在该怎么办?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Pradeep、
    您是否将 BOOSTXL-PGA460 BoosterPack 与 Arduino 配合使用、或者您是否构建了自己的 PGA460板? 我强烈建议您使用 BOOSTXL-PGA460进行初始评估。

    OUTA 和 OUTB 为开漏引脚、这意味着它们充当输入、通过内部 FET 灌入接地电流、并且无法拉取任何电流或电压。 您需要将具有中心抽头的变压器连接到初级侧的外端、并将 VPWR 连接到初级侧的中心抽头(高达28V)。 OUTA 和 OUTB 在未激活时也将引用 VPWR。
    PGA460-Q1数据表(www.ti.com/.../pga460-q1.pdf) 图134提供了该电路的示例。 变压器驱动方法原理图、见101页。

    我强烈建议您观看由六部分组成的视频系列、其中讨论 PGA460-Q1 EVM+GUI (training.ti.com/ultrasonic-sensing-pga460-q1)
    第1.2部分介绍了 PGA460超声波感应:EVM 硬件、传感器和驱动器选择、有助于更好地了解 OUTA 和 OUTB 引脚。

    如果您正在寻找显示典型操作的流程图、请参阅 PGA460软件开发指南(www.ti.com/.../slaa730) 图2。 详细软件序列流程图。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您能否共享开发的代码?
    我希望制作一个最终的库版本、以便在 GitHub 上为整个社区上传。
    我正在使用多个陶瓷发射管开发360°超声波眼图

    提前感谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Alessio、
    最新版本的 PGA460 Energia 库和代码示例(版本1.0.1)(修订版 A)可从以下网站获得:
    www.ti.com/.../slac741

    此更新包括多个错误修复和其他功能(可从下载版本说明)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、谢谢

    我以为这只是一个 Windows 进行设置的软件,依此类推。。。

    相反、安装后、Arduino 库位于一个文件夹中。

    最大的问题是、所有内容都可以在 MSP430 uC 下针对 Energia IDE 进行编译、而不是像 Arduino 所使用的那样针对经典 ATmega328p 进行编译。

    如何为 UNO 板编译它?

    Alessio

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Alessio、
    Energia IDE 使用与 Arduino IDE 相同的编程语言/结构。实际上、Enegria 是 Arduino IDE 的衍生产品、允许 TI LaunchPad 系列重用最初为 Arduino 硬件开发的代码。 因此、为 BOOSTXL-PGA460创建的示例库还应能够在 ATmega328p (或 MSP-EXP430F5529LP 等效项)上编译+运行、前提是可用的存储器数量、串行接口数量和 GPIO 数量相同。

    您是否尝试在 Arduino 的 IDE 中编译代码? 结果如何?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将在有时间时立即执行该操作。

    我会随时向您发布

    谢谢