CH34X-MPHSI高速Master扩展应用—《i2c-tools使用》

本文介绍了如何使用CH347USB转接芯片和CH34X-MPHSI-Master驱动在Linux系统中扩展I2C、SPI总线和GPIO资源。驱动安装后,系统会创建新的I2CMaster,允许直接挂载原有I2C设备。文章提供了示例代码,展示了如何添加设备驱动以及使用i2c-tools进行读写操作。默认I2C时钟为100kHz,不支持动态修改。
摘要由CSDN通过智能技术生成

本文介绍,基于USB2.0高速USB转接芯片CH347,配合厂商提供的USB转MPHSI(Multi Protocol High-Speed Serial Interface)Master总线驱动(CH34X-MPHSI-Master)为系统扩展I2C总线的用法,除此之外,还可以扩展SPI总线和GPIO等资源。

驱动软件正常工作后,会在系统下创建新的I2C Master,拥有独立的bus num,原I2C器件的设备驱动可直接挂载到该总线上,无需任何修改。

项目地址:GitHub - WCHSoftGroup/ch34x_mphsi_master_linux

 应用框图:

CH347F 的I2C接口

PIN脚I2C功能脚GPIO复用脚
11SCL-
12SDA-

CH347T 的I2C接口

PIN脚I2C功能脚GPIO复用脚
11SCLgpio3
12SDA-

CH347F/T支持至少4种I2C时钟:20kHz,100kHz,400kHz和750kHz。驱动配置的默认I2C时钟为100KHz,当前不支持动态修改该时钟频率,若需要修改可以在ch34x_mphsi_i2c_init函数中修改。

在Linux上增加对器件的驱动支持十分方便,只需要将该器件的设备驱动绑定到此Master驱动生成的总线下即可。举例:

modprobe bmi160_i2c
echo "bmi160 0x68" > /sys/bus/i2c/devices/i2c-$DEV/new_device

modprobe tcs3472
echo "tcs3472 0x29" > /sys/bus/i2c/devices/i2c-$DEV/new_device

驱动创建的I2C设备文件在/sys/bus/i2c/devices/i2c-$DEV/ 目录下

使用i2c-tools工具

1、加载驱动程序后,USB设备工作正常时,系统日志如下:

2、查看扩展的I2C Master的信息:

3、从步骤 1和2可以确认系统为USB设备分配的bus num(总线编号)

4、使用 i2cdetect 指令扫描 i2c device设备(使用eeprom演示)

5、使用 i2cset 和 i2cget 命令读写入1字节

 6、使用 i2ctransfer 命令读写多字节

更多的 ch347的master驱动特性,以及 i2c-tools 的用法可以交流补充~ 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PC技术小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值