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.

[参考译文] LMK3H0102:在 Windows 环境上使用 python 进行通信

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1375241/lmk3h0102-communication-using-python-on-windows-environment

器件型号:LMK3H0102.
主题中讨论的其他器件: USB2ANY

工具与软件:

您好!

我正在尝试使用 python 和 windows 编写命令、目标是加载一些预设选项、并在运行其他程序时在它们之间切换。

我曾使用  device.set_raw_data_handler(data_received)-并尝试通过 TICS PRO 软件来写入器件、并记录了相关数据。

这是我的程序的一部分、在此示例中、OUT0应处于关闭状态、

写入地址0x07

Data:0x6501以关闭

默认数据为0x6503:



将 pywinusb.hid 导入 hid

#您设备的供应商 ID 和产品 ID
VID = 0x2047
PID = 0x301

#设备的 I2C 地址
I2C_ADDRESS = 0x69
Report_ID = 0x00

#找到设备
过滤器= hid。 HidDeviceFilter (vendor_id=PID VID、product_id=PID)
devices = filter.get_devices ()

如果器件:
设备=设备[0]
device.open()
device.set_raw_data_handler(data_received)
报告= device.find_output_reports()

TOFF =[63、10、84、43、2、 2、0、31、0、7、 101、1、0、1、0、 0、1、0、0、0、 0、0、0,128,101、 3、62,150、48,255、 4240、0、0232、 0,133,202,169、93、 2、53,217、94、8、 220,130、15,217、43、 72、59,143,158、89、 144、93,124、4、27、 0、0、0、16]

device.send_output_report(Toff)

我不会收到任何错误、但写入不起作用。 无法找到任何  用于理解命令结构的文档 API。

感谢您帮助了解该结构、或如何正确设置 TICS PRO 的命令/加载导出值

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

    Orel

    在使用 USB2ANY 写入 RAW 数据包之前、您是否已成功通过 TICS Pro 软件写入器件并对其进行读取? LMK3H0102可在 I2C 接口未激活的 OTP 模式下运行。

    谢谢!

    Kadeem

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

    将原始 HID 数据包写入 USB2ANY 会使其变得比所需困难得多。 据我所知、我们从未发布过有关 HID 命令结构的文档。 如果必须这样做、我可以挖一些旧的 python 示例代码来演示如何结构 USB2ANY HID 数据包。 这是可以做到的,但我强烈建议反对。

    更简单的方法是包装 TICS Pro 中包含的 USB2ANY DLL。 请参阅 此处的 示例代码、此示例代码演示如何包装 DLL 以及与 API 通信的基础知识(使用 SPI 示例、但是打开/关闭和查找控制器以及缓冲 I/O 的典型结构应该适用于 I2C)。 此处的 USB2ANY SDK 包括 DLL 功能的 API 手册。 由于可能会出现重复的启动事务、I2C 在概念上比 SPI 困难得多、因此可能需要查看的函数是 u2AI2C_Configure、u2C_InternalRead 和 u2aI2C_InternalWrite。

    其他值得注意的事项:

    • API 手册不是 TICS Pro 附带的版本、但它主要是相同的 API。 我们还没有进行很多重大更改、只是在 SPI 事务中增加了几个枚举来允许3字节和4字节的芯片选择切换(分别为枚举值6和5)。
    • HID 数据包开销会从每个事务中占用12个字节。 I2C 的原始读取和写入一次可以在缓冲区中写入多达48个字节。 InternalWrite 和 InternalRead 在开始时为地址保留两个字节、因此可在一个内部事务中写入的最长缓冲区是46个字节。
    • 由于 LMK3H0102支持块读取和写入、因此您需要一次写入或读取尽可能多的数据值、从而更大限度地减少 HID 延迟开销。 编写一个函数将要写入的地址列表、数据缓冲区的大小以及最大数据缓冲区的大小信息输入、并返回可写入每个缓冲区的大小集、这一点微不足道。

    ——

    现在有一个单独的问题:这一切都不使用 TICS Pro。

    TICS Pro 还将 USB2ANY DLL 绑定在引擎盖下(在 C#中)、并具有一个通过 API 输入实现寄存器和数据抽象层、从而简化通信。 TICS Pro 实际上包含一个单独的套接字服务器自动化选项、客户端服务器预先用 python 语言编写以供使用。如果您希望在自动化时保持应用程序打开状态并使 GUI 可用-我们通常在内部执行此操作、因为这可以让我们非常快速地直观地检查其他状态、并且由于某些操作需要比在 GUI 中多次点击更长的时间来实现自动化。 我们来看看 C:\Program Files (x86)\Texas Instruments\TICS Pro\SDK TICSProTCP.py 中的客户端代码-可以将此文件复制到 python 路径或工作目录中、并使用它来在现场抽象层(属于特定函数的寄存器映射中的一个或多个跨度)、而不是寄存器或原始字节级别。

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

    我找到了  C:\Program Files (x86)\Texas Instruments\TICS Pro\TICSProTCP.py 并使用它。
    不是我想要的,因为我依赖于 TICS Pro 安装,但它是有效的。
    谢谢!

x 出现错误。请重试或与管理员联系。