USB学习笔记1:CH372硬件电路<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
相比于PDIUSBD12来说,CH372简单易用很多,它具有内置固件模式,屏蔽了USB协议,还具有灵活的外部固件模式,适合于多种应用场合。
USB 2.0 标准规定了以下三种传输速率:
1. 低速模式传输速率为1.5Mbps,多用于键盘和鼠标。
2. 全速模式传输速率为12Mbps。
3. 高速模式传输速率为480Mbps。
CH372兼容USB2.0,但不是USB2.0设备,不能用于高速(480Mbps)操作。
通过下面命令修改:
CMD_SET_USB_SPEED 0x04
/* 设置USB总线速度, 在每次CMD_SET_USB_MODE设置USB工作模式时会自动恢复到12Mbps全速 */
/* 输入: 总线速度代码 */
//00H=12Mbps全速FullSpeed(默认值),
//01H=1.5Mbps(仅修改频率),
//02H=1.5Mbps低速LowSpeed
CH372引脚配置和引脚分配:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
CH372硬件连线图
晶体X1、电容C1 和C2——用于CH372 的时钟振荡电路。
晶体X1 的频率是12MHz;
C1 和C2 是容量为15pF~30pF的独石或者高频瓷片电容。
电容C3——用于CH372内部电源节点退耦。
C3 是容量为4700pF~0.02μF的独石或者高频瓷片电容。
如果CH372 的电源电压为3.3V,那么应该将V3 引脚与VCC 引脚短接,共同输入3.3V 电压,并且电容C3 可以省掉。
电容C4和C5——用于外部电源退耦。
C4 是容量为0.1μF的独石或者高频瓷片电容。
电阻R1——(串在USB电源与本板电源之间)是为了便于双电源供电,防止两个电源电压不同冲突。
计算机USB供电:
USB 总线提供的电源电流最大可以达到500mA,一般情况下,低功耗的USB 产品可以直接使用USB总线提供的5V电源。此时单片机也是使用计算机给USB的5V电源,单片机系统不需要外接电源,也可以省略电阻R1,但必须保证500mA能满足整个单片机系统的电流要求。
单片机外接电源:
可以通过阻值约为1Ω的电阻R1连接USB总线的5V电源线与USB产品的5V常备电源,并且两者的接地线直接相连接。这样可以防止两个电源电压不同冲突。
P1接线:
P1是USB端口,USB总线包括一对5V 电源线和一对数据信号线,通常:
红色——+5V电源线;
黑色——接地线GND;
绿色——D+信号线;
白色——D-信号线。
电阻R2——充放电使USB复位。
可选电阻R2 用于在电源断电后将电解电容C5中的电能及时释放掉,使VCC 及时下降到0V,确保在下次通电时CH372 能够可靠地上电复位。
为使CH372 能够可靠复位,电源电压从0V 上升到5V 的上升时间应该少于100mS,所以电容C5 的容量和电阻R1 的阻值都不能太大。
设计印刷板PCB时注意:
① 退耦电容C3和C4尽量靠近CH372 的相连引脚;
② 使D+和D-信号线贴近平行布线,尽量在两侧提供地线或者覆铜,减少来自外界的信号干扰;
③ 尽量缩短XI 和XO引脚相关信号线的长度,为了减少高频时钟对外界的干扰,可以在相关元器件周边环绕地线或者覆铜。
CH372与单片机连接
有两种方式:非总线扩展和总线扩展。
连接单片机I/O(非总线扩展)
单片机可以用普通的I/O引脚模拟出8位并口时序操作。
CH372 芯片。在普通的MCS-51 系列简化单片机的典型应用电路中,CH372 的CS#固定为低电平,一直处于片选状态,U5的P1 端口作为8位双向数据总线,在单片机程序中,可以控制各个I/O引脚模拟并口时序与CH372 进行数据交换。
缺点是占用了单片机的I/O口,CH372一直处于片选状态。
连接单片机总线(总线扩展)
关于单片机总线方式可以参考我的另一篇博文。
这种方式的优点是节省了单片机I/O口引线,通过地址选择CH372。74LS373的作用是对地址进行锁存。74LS373可以用74LS573/74HC573代替,好处是74LS373的管脚排列不整齐,D0~Q0管脚不是相对排列,而74LS573的是相对排列,有利于PCB布线和在万用版、面包板上排线。
74LS373管脚图
74LS573管脚图
总线扩展方式中的74LS138起到地址译码产生片选信号的作用。CH372 芯片的片选地址范围为B000H-BFFFH,而实际上CH372 只需要占用两个地址:地址BXX1H用于写命令,地址BXX0H 用于读写数据。
总线扩展方式中的地址锁存和地址译码可以用CPLD完成。简单几行Verilog命令就可以实现对CH372的操作,而且有利于其他总线扩展方式芯片的操作,省去了对应单片机操作每个总线扩展方式芯片所必须的锁存芯片74LS573/74LS373。
CPLD选择Xilinx公司的XC9572-PLCC84。具体请参见我的另外一篇博文。
参考资料:
http://www.maxim-ic.com.cn/appnotes.cfm?an_pk=3803
用户377235 2012-11-27 12:48
学习了
tengjingshu_112148725 2009-5-18 09:08
用户145921 2009-5-15 13:12