找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1876|回复: 2
收起左侧

该如何实现 USB to I2C呢?

[复制链接]
ID:460612 发表于 2020-10-5 19:47 | 显示全部楼层 |阅读模式
各位前辈好

标题不知道该怎麽下才好, 故先用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的部分 有网站或文件可以推荐参考吗?


回复

使用道具 举报

ID:822755 发表于 2020-10-6 10:40 | 显示全部楼层
可以用FT232芯片, 调用厂家的SDK,就可以像IO一样模拟I2C时序了。
市面上好像也有usb转i2c的专用芯片。
回复

使用道具 举报

ID:460612 发表于 2020-10-6 18:49 | 显示全部楼层

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表