前年的时候(2016年10月)入手了一个迷你USBHost Shield,但是一直没有玩起来。最近偶然看到了KevinsBobo 的 Blog【参考1】, 上面提到了如何让它工作起来,琢磨了一下,最终让他工作起来。 先要解决下面2个问题: 第一, 我们淘宝上能买到的,不是原本的设计,有一些修改,这样的修改会导致USB设备的供电问题。下面是原版的设计,在绿色圈标记的位置,有一个焊接的跳线还有一个排针的位置。当焊接跳线接起来的时候,USB设备收到的是3.3V的电压(我不清楚有什么设备可以在3.3V供电的情况下工作,所以这个设计让我觉得莫名其妙)。焊接跳线断开的情况下,排针位置可以让用户送入一个5V的电压,这样所有的USB设备都可以正常工作。 其次,这个板子原本的设计是为了给 Arduino Pro 3.3V设计的,在5VArduino Pro上工作不正常。我查看过这个板子的电路图,上面3.3V的标记处是直接送入芯片的,因此,用5V供电会有烧毁芯片的风险。另外RAW标记处是空的,没有接任何线路和元件。因此【参考1】说在RAW送入5V,即可正常工作让我觉得不太可行。 最终的解决方法是,切开下面红色位置的线路,然后从绿色位置送入5V,配合3.3v 8M的Arduino Pro(5V的Arduino Pro 不行)。就可以工作了(万幸,之前的折腾并没有烧坏板子)。 正好最近入手了下面的转接板,主要是同时提供了3.3V和5V。 工作是下面的样子,HOSTShield在上面,Arduino在下面,这不是一个很好的例子,因为Arduino 放在下面,ResetButton很难按。 总结有下面几点: 1. 1. USB Host Shield 上面的芯片只能使用3.3V 供电。通常我们使用的大的 USB Host Shield上面有降压元件,或者说可以直接从 3.3V口取电。但是,小板子是直通的,所以供给5V,芯片收到的就是5V,芯片有烧毁的风险; 2. 2.USB Host Shield和Arduino 是通过SPI 总线通讯的,对于这个总线也有电压匹配的问题,当Arduino是5V的时候,SPI 电压也是5V,双方无法通讯; 实验取得鼠标的 Descriptor 结果如下:
后面我会继续研究如何让这个搭配更常见的 Arduino Pro Micro 进行工作, 有兴趣的朋友可以持续关注后续文章.
参考:
|