博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
usb设备驱动开发日志之一
阅读量:2299 次
发布时间:2019-05-09

本文共 688 字,大约阅读时间需要 2 分钟。

usb设备驱动开发日志之一

在公司做项目的时候遇到一个PCB布线时把DM和DP接反的情况。本来usb接口设计为高速和全速模式,如此一来,就成了低速模式。查了一下资料,看到百合电子工作室的一篇文章《usb设备的插入检测机制》()中讲到:

“在USB设备端,在D+或者D-上接了1.5K欧姆上拉电阻。对于全速和高速设备,上拉电阻是接在D+上;而低速设备则是上拉电阻接在D-上。”(1)

我们的项目中的usb设备和pc主机之间的数据传输量不是很大。所以我想那就直接用低速模式吧,免得麻烦硬件的朋友再改板子。但是发现程序下载到目标板上,连上usb连接线并上电之后,设备没有正常枚举。设备管理器中显示为未知设备。

      在百合电子工作室的那边文章中也提到了不能正常枚举的实验,就是:

“一个简单的实验:只用一个上拉电阻接在USB的+5V和D+或者D-上,WINDOWS也会提示发现新硬件,但是无法找到驱动程序。这时去设备管理器里面看,有显示未知USB设备,并且其VID和PID为0。”(2)

      而我这里的也是这样子的,直接一个上拉电阻接到3.3V的电源上,也是不能正常枚举。

而火牛开发板上的usb电路则是使用了一个三极管做开关电路,有软件控制usb的D+引脚的电平高低。

      这里我认为我看到实际情况与(2)的描述是相符的,但是跟(1)的表述有明显的矛盾。按照(1)的描述,这应该能枚举成功的。只不过是低速模式而已。而这里却不能成功枚举。何解?

      难道是我的程序中设备配置描述表信息有些地方需要更改以匹配低速模式,才能让usb设备成功枚举。?

      现在还没有解决办法,只有等待硬件朋友更改电路板接线了。

转载地址:http://fyuib.baihongyu.com/

你可能感兴趣的文章
地图类业务优化方法
查看>>
可拖拽的ListView
查看>>
Java调用Kotlin函数的坑
查看>>
Live Template撸码利器
查看>>
Android View座标
查看>>
409. Longest Palindrome
查看>>
Collections.sort()自定义比较的用法
查看>>
297. Serialize and Deserialize Binary Tree
查看>>
127. Word Ladder
查看>>
444. Sequence Reconstruction
查看>>
207. Course Schedule
查看>>
702. Search in a Sorted Array of Unknown Size
查看>>
658. Find K Closest Elements
查看>>
852. Peak Index in a Mountain Array
查看>>
153. Find Minimum in Rotated Sorted Array
查看>>
109. Convert Sorted List to Binary Search Tree
查看>>
116. Populating Next Right Pointers in Each Node
查看>>
138. Copy List with Random Pointer
查看>>
912. Sort an Array
查看>>
148. Sort List
查看>>