仿照tmote原型设计的ECGMeter,在连接电脑时,计算机却不能识别。一番修修改改之后,计算机终于能顺利识别,并下载程序。但现在回想起来,到底是什么原因导致不能识别,还是不能给出肯定的结论。所以先把修改过程记录下来以方便以后查阅。
修改(一):
参考文章[1] 中说,连接7脚(USBDP)、8脚(USBDM)的27R电阻可能会导致供电不足,所以去掉了两个27R电阻。但结果是仍然不能正常工作。
修改(二):
考虑到供电不足,去掉了连接30脚(AVCC)的470R电阻,电脑仍然无法识别。
修改(三):
考虑到led导通时,会消耗电流甚至拉低电压,切断11、12脚(RXLED、TXLED)的连接,但电脑依然无法识别。
修改(四):
在参考文章[1] 中提到,usb的两根信号线之间应该存在压差。我用电压表量了下,发现没有。后来顺藤摸瓜发现5脚(RSTOUT)输出电压,通过1.5k电阻连接7脚(USBDP)。所以7脚电压应该被抬升,但经测量7脚电压基本为0。所以推断1.5k电阻与7脚并没有有效连接。经修改后使两者相连接。PC顺利识别到芯片。
结论:
可能是制版工艺有问题,使得本应相连接的部分出现短路,导致问题的发生。所以以后要换一家好些的PCB工厂(也很有可能是因为虚焊。。。。。)。
其他:
1、在tmote原型中6M无源晶振部分并没有谐振电容,而是中间连接1M的电阻。其实,连接谐振电容和电阻的目的都是一致的-消除谐波。具体细节可查看参考文献[2]
2、FT232BM和FT232BL的区别在于前者不符合环保标准,而后者符合,两者在功能上没有本质区别,完全兼容。
3、FT232BM可以由FT232RL替换
4、USB2.0接口差分信号线设计(查看参考文献[3])
参考文献:
[1]http://blog.163.com/dreamatic_altezza/blog/static/1193045420091190920863/