CH375是一个国产USB转接芯片,集成了U盘操作固件,可以直接把U盘当做一个一个的扇区来读写,加上一个文件系统,你就可以在U盘上拷贝,粘贴,新建等Windos下具备的文件操作功能了。
另外其还支持从机模式,可以让单片机或DSP通过它连接到电脑上实现一个自制的USB鼠标/键盘或U盘等。其兼容USB2.0协议,最大传输速度为USB1.1的12Mbps。
对于一般的嵌入式应用来说,速度已经能满足需求。更可贵的是,这时一片民族芯片,意味着你面对将是中文PDF和一个完善的网络技术支持氛围(用的人太多了)。使用CH375将让你学习USB协议不再枯燥,不再是纸上谈兵(我不是托)。
可以从这里下载他的中文资料http://www.eeskill.com/file/id/41663
下面具体阐述一下这两天自己恢复调试该芯片的“艰辛”,其实该芯片并不脆弱,我焊了又拆,拆了又焊上,还是可以用。主要是制造这个芯片南京那家公司技术支持资料太丰富了,太详细了,以至于让我在做电路时也是小心翼翼,最后反而吃了大亏。
一、CH375分为A和B两个系列,A系列支持5V供电,B系列不仅支持5V还支持3.3V。
二、B系列中,如果使用5V供电,则V3引脚通过0.01uF电容接地,如果是3.3V,则V3接3.3V,这点很重要;
三、CH375资料上说对于电源VCC引脚端应该接0.01uF的电容到地,该电容功能为退耦电容,同时,晶振必须为12MHZ,晶振引脚和电容引脚尽量*近CH375的Xi和Xo引脚。
如果硬件连接正确,上电时,在Xo端应该可以检测到12MHZ的波形,在没有示波器的情况下,可以用万用表检测Xi和Xo引脚是否为电源电压的一半,即如果是5V供电,此时两个引脚的电压应该接近2.5V,
我在自己制作的腐蚀板中变遇到了晶振无法起振的情况,开始怀疑是引脚离得有点远,于是改变了电容的放置位置,使之更*近ch375两个引脚,也没有起振。
然后怀疑是CH375坏了,前后一共换了3片还是没有起振,最后在反复检测电路后,换了一颗晶振,我把所有的怀疑都用完后,最后目光聚焦在了两个0603封装的22P电容上,当然开始我还不是怀疑电容有问题,而是ch375应用资料上给的电容是15p的,但手上又没有这个容值的电容,电容都焊下来了,因为太小,掉哪去也不知道,于是重新换了两个22p的,结果却“奇迹般”的起振了。
难道困扰了我两天的竟然是两颗坏了的晶振电容?因为那两个小东西也不知道躲哪去了,我不能再揪出来拷问,那就认为是人品问题吧,遇到了两个坏了电容,或者是自己焊接的时候不小心焊坏了,罪过。。。
后来我还原了电路,一层一层验证,取下了VCC的退耦电容,可以工作;再把两个电容移回原来离CH375较远的位置,还是可以起振。
仅以此调试经验警醒自己,我怀疑的逻辑,相信大多数人也是这样,越大的,越复杂的,越脆弱,呵呵,这种逻辑有问题么?调试是一个痛苦的过程,调试又是一个快乐的过程,恭喜你,嵌入式工程师,尝尽人间苦乐!
四、当上电后CH375能起振了,这时还可以测一下25和26脚的电平,26为高,25为低,说明硬件复位时成功的,否则你就要看下RST连接的一个到VCC的0.47uF电容那是否有问题了。另外就是,在晶振没有起振的情况下,往CH375写数据,那个指示灯会不停的闪,写一此,闪一次,这是不正常德。
五、当硬件能起振了,复位也完成了,请将8位数据口接到你的微控制器(单片机或DSP等),然后你还要接A0,WR,RD,INT,最后保证在软件操作芯片的时候CS为低。如此,通过往CH375写命令CMD_CHECK_EXIST(0x06),接着写一个任意8位数据,稍微延时几个毫秒,CH375会返回你一个数据,这个数据是你写的数据的取反,如果你收到了这样一个取反的数据,恭喜你,你的硬件和底层软件读写操作成功了,接下了便可以开始自己的USB协议解析之旅。
如果你收到的数据不是正确的取反数据,那么请仔细检查在没有任何线连接的情况下,晶振是否起振,复位是否成功,如果晶振已经起振,你已经成功了一大半,至于读写的时序,网上到处都是,51的,AVR的,找一个可以用的,稍作移植便可以使用。底层操作成功,是后续分析和学习USB协议的关键。