标题: 该如何实现 USB to I2C呢? [打印本页]

作者: a005182    时间: 2020-10-5 19:47
标题: 该如何实现 USB to I2C呢?
各位前辈好

标题不知道该怎麽下才好, 故先用USB to I2C当标题
第一次写USB to other interface的需求, 很多方面都不了解
规划上, 不知道该选择何种protocol会比较好开發
故想求助一些方向,如果有现成的原代码可以参考更好

目前的问题如下
MCU上有下列多组interface
I2C    (4组)
SPI    (4组)
UART (3组)
PWM  (原生2组+2组GPIO模拟)
SDIO (一组 for SD card)

想利用USB 2.0  interface串接起来 (USB to I2C/SPI/UART/PWM/SD)
USB2.0 endpoints 5 in /5 out

目前研究了几种方式

1. 使用IAD 複合式 的方式,但發现光是 CDC endpoints 数目会不够用
    IAD -> CDC-ACM -> UART  (3 endpoints * 4)
           ->  ...  

2. Vendor-Specific
    参考市面上的USB to UART
    它们的作法是使用 Vendor-Specific
    以Interrupt IN / Bulk in/out  三个endpoints 来作
    但该传哪些资料/哪些Byte代表什么意思 , 需全部自定义
    但 有一个疑问点为
    如果在 USB to I2C/SPI/UART/PWM 之下
    需要更多的endpoints 吗?

3. 使用HID
    目前于网路上有查询到 MS 有定义过 USB HID I2C的 spec
    但着墨不多, 范例也少
    直觉上 USB to I2C/SPI/UART/PWM
    也需自定义, 但是基于自定义Report descriptor的架构上 去实现


关于2跟3,如日后driver和application 会在linux 上开發
会建议使用哪种方式较佳呢?

关于这类USB to XXX interface的部分 有网站或文件可以推荐参考吗?



作者: KongQuan    时间: 2020-10-6 10:40
可以用FT232芯片, 调用厂家的SDK,就可以像IO一样模拟I2C时序了。
市面上好像也有usb转i2c的专用芯片。
作者: a005182    时间: 2020-10-6 18:49

目前因为需求所以 USB to I2C/UART/PWM...部分需全部自己在STM32上实现, 无法使用chip 去转换




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1