文档库 最新最全的文档下载
当前位置:文档库 › CH372DS-1

CH372DS-1

CH372DS-1
CH372DS-1

USB总线接口芯片CH372

中文手册

版本:3E

https://www.wendangku.net/doc/bd5309777.html,

1、概述

CH372是一个USB总线的通用设备接口芯片,是CH371的升级产品,是CH375芯片的功能简化版。在本地端,CH372具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上;在计算机系统中,CH372的配套软件提供了简洁易用的操作接口,与本地端的单片机通讯就如同读写文件。

CH372内置了USB通讯中的底层协议,具有省事的内置固件模式和灵活的外置固件模式。在内置固件模式下,CH372自动处理默认端点0的所有事务,本地端单片机只要负责数据交换,所以单片机程序非常简洁。在外置固件模式下,由外部单片机根据需要自行处理各种USB请求,从而可以实现符合各种USB类规范的设备。

2、特点

●全速USB设备接口,兼容USB V2.0,即插即用,外围元器件只需要晶体和电容。

●提供一对主端点和一对辅助端点,支持控制传输、批量传输、中断传输。

●具有省事的内置固件模式和灵活的外部固件模式。

●内置固件模式下屏蔽了相关的USB协议,自动完成标准的USB枚举配置过程,完全不需要本

地端控制器作任何处理,简化了单片机的固件编程。

●通用Windows驱动程序提供设备级接口,通过DLL提供API应用层接口。

●产品制造商可以自定义厂商标识(Vendor ID)和产品标识(Product ID)。

●通用的本地8位数据总线,4线控制:读选通、写选通、片选输入、中断输出。

●主端点上传下传缓冲区各64字节,辅助端点上传下传缓冲区各8字节。

●支持5V电源电压和3.3V电源电压,支持低功耗模式。

●CH372芯片是CH375芯片的功能简化版,CH372在CH375基础上减少了USB主机方式和串口通

讯方式等功能,所以硬件成本更低,但是其它功能完全兼容CH375,可以直接使用CH375的WDM驱动程序和DLL动态链接库。

●采用小型的SSOP-20无铅封装,兼容RoHS,引脚兼容CH374T芯片。

3、封装

封装形式塑体宽度引脚间距封装说明订货型号SSOP-20 5.30mm 209mil 0.65mm 25mil 超小型20脚贴片CH372B

4、引脚

引脚号引脚名称类型引脚说明

20 VCC 电源正电源输入端,需要外接0.1uF电源退耦电容

18 GND 电源公共接地端,需要连接USB总线的地线

5 V3 电源在3.3V电源电压时连接VCC 输入外部电源,在5V电源电压时外接容量为0.01uF退耦电容

8 XI 输入晶体振荡的输入端,需要外接晶体及振荡电容

9 XO 输出晶体振荡的反相输出端,需要外接晶体及振荡电容

6 UD+ USB信号USB总线的D+数据线

7 UD- USB信号USB总线的D-数据线

17~10 D7~D0 双向三态8位双向数据总线,内置弱上拉电阻

3 RD# 输入读选通输入,低电平有效,内置弱上拉电阻

2 WR# 输入写选通输入,低电平有效,内置弱上拉电阻

19 CS# 输入片选控制输入,低电平有效,内置弱上拉电阻

1 INT# 输出中断请求输出,低电平有效

4 A0 输入地址线输入,区分命令口与数据口,内置弱上拉电阻,当A0=1时可以写命令,当A0=0时可以读写数据

5、命令

本手册中的数据,后缀B为二进制数,后缀H为十六进制数,否则为十进制数。

本手册中所指的单片机基本适用于DSP或者MCU/MPU/SCM等。

本手册提供了内置固件模式下可能用到的命令,其它命令请参考手册(二)。

代码命令名称输入数据输出数据命令用途

01H GET_IC_VER 版本号获取芯片及固件版本03H ENTER_SLEEP 进入低功耗睡眠挂起状态05H RESET_ALL (等40mS)执行硬件复位06H CHECK_EXIST 任意数据按位取反测试工作状态

数据10H 0BH CHK_SUSPEND

检查方式设置检查USB总线挂起状态的方式

VID低字节

VID高字节

PID低字节12H SET_USB_ID

PID高字节设置USB的厂商识别码VID 和产品识别码PID

15H SET_USB_MODE 模式代码(等20uS)

操作状态

设置USB工作模式

22H GET_STATUS 中断状态获取中断状态并取消请求23H UNLOCK_USB 释放当前USB缓冲区

数据长度27H RD_USB_DATA0

数据流从当前USB中断的端点缓冲区

读取数据块

数据长度28H RD_USB_DATA

数据流从当前USB中断的端点缓冲区读取数据块并释放当前缓冲区

数据长度2AH WR_USB_DATA5

数据流向USB端点1的上传缓冲区

写入数据块

数据长度2BH WR_USB_DATA7

数据流向USB端点2的上传缓冲区

写入数据块

如果命令的输出数据是操作状态,参考下表。

状态代码状态名称状态说明

51H CMD_RET_SUCCESS 操作成功

5FH CMD_RET_ABORT 操作失败

5.1. 命令GET_IC_VER

该命令获取芯片及固件版本。返回的一个字节数据是版本号,其位7为1,位6为0,位5~位0为版本号。如果返回值为0B7H,去掉位7的1,实际版本号为37H。

5.2. 命令ENTER_SLEEP

该命令使CH372芯片进入低功耗睡眠挂起状态(部分型号的芯片不支持该功能)。进入低功耗状态后,CH372芯片的时钟停振,从而节约电能,直到检测到以下两种情况之一才退出低功耗状态:一是检测到USB总线有信号;二是单片机向CH372芯片写入新的命令(没有输入数据的命令,例如GET_IC_VER命令)。

通常情况下,CH372芯片从低功耗状态退出并恢复到正常工作状态需要几毫秒的唤醒时间,当完全恢复到正常工作状态后,CH372将产生USB_INT_WAKE_UP事件中断。

5.3. 命令RESET_ALL

该命令使CH372执行硬件复位。通常情况下,硬件复位在40mS时间之内完成。

5.4. 命令CHECK_EXIST

该命令测试工作状态,以检查CH372是否正常工作。该命令需要输入1个数据,可以是任意数据,如果CH372正常工作,那么CH372的输出数据是输入数据的按位取反。例如,输入数据是57H,则输出数据是A8H。另外,在CH372复位后未收到任何命令之前,从其并口通常是读出数据00H。

5.5. 命令CHK_SUSPEND

该命令设置检查USB总线挂起状态的方式。该命令需要输入两个数据,分别是数据10H和检查方

式。检查方式有2种:00H说明不检查USB挂起(上电或复位后的默认值);04H说明以50mS为间隔检查USB挂起。

USB总线挂起状态包括两种情况:一是USB信号线物理断开,完全没有USB信号;二是USB主机端停止发送SOF信号,也就是USB主机端要求USB设备进入挂起状态。当检查到USB总线挂起状态后,CH372将产生USB_INT_USB_SUSPEND事件中断。

5.6. 命令SET_USB_ID

该命令设置USB的厂商识别码Vendor-ID和产品识别码Product-ID。该命令需要输入4个数据,依次是厂商VID的低8位、厂商VID的高8位,产品PID的低8位,产品PID的高8位。如果需要设置ID,那么该命令必须在SET_USB_MODE命令之前执行。

5.7. 命令SET_USB_MODE

该命令设置USB工作模式。该命令需要输入1个数据,该数据是模式代码:

模式代码为00H时切换到未启用的USB设备方式(上电或复位后的默认方式);

模式代码为01H时切换到已启用的USB设备方式,外部固件模式;

模式代码为02H时切换到已启用的USB设备方式,内置固件模式。

在USB设备方式下,未启用是指USB总线D+的上拉电阻被禁止,相当于断开USB设备;启用是指USB总线D+的上拉电阻有效,相当于连接USB设备,从而使USB主机能够检测到USB设备的存在。通过设置是否启用,可以模拟USB设备的插拔事件。

通常情况下,设置USB工作模式在20uS时间之内完成,完成后输出操作状态。

关于外部固件模式请参考手册(二)。

5.8. 命令GET_STATUS

该命令获取CH372的中断状态并通知CH372取消中断请求。当CH372向单片机请求中断后,单片机通过该命令获取中断状态,分析中断原因并处理。

中断状态字节名称中断状态分析说明

位7~位4 (保留位)总是0000

位3~位2 当前事务00=OUT事务10=IN事务11=SETUP事务

00=端点0 01=端点1 10=端点2 位1~位0 当前端点

11=USB总线复位

下面是中断状态的分析说明。在内置固件模式的USB设备方式下,单片机只需要处理表中标注为灰色的中断状态,CH372内部自动处理了其它中断状态。

中断状态值状态名称中断原因分析说明

03H、07H、0BH、0FH USB_INT_BUS_RESET1~

USB_INT_BUS_RESET4

检测到USB总线复位

(中断状态值的位1和位0为11)

0CH USB_INT_EP0_SETUP 端点0的接收器接收到数据,SETUP成功00H USB_INT_EP0_OUT 端点0的接收器接收到数据,OUT成功

08H USB_INT_EP0_IN 端点0的发送器发送完数据,IN成功

01H USB_INT_EP1_OUT 辅助端点/端点1接收到数据,OUT成功09H USB_INT_EP1_IN 中断端点/端点1发送完数据,IN成功

02H USB_INT_EP2_OUT 批量端点/端点2接收到数据,OUT成功

0AH USB_INT_EP2_IN 批量端点/端点2发送完数据,IN成功

05H USB_INT_USB_SUSPEND USB总线挂起事件(如果已CHK_SUSPEND)06H USB_INT_WAKE_UP 从睡眠中被唤醒事件(如果已ENTER_SLEEP)

5.9. 命令UNLOCK_USB

该命令释放当前USB缓冲区。为了防止缓冲区覆盖,CH372向单片机请求中断前首先锁定当前缓冲区,暂停所有的USB通讯,直到单片机通过UNLOCK_USB命令释放当前缓冲区,或者通过RD_USB_DATA 命令读取数据后才会释放当前缓冲区。该命令不能多执行,也不能少执行。

5.10. 命令RD_USB_DATA0

该命令从当前USB中断的端点缓冲区中读取数据块。首先读取的输出数据是数据块长度,也就是后续数据流的字节数。数据块长度的有效值是0至64,如果长度不为0,则单片机必须将后续数据从CH372逐个读取完。该命令与RD_USB_DATA命令的唯一区别是后者在读取完成后还会自动释放当前USB 缓冲区(相当于再加上UNLOCK_USB命令)。

5.11. 命令RD_USB_DATA

该命令从当前USB中断的端点缓冲区中读取数据块并释放当前缓冲区。首先读取的输出数据是数据块长度,也就是后续数据流的字节数。数据块长度的有效值是0至64,如果长度不为0,则单片机必须将后续数据从CH372逐个读取完;读取数据后,CH372自动释放USB当前缓冲区,从而可以继续接收USB主机发来的数据。

5.12. 命令WR_USB_DATA5

该命令向USB端点1的上传缓冲区写入数据块,在内置固件模式下,USB端点1就是中断端点。首先写入的输入数据是数据块长度,也就是后续数据流的字节数。数据块长度的有效值是0至8,如果长度不为0,则单片机必须将后续数据逐个写入CH372。

5.13. 命令WR_USB_DATA7

该命令向USB端点2的上传缓冲区写入数据块,在内置固件模式下,USB端点2就是批量端点。首先写入的输入数据是数据块长度,也就是后续数据流的字节数。数据块长度的有效值是0至64,如果长度不为0,则单片机必须将后续数据逐个写入CH372。

6、功能说明

6.1. 一般说明

CH372套件包括CH372芯片和计算机端的CH372驱动程序。在本地端,CH372芯片以内置的固件程序自动处理了USB通讯中的基本事务;在计算机端,驱动程序以及动态链接库等软件向计算机应用层提供应用层接口。

6.2. 本地端的硬件

CH372芯片的被动并行接口包括:8位双向数据总线D7~D0、读选通输入引脚RD#、写选通输入引脚WR#、片选输入引脚CS#、中断输出引脚INT#以及地址输入引脚A0。通过被动并行接口,CH372

芯片可以很方便地挂接到各种8位单片机、DSP、MCU的系统总线上,并且可以与多个外围器件共存。

CH372芯片的RD#和WR#可以分别连接到单片机的读选通输出引脚和写选通输出引脚。CS#由地址译码电路驱动,用于当单片机具有多个外围器件时进行设备选择。INT#输出的中断请求是低电平有效,可以连接到单片机的中断输入引脚或者普通I/O引脚,单片机可以使用中断方式或者查询方式获知中断请求。

当WR#为高电平并且CS#和RD#及A0都为低电平时,CH372中的数据通过D7~D0输出;当RD#为高电平并且CS#和WR#及A0都为低电平时,D7~D0上的数据被写入CH372芯片中;当RD#为高电平并且CS#和WR#都为低电平而A1为高电平时,D7~D0上的数据被作为命令码写入CH372芯片中。

CH372芯片占用两个地址位,当A0引脚为高电平时选择命令端口,可以写入新的命令,或者读出中断标志;当A0引脚为低电平时选择数据端口,可以读写数据。

下表为并口I/O操作的真值表(表中X代表不关心此位,Z代表CH372三态禁止)。

CS# WR# RD# A0 D7-D0 对CH372芯片的实际操作

1 X X X X/Z 未选中CH372,不进行任何操作

0 1 1 X X/Z 虽然选中但无操作,不进行任何操作

0 0 1/X 1 输入向CH372的命令端口写入命令码

0 0 1/X 0 输入向CH372的数据端口写入数据

0 1 0 0 输出从CH372的数据端口读出数据

0 1 0 1 输出从CH372B的命令端口读取中断标志,位7等效于INT#引脚

CH372芯片的UD+和UD-引脚应该直接连接到USB总线上。如果为了芯片安全而串接保险电阻或者电感或者ESD保护器件,那么交直流等效串联电阻应该在5Ω之内。

CH372芯片内置了电源上电复位电路,一般情况下,不需要外部提供复位。

CH372芯片正常工作时需要外部为其提供12MHz的时钟信号。一般情况下,时钟信号由CH372内置的反相器通过晶体稳频振荡产生。外围电路只需要在XI和XO引脚之间连接一个标称频率为12MHz 的晶体,并且分别为XI和XO引脚对地连接一个高频振荡电容。如果从外部直接输入12MHz时钟信号,那么应该从XI引脚输入,而XO引脚悬空。

CH372B芯片支持3.3V或者5V电源电压。当使用5V工作电压时,CH372芯片的VCC引脚输入外部5V电源,并且V3引脚应该外接容量为4700pF到0.02uF左右的电源退耦电容。当使用3.3V工作电压时,CH372芯片的V3引脚应该与VCC引脚相连接,同时输入外部的3.3V电源,并且与CH372芯片相连接的其它电路的工作电压不能超过3.3V。

6.3. 内部结构

CH372芯片内部集成了PLL倍频器、USB接口SIE、数据缓冲区、被动并行接口、命令解释器、通用的固件程序等主要部件。

PLL倍频器用于将外部输入的12MHz时钟倍频到48MHz,作为USB接口SIE时钟。

USB接口SIE用于完成物理的USB数据接收和发送,自动处理位跟踪和同步、NRZI编码和解码、位填充、并行数据与串行数据之间的转换、CRC数据校验、事务握手、出错重试、USB总线状态检测等。

数据缓冲区用于缓冲USB接口SIE收发的数据。

被动并行接口用于与外部单片机/DSP/MCU交换数据。

命令解释器用于分析并执行外部单片机/DSP/MCU提交的各种命令。

通用的固件程序用于自动处理USB默认端点0的各种标准事务等。

CH372芯片内部具有5个物理端点:

端点0是默认端点,支持上传和下传,上传和下传缓冲区各是8个字节;

端点1包括上传端点和下传端点,上传和下传缓冲区各是8个字节,上传端点的端点号是81H,下传端点的端点号是01H;

端点2包括上传端点和下传端点,上传和下传缓冲区各是64个字节,上传端点的端点号是82H,下传端点的端点号是02H。

在内置固件模式下,端点2的上传端点作为批量数据发送端点,端点2的下传端点作为批量数据接收端点,端点1的上传端点作为中断端点,端点1的下传端点作为辅助端点。

在外部固件模式下,端点0作为默认端点,端点1和端点2可以根据USB产品的需要选择使用,并且可以由外部固件提供的描述符分别定义其用途。通常情况下,端点2作为数据传输的主端点,如果USB产品需要,可以将端点1作为辅助端点。

下图为CH372芯片内部的中断逻辑图。

6.4. 本地端的单片机软件

CH372芯片占用两个地址位,当A0引脚为高电平时选择命令端口,可以写入命令;当A0引脚为低电平时选择数据端口,可以读写数据。

单片机通过8位并口对CH372芯片进行读写,所有操作都是由一个命令码、若干个输入数据和若干个输出数据组成,部分命令不需要输入数据,部分命令没有输出数据。命令操作步骤如下:

①、在A0=1时向命令端口写入命令代码;

②、如果该命令具有输入数据,则在A0=0时依次写入输入数据,每次一个字节;

③、如果该命令具有输出数据,则在A0=0时依次读取输出数据,每次一个字节;

④、命令完成,可以暂停或者转到①继续执行下一个命令。

CH372芯片专门用于处理USB通讯,在接收到数据后或者发送完数据后,CH372以中断方式通知单片机进行处理。

单片机通过CH372芯片接收数据的处理步骤如下:

①、当CH372接收到USB主机发来的数据后,首先锁定当前USB缓冲区,防止被后续数据覆盖,

然后将INT#引脚设置为低电平,向单片机请求中断;

②、单片机进入中断服务程序,首先执行GET_STATUS命令获取中断状态;

③、CH372在GET_STATUS命令完成后将INT#引脚恢复为高电平,取消中断请求;

④、由于通过上述GET_STATUS命令获取的中断状态是“下传成功”,所以单片机执行

RD_USB_DATA命令从CH372读取接收到的数据;

⑤、CH372在RD_USB_DATA命令完成后释放当前缓冲区,从而可以继续USB通讯;

⑥、单片机退出中断服务程序。

单片机通过CH372芯片发送数据的处理步骤如下:

①、单片机执行WR_USB_DATA命令向CH372写入要发送的数据;

②、CH372被动地等待USB主机在需要时取走数据;

③、当USB主机取走数据后,CH372首先锁定当前USB缓冲区,防止重复发送数据,然后将INT#

引脚设置为低电平,向单片机请求中断;

④、单片机进入中断服务程序,首先执行GET_STATUS命令获取中断状态;

⑤、CH372在GET_STATUS命令完成后将INT#引脚恢复为高电平,取消中断请求;

⑥、由于通过上述GET_STATUS命令获取的中断状态是“上传成功”,所以单片机执行

WR_USB_DATA命令向CH372写入另一组要发送的数据,如果没有后续数据需要发送,那么

单片机不必执行WR_USB_DATA命令;

⑦、单片机执行UNLOCK_USB命令;

⑧、CH372在UNLOCK_USB命令完成后释放当前缓冲区,从而可以继续USB通讯;

⑨、单片机退出中断服务程序;

⑩、如果单片机已经写入了另一组要发送的数据,那么转到②,否则结束。

6.5. 计算机端的软件接口

CH372在计算机端提供了应用层接口,应用层接口是由CH372动态链接库DLL提供的面向功能应用的API,所有API在调用后都有操作状态返回,但不一定有应答数据。

CH372动态链接库提供的API包括:设备管理API、数据传输API、中断处理API。

有关API参数的说明请参考CH372DLL.H或者CH375DLL.H。

设备管理API:

打开设备:CH375OpenDevice

关闭设备:CH375CloseDevice

获取USB设备描述符:CH375GetDeviceDescr

获取USB配置描述符:CH375GetConfigDescr

复位USB设备:CH375ResetDevice

设置USB数据读写的超时:CH375SetTimeout

设置独占使用当前CH375设备:CH375SetExclusive

设定内部缓冲上传模式:CH375SetBufUpload

查询内部上传缓冲区中的已有数据包个数:CH375QueryBufUpload

设定USB设备插入和拔出时的事件通知程序:CH375SetDeviceNotify

数据传输API:

读取数据块(数据上传):CH375ReadData

写出数据块(数据下传):CH375WriteData

放弃数据块读操作:CH375AbortRead

放弃数据块写操作:CH375AbortWrite

写出辅助数据(辅助数据下传):CH375WriteAuxData

中断处理API:

读取中断数据:CH375ReadInter

放弃中断数据读操作:CH375AbortInter

设定中断服务程序:CH375SetIntRoutine

6.6. 端对端的USB传输(供应用层设计参考)

CH372在计算机应用层与本地端单片机之间提供了端对端的连接,在这个基础上,USB产品的设计人员可以选用两种通讯方式:单向数据流方式、请求加应答方式。前者使用两个方向相反的单向数据流进行通讯,具有相对较高的数据传输速率,但是数据不容易同步;后者使用主动请求和被动应答的查询方式进行通讯,数据自动同步,具有较好的交互性和可控性,程序设计简单,但是数据传输速率相对较低。

6.6.1. 逻辑结构

CH372提供了4个相互独立的端对端的逻辑传输通道,分别称为:数据上传管道、数据下传管道、中断上传管道、辅助数据下传管道。CH372并未定义各个管道的用途,也未定义其数据格式,所以USB 产品的设计人员可以根据需要自行定义其用途,并在上位机与下位机之间约定各个传输通道中的数据格式。

下面的逻辑结构图只适用于内置固件模式,所以没有包含默认端点0。除了图中的3个管道之外,CH372芯片还提供辅助数据下传管道,与数据下传管道类似,但是有4个区别:上位机的API是WriteAuxData;下位机的辅助数据下传端点是01H;单次最大长度是8字节;中断状态是01H。

6.6.2. 单向数据流方式

单向数据流方式使用一个上传数据流和一个下传数据流进行双向数据通讯,两个数据流之间完全独立。

下传数据流是由计算机应用层通过数据下传API发起的,CH372芯片以64个字节为一组,将一个较大的数据块分成多组提交给单片机;如果应用层发送150个字节的数据块,则单片机会被中断3次,前两次各获取64个字节,最后一次获取22个字节。

上传数据流的发起方式有两种:一种是查询方式,指计算机应用层定期以查询方式发起;另一种是伪中断方式,指单片机以中断数据通知计算机应用层,再由计算机应用层发起。因为USB总线是主从式结构,只有在计算机主动联系USB设备时,USB设备才能向计算机上传数据。

上传数据流以查询方式发起的系统中,计算机应用层总是通过数据上传API尝试读取数据。当单片机没有数据需要上传时,计算机应用层就会一直等待(如果设置USB读超时则会退出),实际上该应用层程序的线程将会被操作系统挂起。当单片机需要上传数据时,应该将数据写入CH372批量端点的上传缓冲区中,接着计算机应用层自动取走数据,然后CH372芯片以中断方式通知单片机上传成功,以便单片机继续上传后续数据。使用这种方式,建议用CH375SetBufUpload设定内部缓冲上传。

上传数据流以伪中断方式发起的系统中,计算机应用层初始化时设置一个伪中断服务程序,然后应用层就不需要再涉及到上传数据流。当单片机需要上传数据时,首先将数据写入批量端点的上传缓冲区中,然后将中断特征数据写入中断端点的上传缓冲区中。在1毫秒之内(理论值),与中断特征数据对应的伪中断服务程序被激活,伪中断服务程序通知主程序调用数据上传API获得上传数据块。在此期间,单片机将会收到CH372芯片通知的两次中断,首先是中断端点上传成功中断,然后是批量端点上传成功中断。

6.6.3. 请求加应答方式

请求加应答方式使用一个下传的主动请求和一个上传的被动应答进行交互式的双向数据通讯,下传与上传一一对应,相互关联。

主动请求是指由计算机应用层下传给单片机的数据请求,被动应答是指在单片机收到数据请求后,上传给计算机应用层的应答数据。所有的通讯都由计算机应用层发起,然后以接收到单片机的应答结束,完整的过程包括:

① 计算机应用层按事先约定的格式将数据请求发送给CH372芯片; ② CH372芯片以中断方式通知单片机;

③ 单片机进入中断服务程序,获取CH372的中断状态并分析; ④ 如果是上传,则释放当前USB 缓冲区,然后退出中断程序; ⑤ 如果是下传,则从数据下传缓冲区中读取数据块;

⑥ 分析接收到的数据块,准备应答数据,也可以先退出中断程序再处理; ⑦ 单片机将应答数据写入批量端点的上传缓冲区中,然后退出中断程序; ⑧ CH372芯片将应答数据返回给计算机; ⑨ 计算机应用层接收到应答数据。

7、参数

7.1. 绝对最大值(临界或者超过绝对最大值将可能导致芯片工作不正常甚至损坏)

名称 参数说明

最小值 最大值 单位 CH372B 芯片,VCC=5V -40 85 TA 工作时的环境温度

CH372B 芯片,VCC=3.3V

-40 85 ℃ TS 储存时的环境温度

-55 125 ℃ VCC 电源电压(VCC 接电源,GND 接地)

-0.5 6.5 V VIO 输入或者输出引脚上的电压

-0.5

VCC+0.5

V

7.2. 电气参数(测试条件:TA=25℃,VCC=5V ,不包括连接USB 总线的引脚)

(如果电源电压为3.3V ,则表中所有电流参数需要乘以40%的系数) 名称 参数说明 最小值 典型值 最大值

单位 CH372B 芯片,V3不连VCC 4.5 5 5.3

VCC 电源电压

CH372B 芯片,V3连接VCC 3.3 3.3 3.6

V VCC=5V 12 30

ICC 工作时的总电源电流

VCC=3.3V 6 15

mA VCC=5V 0.15

ISLP

低功耗状态的电源电流 I/O 引脚悬空/内部上拉 VCC=3.3V 0.05

mA VIL 低电平输入电压 -0.5 0.7 V VIH 高电平输入电压 2.0 VCC+0.5 V VOL 低电平输出电压(4mA 吸入电流) 0.5 V VOH 高电平输出电压(4mA 输出电流) VCC-0.5 V IUP 内置上拉电阻的输入端的输入电流 40 80 160 uA VR 电源上电复位的电压门限 2.4 2.7 3.0 V

注:在CH372芯片复位期间INT#引脚只能提供80uA 的高电平输出电流。

7.3. 时序参数(测试条件:TA=25℃,VCC=5V ,参考附图)

(RD 是指RD#信号有效并且CS#信号有效,RD#=CS#=0执行读操作) (WR 是指WR#信号有效并且CS#信号有效,WR#=CS#=0执行写操作)

名称参数说明最小值典型值最大值单位FCLK XI引脚的输入时钟信号的频率11.98 12.00 12.02 MHz TPR 内部电源上电的复位时间18 30 40 mS TE1 RESET_ALL命令的执行时间30 40 mS TE2 SET_USB_MODE命令的执行时间10 20 uS TE3 SET_ENDP?命令的执行时间 2 4 uS TE0 其余命令的执行时间 1.5 2 uS TSX CH372B命令码与命令码之间的间隔时间 1.5 uS TSC CH372B命令码与数据之间的间隔时间 1.5 1000 uS TSD CH372B数据与数据之间的间隔时间0.6 1000 uS TWW 有效的写选通脉冲WR的宽度60 10000 nS TRW 有效的读选通脉冲RD的宽度60 10000 nS TAS RD或WR前的地址输入建立时间 5 nS TAH RD或WR后的地址输入保持时间 5 nS TIS 写选通WR前的数据输入建立时间0 nS TIH 写选通WR后的数据输入保持时间 5 nS TON 读选通RD有效到数据输出有效0 30 nS TOF 读选通RD无效到数据输出无效0 20 nS

TINT

收到GET_STATUS命令

到INT#引脚撤消中断请求

1.5 3 uS

TWAK 从低功耗状态退出的唤醒时间 2 6 10 mS 8、应用

8.1. 连接USB总线(下图)

P1是USB端口,USB总线包括一对5V电源线和一对数据信号线,通常,+5V电源线是红色,接地线是黑色,D+信号线是绿色,D-信号线是白色。USB总线提供的电源电流最大可以达到500mA,一般情况下,低功耗的USB产品可以直接使用USB总线提供的5V电源。如果USB产品通过其它供电方式提供常备电源,那么CH372应该与单片机一起使用该常备电源并且断开USB总线的电源;如果需要同时使用USB总线的电源,那么可以通过阻值约为1Ω的电阻R1连接USB总线的5V电源线与USB产品的5V常备电源,并且两者的接地线直接相连接。

图中,可选电阻R2用于在电源断电后将电解电容C5中的电能及时释放掉,使VCC及时下降到0V,确保在下次通电时CH372能够可靠地上电复位。为使CH372能够可靠复位,电源电压从0V上升到5V的上升时间应该少于100mS,所以电容C5的容量和电阻R1的阻值都不能太大。

电容C3用于CH372内部电源节点退耦,C3是容量为4700pF到0.02μF的独石或者高频瓷片电容。电容C4和C5用于外部电源退耦,C4是容量为0.1μF的独石或者高频瓷片电容。晶体X1、电容C1和C2用于CH372的时钟振荡电路。晶体X1的频率是12MHz,C1和C2是容量为15pF~30pF的独石或者高频瓷片电容。

如果CH372的电源电压为3.3V,那么应该将V3引脚与VCC引脚短接,共同输入3.3V电压,并且电容C3可以省掉。

在设计印刷线路板PCB时,需要注意:退耦电容C3和C4尽量靠近CH372的相连引脚;使D+和D-信号线贴近平行布线,尽量在两侧提供地线或者覆铜,减少来自外界的信号干扰;尽量缩短XI和XO引脚相关信号线的长度,为了减少高频时钟对外界的干扰,可以在相关元器件周边环绕地线或者覆铜。

8.2. 连接单片机总线(总线扩展)

CH372芯片具有通用的被动并行接口,可以直接连接多种单片机、DSP、MCU等。在普通的MCS-51系列单片机的典型应用电路中,CH372芯片可以通过8位被动并行接口的D7~D0、-RD、-WR、-CS、A0直接挂接到单片机U2的系统总线上。

如果MCS-51单片机没有用U3锁存A7~A0地址,那么可以用U2的P20等引脚驱动CH372的地址线A0,当然单片机程序中的端口地址需要相应修改。U4用于简单的地址译码,产生所需的片选信号,图中CH372芯片的片选地址范围为B000H-BFFFH,而实际上CH372只需要占用两个地址:地址BXX1H 用于写命令,地址BXX0H用于读写数据。

8.3. 连接单片机I/O(非总线扩展)

在没有外部扩展总线的单片机系统中,单片机也可以用普通的I/O引脚模拟出8位并口时序操作CH372芯片。

在普通的MCS-51系列简化单片机的典型应用电路中,CH372的CS#固定为低电平,一直处于片选状态,U5的P1端口作为8位双向数据总线,在单片机程序中,可以控制各个I/O引脚模拟并口时序与CH372进行数据交换。

图中电路精简,可以用于软件狗、USB加密锁、USB转串口或RS485等。

8.4. 单片机接口程序

请参考CH372评估板资料中的详细说明。

相关文档