WCHSoftGroup / ch34x_mphsi_master_linux

28 stars 7 forks source link

返回数据错误 #3

Open lgzcoollg opened 1 year ago

lgzcoollg commented 1 year ago

请求帮助: 同一个I2C线,分别用ch341+i2c-tool和其他方式抓出来的数据。芯片是CH341T P30926-100251.jpg

uname -a Linux CentOS-G910 3.10.0-1160.95.1.el7.x86_64 #1 SMP Mon Jul 24 13:59:37 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

lsusb Bus 004 Device 004: ID 1a86:5512 QinHeng Electronics CH341 in EPP/MEM/I2C mode, EPP/I2C adapter

lsmod | grep ch3 ch34x_pis 17673 0 ch34x_mphsi_master 34250 0

modinfo ch34x_mphsi_master filename: /lib/modules/3.10.0-1160.95.1.el7.x86_64/kernel/drivers/usb/misc/ch34x_mphsi_master.ko license: GPL description: USB to SPI/I2C/GPIO master driver for ch347/ch341, etc. author: WCH alias: spi/i2c/gpio: ch347/ch341 retpoline: Y rhelversion: 7.9 srcversion: F7948BDF06344C8A66DD159 alias: usb:v1A86p55DBddcdscdpiciscipin02 alias: usb:v1A86p55DEddcdscdpiciscipin04 alias: usb:v1A86p5512ddcdscdpiciscipin depends:
vermagic: 3.10.0-1160.95.1.el7.x86_64 SMP mod_unload modversions parm: gpio_base_num:GPIO master base number (if negative, dynamic allocation) (int) parm: spi_bus_num:SPI master bus number (if negative, dynamic allocation) (int)

i2cdetect -l i2c-1 i2c ch34x-mphsi-i2c at bus 004 device 004 I2C adapter

接线Topu: mmexport1695376595636.png

PS: 其他方式的数据是对的 Hex: 03 04 07 10 00 00 01 00 00 00 00 06 67 02 ……

- 其他方式抓的数据(用逻辑分析仪看得操作): normal read.JPG

- ch341出来的数据(右边),左边是用逻辑分析仪看得实际操作 ch341 read.JPG

WCHSoftGroup commented 1 year ago

hello,上面的意思是:实际逻辑分析仪抓到的总线数据是正常的,但是 i2cdump 指令的打印结果不正常这样吗? 上面的信息有个异常的地方就是ch34x_pis驱动是不能和这个mphsi master驱动共存的,usb的interface接口只能匹配一个。

lgzcoollg commented 1 year ago

hello,上面的意思是:实际逻辑分析仪抓到的总线数据是正常的,但是 i2cdump 指令的打印结果不正常这样吗? 上面的信息有个异常的地方就是ch34x_pis驱动是不能和这个mphsi master驱动共存的,usb的interface接口只能匹配一个。

不是的: 1,是我用网卡的驱动抓的i2c数据是正常的,用i2cdump回来的是不正常的; 2,我是网络分析仪把2种情况抓出来看。

lgzcoollg commented 1 year ago

hello,上面的意思是:实际逻辑分析仪抓到的总线数据是正常的,但是 i2cdump 指令的打印结果不正常这样吗? 上面的信息有个异常的地方就是ch34x_pis驱动是不能和这个mphsi master驱动共存的,usb的interface接口只能匹配一个。

通过芯片外部控制模式,不能自动选择驱动吗?我尝试下rmmod ch34x_pis再看看

lgzcoollg commented 1 year ago

hello,上面的意思是:实际逻辑分析仪抓到的总线数据是正常的,但是 i2cdump 指令的打印结果不正常这样吗? 上面的信息有个异常的地方就是ch34x_pis驱动是不能和这个mphsi master驱动共存的,usb的interface接口只能匹配一个。

我卸载了xh34x_pis的驱动,重新跑了一次

:

网卡方式读取(数据正常): mmexport1695784450198.jpg

ch341+i2cdump(数据不正确): mmexport1695784448039.jpg

WCHSoftGroup commented 1 year ago

用网卡的驱动读取数据,意思是不通过CH341这个硬件了是吗?还是说仍然用CH341,只是换了一个软件工具而已?

lgzcoollg commented 1 year ago

用网卡的驱动读取数据,意思是不通过CH341这个硬件了是吗?还是说仍然用CH341,只是换了一个软件工具而已?

没有通过ch341硬件和驱动。所有操作,都是以下拓扑:

mmexport1695859628986.png

lgzcoollg commented 12 months ago

Data read correct : through changing driver to ch34x_mphsi_master_linux_V1.3_20231108

but cannot dectect i2c device address by i2cdect

Thanks zhangj@wch Analyze: CH341有个特殊的命令,单发一个设备地址检测有没有ACK,但是通讯中不会检测每个字节的ACK; 驱动有个单独发设备地址的操作,V1.3_20231108 去掉了。

ch34x_mphsi_master_linux_V1.3_20231108.zip