打印
[USB接口]

求助,关于USB主设备芯片

[复制链接]
2796|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lidake|  楼主 | 2014-10-19 14:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,我想做一个USB的主设备,功能要求是可以用来代替PC机的USB口,来和现在市面上很多USB转MIDI线通信。我知道USB转MIDI线上很多芯片,比如MFM0860等都是USB从设备。我现在想找一款USB的主设备,可以与之通信。
不知道我说的这些是不是外行话,期待您的指点迷津。有没有这样的USB主控类芯片。比如CH375行不行?还是CH375做为主设备只能与U盘类通信呢?感谢。

相关帖子

沙发
le062| | 2014-10-19 16:10 | 只看该作者
本帖最后由 le062 于 2014-10-19 16:11 编辑

需要确认USB从设备用到了什么样的传输模式,需要多少端点,然后确定主芯片
ch375资源不超的话,应该可以,需要具体看下
现在带otg的cortex-m功能会比ch375强一些

使用特权

评论回复
板凳
lidake|  楼主 | 2014-10-20 09:16 | 只看该作者
le062 发表于 2014-10-19 16:10
需要确认USB从设备用到了什么样的传输模式,需要多少端点,然后确定主芯片
ch375资源不超的话,应该可以, ...

我是第一次做USB方面,所以会问一些比较外行的话。我想问一下,比如我正常使用USB转MIDI线去连接PC机。PC机上会显示加载一个驱动,并且自动识别出我的设备。现在我想把PC机的功能拿到单片机上来完成,我总共需要经过几个比较大的步奏呢?单片机上海需要编写USB协议吗?还是CH375上这类芯片中都集成了呢?我看资料说CH375集成了可以读写U盘的协议。那作为MIDI数据(一种电子音乐的数据格式),在USB中还有特殊的协议吗?还是说按照一般的USB传输就可以呢?我是不是只需要选择一款USB主芯片,然后把电路连接好,用单片机和该USB主芯片串口通信就能获取数据呢?感谢

使用特权

评论回复
地板
lidake|  楼主 | 2014-10-20 09:20 | 只看该作者
le062 发表于 2014-10-19 16:10
需要确认USB从设备用到了什么样的传输模式,需要多少端点,然后确定主芯片
ch375资源不超的话,应该可以, ...

还有一点,比如,从设备的USB芯片有可能是好多种,不止一种,那么我要怎么应对呢?

使用特权

评论回复
5
lidake|  楼主 | 2014-10-20 11:11 | 只看该作者
le062 发表于 2014-10-19 16:10
需要确认USB从设备用到了什么样的传输模式,需要多少端点,然后确定主芯片
ch375资源不超的话,应该可以, ...

我正在看CH375的资料,上面说的比较多的,都是正对USB存储设备的逻辑单元的操作。而我现在需要的是这样一个情况,通俗点说就是。USB转MIDI线上的USB转MIDI芯片(我认为的USB从设备)功能是:把MIDI数据流变成标准的USB协议,传输给了PC机的U口。我现在需要找一个USB主芯片,来接收这个标准的USB数据流,然后转化成单片机可以识别的串口数据就可以了。但是关于USB传输协议这部分我还有点迷糊,会有什么不同的传输协议吗?还是我这种就是简单的标准的USB数据协议。我知道USB转MIDI线上的从设备,大致会用两种芯片,CH345或则MFM0860.

使用特权

评论回复
6
le062| | 2014-10-20 14:28 | 只看该作者
usb 2.0 full 在硬件部分只有四种传输类型和十几个端点,
ch375没说支持同步传输,如果MIDI需要用到同步传输的话,就不能用了,这点需要确认

开发usbhost端协议栈的话,至少需要一个usb总线分析仪,如果用现成的协议栈会舒服很多

使用特权

评论回复
7
lidake|  楼主 | 2014-10-20 16:37 | 只看该作者
le062 发表于 2014-10-20 14:28
usb 2.0 full 在硬件部分只有四种传输类型和十几个端点,
ch375没说支持同步传输,如果MIDI需要用到同步传 ...

MIDI协议是单向异步的数据位流,速率是31250b/s。我是不是需要在外围单片机上写USB FULL SPEED协议啊?比如用一些命令去控制CH375来收发数据,以USB FULL SPEED格式或则速度?还是迷糊中啊我。

使用特权

评论回复
8
le062| | 2014-10-20 20:19 | 只看该作者
先看资料吧,usb这东西也急不来
https://bbs.21ic.com/icview-671100-1-1.html

使用特权

评论回复
9
diyusb| | 2014-10-21 20:31 | 只看该作者
USB-MIDI设备的数据传输是通过批量传输实现的
CH375可以做,只要向USB-MIDI设备的批量下传端点发送数据即可,当然数据得按MIDI的格式封装

使用特权

评论回复
10
lidake|  楼主 | 2014-10-21 22:27 | 只看该作者
diyusb 发表于 2014-10-21 20:31
USB-MIDI设备的数据传输是通过批量传输实现的
CH375可以做,只要向USB-MIDI设备的批量下传端点发送数据即可 ...

你好,兄台说的“批量传输”就是USB FULL SPEED嘛?USB2.0传输协议?

使用特权

评论回复
11
lidake|  楼主 | 2014-10-21 22:30 | 只看该作者
diyusb 发表于 2014-10-21 20:31
USB-MIDI设备的数据传输是通过批量传输实现的
CH375可以做,只要向USB-MIDI设备的批量下传端点发送数据即可 ...

还有,目前市面上有这种USBMIDI的主设备吗?或则说满足MIDI转USB线中,使用的USB从设备传输协议的,USB主设备,最好该主设备还可以单片机串口通信,那就perfect了。

使用特权

评论回复
12
lidake|  楼主 | 2014-10-21 22:31 | 只看该作者
le062 发表于 2014-10-20 20:19
先看资料吧,usb这东西也急不来
https://bbs.21ic.com/icview-671100-1-1.html

目前市面上有这种USBMIDI的主设备吗?或则说满足MIDI转USB线中,使用的USB从设备传输协议的,USB主设备,最好该主设备还可以单片机串口通信,那就perfect了

使用特权

评论回复
13
lidake|  楼主 | 2014-10-21 22:35 | 只看该作者
le062 发表于 2014-10-20 20:19
先看资料吧,usb这东西也急不来
https://bbs.21ic.com/icview-671100-1-1.html

哇,兄台,全英文的PDF哦。有没有简单点的中文描述,比如单片机给CH375几条命令,就可以使它变成某种传输协议,然后和USBMIDI从设备电路一连接就OK了。然后我再从CH375与MCU通信的串口中取走USB传输过来的数据,其实,这就是我目前的目的。

使用特权

评论回复
14
le062| | 2014-10-22 12:36 | 只看该作者
最简单的主机协议栈开发估计是上linux或者上uclinux。
当然现在的stm32也有主机协议栈,但是估计没有现成的USBMIDI类驱动。
而且就算能用现成的协议栈和主机驱动,如果不学点usb知识的话,也很难调试维护。
加油把,或者找以前弄过USBMIDI的大牛请教。

ps,如果不考虑通用性,类驱动可以写的非常简单。但协议栈难度很高,不建议自己开发

使用特权

评论回复
15
lidake|  楼主 | 2014-10-22 13:31 | 只看该作者
le062 发表于 2014-10-22 12:36
最简单的主机协议栈开发估计是上linux或者上uclinux。
当然现在的stm32也有主机协议栈,但是估计没有现成的 ...

你看看这位兄台说的是什么意思?他说的对么?

USB-MIDI设备的数据传输是通过批量传输实现的
CH375可以做,只要向USB-MIDI设备的批量下传端点发送数据即可,当然数据得按MIDI的格式封装”

使用特权

评论回复
16
lidake|  楼主 | 2014-10-24 10:01 | 只看该作者
继续求大神,点破!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

90

帖子

0

粉丝