USB控制芯片CH372与单片机接口电路设计

分享到:
点击量: 215147

  USB控制芯片CH372与单片机接口电路设计

  相比于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引脚图及引脚功能描述

  

 

  晶体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。