|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
大家好,lz用了半个月时间才搞定一个Cypress USB控制器68013A+Xilinx FPGA的板子,电脑上各种弹出“无法识别的USB设备”,过程中被折磨的不行。。。好在终于解决了,把经验和大家分享一下,攒攒人品,让大家少走弯路。
网上很多人强调USB2.0布线如何如何,实际感觉也没那么邪乎,lz用了一对过孔,同时保证D+ D-等长,线长900mil左右,各串一个20欧的端接电阻没什么问题。
要提醒大家的是千万千万注意焊接质量。。。否则会出现很多奇奇怪怪的问题。。。最开始的时候,楼主用bulkloop程序,FPGA程序和固件都确定没问题,EP2能out,但是EP6不能in,flag显示EP6端点FIFO明明有数据,用的Autoin/out模式,PC就是不能Bulkin。无奈放弃,重新做了一块板子。事后想想问题应该出在焊接上了。
另外,无论接不接EEPROM,对68013来说SDA SCL都要上拉,EEPROM的SDA也要上拉,在接上EEPROM的情况下,这两个上拉电阻实际上是并联的。lz的悲剧就在此。。。两个电阻都2.2K,结果貌似把68013的SDA脚烧掉了。。。插在电脑上的现象是不能识别,unknown device,而且连0000的PID VID都读不出来。测68013SDA脚对3.3V供电短路。。。解决办法,68013的SDA接2.2K上拉,EEPROM的SDA接27K上拉。
lz板子上68013几个重要参数的选择:RESERVED脚2.2K下拉,SDA SCL2.2K上拉,WAKE UP脚2.2K上拉。RESET上的R=27K,C=0.47uF。EEPROM端SDA27k上拉,A0 2.2K上拉。
总结一下68013调试方法:
插上USB后,如果电脑没有反应,检查USB D+ D-是否有3.3V的压差。没有的话很可能是焊接问题。
如果电脑出现无法识别的USB设备,说明电脑检测到了3.3V的压差,这时很可能是时钟工作不正常,检查时钟。看晶振是否起振,注意是24M的无源晶振。正常起振的话两端应该是1.4V和1.3V左右,有一个微小的差别,用示波器看两端都有正弦波,一端比另一端Vpp大一些。正常起振时,Pin5 Clkout脚会输出方波。如果有这个方波,时钟基本上确认没有问题了。
正常工作时,RESERVED 脚应该是0。WAKE UP脚是3.3V。 |
|