如何通过FT232RL(USB)芯片和MAX32213-v芯片访问SMBus(i2c)设备

时间:2019-02-27 23:45:08

标签: i2c usbserial smbus

如何“通过”访问SMBus(i2c)设备,FT232RL(USB)芯片和MAX32213-v芯片。

请注意,我已经花了几天时间研究下面的错误和芯片。

我正在跑步: Linux saturn 4.15.0-45-generic#48〜16.04.1-Ubuntu SMP Tue Jan 29 18:03:48 UTC 2019 x86_64 x86_64 x86_64 GNU / Linux

和Python3.5.2

我有一个SMBus(/ dev / i2c- *)BP(血压)设备,其电缆具有2个串联芯片: 1. FT232RL-TUBE 768-1306-ND-说明:IC USB FS串行UART 28-SSOP 2. MAX32213-V至5.5V-RS-232线路驱动器和接收器

要使用BP设备,上述2个芯片需要进行双向协议转换。

请注意,当我从笔记本电脑上拔下USB电缆时,在/ var / log / syslog中会出现冗长的条目。但是,当我从BP设备拔出电话插孔{是的,电话插孔}时,在/ var / log / syslog中没有任何条目。因此,我得出的结论是,此时的通信被电缆中的芯片所阻塞。

lsusb给出: 总线001设备016:ID 0dbc:0003 A&D医疗和串行电缆[AND智能电缆]

具有: SUBSYSTEM ==“ usb”,ATTRS {idVendor} ==“ 0dbc”,ATTRS {idProduct} ==“ 0003”,SYMLINK + =“ serial / bp” 在/etc/udev/rules.d/99-usb-serial.rules中,在运行sudo udevadm control --reload-rules之后,我将/ dev / bus / usb / 001/016作为/ dev / serial / bp的符号链接&& sudo udevadm触发器

cat

root @ foobar:/ dev#cat

请注意,我在输出的第一行中获得了idVendor和idProduct ID。

我似乎正在与FT232RL .... USB FS串行UART交谈。似乎是供应商和产品ID的来源。

当我尝试使用python3代码从usb端口读取时:

从串行导入序列

句柄=串行(端口='/ dev / bus / usb / 001/016',波特率= 9600,超时= 3)

bytes_in = handle.readline() string_in = bytes_in.decode(“ utf-8”)

print(“ string_in =”,string_in)

我得到:

termios.error:(25,“设备的不适当的ioctl”)。

这些问题浮现在脑海:

  1. cat实际上如何启动读取?

  2. 行内芯片是否将我的命令(包括cat)通过2个芯片传递到实际的BP设备? (鉴于lsusb的输出,我怀疑这种情况会发生,但是值得询问。)

  3. 我如何故意将“ FT232RL .... USB FS串行UART”设置为直通模式。

  4. 如何确认FT232RL芯片的状态?我在制造商的网站上找到了FT232RL的库。但是,我在AMD机器上运行,但它们似乎没有可用的AMD库。

提前感谢所有回应!

unixprgrmr01

0 个答案:

没有答案