Linux 下 USB 转 I2C、SPI、GPIO
在没有原生gpio等外设的Linux设备上,如PC,各种电视盒子,手机甚至随身WIFI等,想驱动各种外设会略微麻烦,并且但部分单片机外设都不是USB接口的,无法直接驱动。
好在市面上有现成的方案,如CH341A,CH347,他们可以通过驱动,虚拟一个硬件spi\i2c\gpio外设出来,然后像树莓派那样直接访问/dev/i2c-0之类的,直接访问各种外设(官方的驱动:WCHSoftGroup/ch34x_mphsi_master_linux)
但这些芯片其实不便宜,限制也多,比如引脚不够多等。
网上有其他开源方案:
比如经典的harbaum/I2C-Tiny-USB: Cheap and simple I²C to USB interface,可以USB单片机作为桥接,为PC(WIN/LINUX/MAC等)实现在PC上控制I2C设备
另一个方案:I2C-MP-USB - USB to I2C Interface - fischl.de
以及:dquadros/I2C-Pico-USB: An RP2040 based clone of the i2c-tiny-usb,它参考上面的i2c-tiny-usb,在树莓派pico上实现该功能
立创的开源项目:UK534-USB4I2C:单芯片Tiny-I2C-USB转换器 - 立创开源硬件平台
我自己让AI实现的方案:
让Py32f002a这种4毛钱的国产32位单片机,通过gpio模拟usb低速设备(xobs/grainuum: Software USB stack),并且作为桥接让Win系统里的WSL直接访问i2c、spi设备等
MCU_Project/32/Py32/PY32F002A_VSCode_USB_GPIO_I2C_SPI/README.md at main · jeason1997/MCU_Project

浙公网安备 33010602011771号