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.

[参考译文] LMK04832EVM:对 LMK04832EVM 器件进行编程的脚本- C、Python 等

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1120663/lmk04832evm-script-to-program-lmk04832evm-device---c-python-etc

器件型号:LMK04832EVM
主题中讨论的其他器件: USB2ANYLMK04832

为了对 LMK04832EVM 进行编程、TI 建议使用 TICS Pro 软件和 USB2ANY。 但是、我想使用较小的器件(如 Raspberry PI)对其进行编程。 是否有能够使用 Raspberry PI 对 LMK 进行编程的 Python 或 C 脚本? 此外、如果可能、请分享引脚如何从 Raspberry PI 连接到 LMK 器件。 我有要写入 LMK 的寄存器值、但我没有可以与器件通信并向器件发送值的工作脚本。 我尝试了很多方法、但尚未成功、因此如果有人能帮助我、这将是很好的。 提前非常感谢!

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

    于杰

    我们没有 任何针对 Raspberry Pi 的官方支持、因此我在这里的建议是我可以从快速咨询文档中提供的帮助范围-我可以更详细地回答有关 LMK04832 (EVM)的问题、但可能无法提供更多有关 RPI 概念或 Linux SPI 内核驱动程序的帮助。  

    我可以建议 将 spidev 库用作简单 的 python 软件包、以便在 Linux 上公开 SPI。 我尚未测试下面的代码、因此 RPi 在芯片选择中执行怪异的操作可能是这样的、 但是从我在线学习的内容来看、writebytes 函数在列表的开头和结尾切换芯片选择-因此、写入字节的三个字节列表参数应该能够满足我们的要求。  TICS Pro 可以将十六进制寄存器导出为文本文件、该文件可以通过编程方式或手动转换为三字节列表序列。 下面提供了一个测试示例、说明如何实现这一目标。

    import spidev
    
    # based on hardware, exact bus and CS pin exposed will differ
    bus, cs = 0, 0
    myspi = spidev(bus, cs)
    
    # configure for LMK04832
    myspi.max_speed_hz = 2_000_000
    myspi.mode = 2 # CPOL=1, CPHA=0
    
    # example write data - sets POWERDOWN=1 (easy to observe change in supply current)
    myspi.writebytes([0x00,0x02,0x01])
    
    # tested example to convert hex registers .txt file to list of three-byte lists
    with open("HexRegisterValues.txt",'r') as f:
        lines = f.readlines()
    bytes_to_write = []
    for line in lines:
        # format is 'R0 (INIT)\t0x000090\n'; split by \t, take hex after 0x
        hexval = int(line.split('\t')[1][2:], 16)
        # shift and mask individual bytes
        bytes_to_write.append([(hexval>>16)&0xff, (hexval>>8)&0xff, hexval&0xff])

     可在我们的 EVM 用户指南原理图中找到 SPI 的引脚排列。 EVM 接头上的引脚1应具有丝印、因此可以识别其他 SPI 引脚(2=CS*、4=SDI、6=GND、8=SCK)。  如代码中所述、SPI 接头的确切引脚可能会在不同电路板版本之间发生变化、因此请参阅 Rpi 文档以了解详细信息。

    另一 个详细信息- RPi 在出厂时默认禁用 SPI 内核驱动程序。 请确保通过编辑/boot/config.txt 来启用它,或者使用 raspi-config 实用程序。 对于一次性 SPI 使用、sudo dtparam SPI=on 将用于启用 SPI0。

    此致、

    Derek Payne

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

    尊敬的 Derek:

    非常感谢您的建议! 请给我1-2天的时间进行测试、看看它是否起作用。 同时、由于您提到没有针对 Raspberry Pi 的官方支持:

    [引用 userid="284549" URL"~/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1120663/lmk04832evm-script-to -program-lmkPi 04832evm-device--c-python etc-etc/4155329#4155329#4155329] 我们没有任何官方支持[引用 Raspberry Pi?]

    我想进一步询问是否有其他小型器件的官方支持、例如 Arduino 或可用于通过 SPI 对 LMK04832EVM 进行编程的小型器件?

    此致、

    于杰

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="510177" URL"~/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1120663/lmk04832evm-script-to -program-lmk04832evm-device--c-python etc-etc/4155965#4155965"LMK32evm]、以引用其他小型器件(如 Arduino 或 EVM]、可用于支持这些小型编程、如 Arduino 或 Arduino 的正式器件?

    现在不是、不  但 在过去两年中、这是一个非常常见的请求(可能是由于供应链问题)、因此 我们正在努力制定一个更长期的解决方案。 我们对如何增加 TICS Pro 的可用接口数量有一些想法、包括 FTDI 等现有接口抽象、这些抽象经过预编程并提供了自己的驱动程序、 和 Arduino 等自定义接口设备 、前提是开发人员愿意编写面向 TICS Pro 寄存器事务 API 的固件和驱动程序。 评估后对任意微控制 器的编程支持不是一个可扩展的问题、因为供应商目录中没有明确的硬件抽象来针对多个供应商或产品系列-因此最终责任必须由终端用户承担。 但是、我们确实看到了提供评估后 Linux 内核驱动程序的可扩展优势、因为它们可以轻松地在更高级别的嵌入式环境中重复使用。 因此、Linux 系统在运行时可以更轻松地修改寄存器设置。 最后、我们可以改进寄存器和编程文档、以帮助 逻辑结构化配置设计或 运行时配置更新-例如、添加系统级块配置流程图。

    我意识到我在 其他一些情况下把你的问题的答案埋在地下了、所以让我明确重申: 我不打算将我们直接作为 TICS Pro 评估链的一部分支持 Croinos、RPi Pico、PIC 或其他"简单"微控制器、我也不打算添加评估后编程支持(例如 Arduino 草图)、因为这在数十种潜在的编程工具链中无法很好地扩展。

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

    尊敬的 Derek:

    感谢您提供信息。 我已经尝试了您给出的代码示例、但遗憾的是、我仍然无法使用 Raspberry PI 写入寄存器。 我将尝试使用 Arduino。 不过、感谢您提供支持。

    展望未来、如果您能为我提供一个 C 代码、以便使用 Arduino 对 LMK 进行编程、那将会非常棒。 很抱歉这个问题。

    此致、

    于杰