CH375中文手册(一)1USB总线接口芯片CH375中文手册版本:3B、概述CH375是一个USB总线的通用接口芯片,支持USB-HOST主机方式和USB-DEVICE/SLAVE设备方式。在本地端,CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上。在USB主机方式下,CH375还提供了串行通讯方式,通过串行输入、串行输出和中断输出与单片机/DSP/MCU/MPU等相连接。CH375的USB设备方式与CH372芯片完全兼容,CH375包含了CH372的全部功能。本手册中没有提供CH375在USB设备方式下的说明,相关资料可以参考CH372手册CH372DS1.PDF。CH375的USB主机方式支持常用的USB全速设备,外部单片机可以通过CH375按照相应的USB协议与USB设备通讯。CH375还内置了处理Mass-Storage海量存储设备的专用通讯协议的固件,外部单片机可以直接以扇区为基本单位读写常用的USB存储设备(包括USB硬盘/USB闪存盘/U盘)。2、特点●全速USB-HOST主机接口,兼容USBV2.0,外围元器件只需要晶体和电容。●全速USB设备接口,完全兼容CH372芯片,支持动态切换主机与设备方式。●主机端点输入和输出缓冲区各64字节,支持常用的12Mbps全速USB设备。●支持USB设备的控制传输、批量传输、中断传输。●自动检测USB设备的连接和断开,提供设备连接和断开的事件通知。●内置控制传输的协议处理器,简化常用的控制传输。●内置固件处理海量存储设备的专用通讯协议,支持Bulk-Only传输协议和SCSI、UFI、RBC或等效命令集的USB存储设备(包括USB硬盘/USB闪存盘/U盘)。●通过U盘文件级子程序库实现单片机读写USB存储设备中的文件。●并行接口包含8位数据总线,4线控制:读选通、写选通、片选输入、中断输出。●串行接口包含串行输入、串行输出、中断输出,支持通讯波特率动态调整。●支持5V电源电压和3.3V电源电压,CH375A芯片还支持低功耗模式。●采用SOP-28封装,可以提供SOP28到DIP28的转换板。CS#INT#D-D+WR#RD#A0D[7-0]CH375接口芯片本地端控制器单片机DSPMCUMPU等计算机或USB设备例如:USB打印机USB闪存盘外置硬盘U盘/闪盘等CH375中文手册(一)23、封装封装形式塑体宽度引脚间距封装说明订货型号SOP-287.62mm300mil1.27mm50mil标准的28脚贴片CH375S/A注:订货时需要注明5V电源电压和3.3V电源电压4、引脚引脚号引脚名称类型引脚说明28VCC电源正电源输入端,需要外接0.1uF电源退耦电容12、23GND电源公共接地端,需要连接USB总线的地线9V3电源在3.3V电源电压时连接VCC输入外部电源,在5V电源电压时外接容量为0.01uF退耦电容13XI输入晶体振荡的输入端,需要外接晶体及振荡电容14XO输出晶体振荡的反相输出端,需要外接晶体及振荡电容10UD+双向三态USB总线的D+数据线,内置可控的上拉电阻11UD-双向三态USB总线的D-数据线22~15D7~D0双向三态8位双向数据总线,内置上拉电阻4RD#输入读选通输入,低电平有效,内置上拉电阻3WR#输入写选通输入,低电平有效,内置上拉电阻27CS#输入片选控制输入,低电平有效,内置上拉电阻1INT#输出在复位完成后为中断请求输出,低电平有效8A0输入地址线输入,区分命令口与数据口,内置上拉电阻,当A0=1时可以写命令,当A0=0时可以读写数据24ACT#输出在内置固件的USB设备方式下是USB设备配置完成状态输出,低电平有效。对于CH375A芯片,在USB主机方式下是USB设备连接状态输出,低电平有效5TXD输入输出仅用于USB主机方式,设备方式只支持并口,在复位期间为输入引脚,内置上拉电阻,如果在复位期间输入低电平那么使能并口,否则使能串口,复位完成后为串行数据输出6RXD输入串行数据输入,内置上拉电阻2RSTI输入外部复位输入,高电平有效,内置下拉电阻25RST输出电源上电复位和外部复位输出,高电平有效26RST#输出电源上电复位和外部复位输出,低电平有效7NC.空脚空脚,必须悬空CH375中文手册(一)35、命令本手册中的数据,后缀B为二进制数,后缀H为十六进制数,否则为十进制数。本手册中所指的单片机基本适用于DSP或者MCU/MPU等。本手册主要提供了USB存储设备类命令,专用于USB海量存储设备,关于执行事务命令以及常用控制传输命令请参考手册(二)。代码命令名称输入数据输出数据命令用途05HRESET_ALL(等40mS)执行硬件复位06HCHECK_EXIST任意数据按位取反测试工作状态15HSET_USB_MODE模式代码(等20uS)操作状态设置USB工作模式22HGET_STATUS中断状态获取中断状态并取消请求分频系数02HSET_BAUDRATE分频常数(等1mS)操作状态设置串口通讯波特率数据长度28HRD_USB_DATA数据流从当前USB中断的端点缓冲区读取数据块数据长度2BHWR_USB_DATA7数据流向USB主机端点的输出缓冲区写入数据块17HABORT_NAK放弃当前NAK的重试51HDISK_INIT产生中断初始化USB存储设备53HDISK_SIZE产生中断获取USB存储设备的容量LBA地址54HDISK_READ扇区数产生中断从USB存储设备读数据块55HDISK_RD_GO产生中断继续USB存储设备的读操作LBA地址56HDISK_WRITE扇区数产生中断向USB存储设备写数据块57HDISK_WR_GO产生中断继续USB存储设备的写操作以下命令仅适用于CH375A芯片01HGET_IC_VER版本号获取芯片及固件版本03HENTER_SLEEP进入低功耗睡眠挂起状态数据34H0BHSET_DISK_LUN逻辑单元号设置USB存储设备的当前逻辑单元号58HDISK_INQUIRY产生中断查询USB存储设备的特性59HDISK_READY产生中断检查USB存储设备是否就绪5AHDISK_R_SENSE产生中断检查USB存储设备的错误5DHDISK_MAX_LUN产生中断获取USB存储设备的最大单元号如果命令的输出数据是操作状态,参考下表。状态代码状态名称状态说明51HCMD_RET_SUCCESS操作成功5FHCMD_RET_ABORT操作失败5.1.命令RESET_ALL该命令使CH375执行硬件复位。通常情况下,硬件复位在40mS时间之内完成。CH375中文手册(一)45.2.命令CHECK_EXIST该命令测试工作状态,以检查CH375是否正常工作。该命令需要输入1个数据,可以是任意数据,如果CH375正常工作,那么CH375的输出数据是输入数据的按位取反。例如,输入数据是57H,则输出数据是A8H。5.3.命令SET_USB_MODE该命令设置USB工作模式。该命令需要输入1个数据,该数据是模式代码:模式代码为00H时切换到未启用的USB设备方式(上电或复位后的默认方式);模式代码为01H时切换到已启用的USB设备方式,外部固件模式;模式代码为02H时切换到已启用的USB设备方式,内置固件模式;模式代码为04H时切换到未启用的USB主机方式;模式代码为05H时切换到已启用的USB主机方式,不产生SOF包;模式代码为06H时切换到已启用的USB主机方式,自动产生SOF包;模式代码为07H时切换到已启用的USB主机方式,复位USB总线;关于USB设备方式请参考CH372手册。在USB主机方式下,未启用是指不自动检测USB设备是否连接,所以需要外部单片机检测;启用是指自动检测USB设备是否连接,当USB设备连接或者断开时都会产生中断通知外部单片机。在切换到模式代码06H后,CH375会自动定时产生USB帧周期开始包SOF发送给已经连接的USB设备。模式代码07H通常用于向已经连接的USB设备提供USB总线复位状态,当切换到其它工作模式后,USB总线复位才会结束。通常情况下,设置USB工作模式在20uS时间之内完成,完成后输出操作状态。5.4.命令GET_STATUS该命令获取CH375的中断状态并通知CH375取消中断请求。当CH375向单片机请求中断后,单片机通过该命令获取中断状态,分析中断原因并处理。中断状态字节中断状态的分类00H~0FHUSB设备方式的中断状态,请参考CH372手册10H~1FHUSB主机方式的常用中断状态20H~3FHUSB主机方式的操作失败状态,用于分析操作失败原因下面是USB主机方式的常用中断状态。状态字节状态名称中断状态分析说明14HUSB_INT_SUCCESSUSB事务或者传输操作成功15HUSB_INT_CONNECT检测到USB设备连接事件16HUSB_INT_DISCONNECT检测到USB设备断开事件17HUSB_INT_BUF_OVERUSB控制传输的数据太多,缓冲区溢出1DHUSB_INT_DISK_READUSB存储设备读操作,请求数据读出1EHUSB_INT_DISK_WRITEUSB存储设备写操作,请求数据写入1FHUSB_INT_DISK_ERRUSB存储设备操作失败下面是USB主机方式的操作失败状态,通常用于分析操作失败原因。中断状态字节名称中断状态分析说明位7~位6(保留位)总是00位5(标志位)总是1,指示该状态是操作失败状态位4IN事务的同步标志对于IN事务,如果该位为0则当前接收的数据包不同步,数据可能无效1010=设备返回NAK1110=设备返回STALLXX00=设备返回超时,设备没有返回位3~位0导致操作失败时的USB设备的返回值其它值是设备返回的PIDCH375中文手册(一)55.5.命令SET_BAUDRATE该命令设置CH375的串口通讯波特率。在CH375工作于串口通讯方式时,复位后默认的通讯波特率是9600bps,如果单片机支持较高的通讯速度,可以通过该命令动态调整串口通讯波特率。该命令需要输入两个数据,分别是波特率分频系数和分频常数。通常情况下,设置串口通讯波特率在1mS时间之内完成,完成后CH375以新设定的通讯波特率输出操作状态,所以单片机应该在发出命令后及时调整自身的通讯波特率。下面是串口通讯波特率对应的分频系数和分频常数。分频系数分频常数串口通讯波特率(bps)误差02HB2H96000.16%02HD9H192000.16%03H98H576000.16%03HCCH1152000.16%03HF3H4608000.16%07HF3H9216000.16%03HC4H1000000%03HFAH10000000%03HFDH20000000%02H常数计算公式:750000/(256-常数)03H常数计算公式:6000000/(256-常数)5.6.命令RD_USB_DATA该命令从当前USB中断的端点缓冲区中读取数据块。在USB主机方式下,USB中断的端点缓冲区就是USB主机端点的输入缓冲区。首先读取的输出数据是数据块长度,也就是后续数据流的字节数。数据块长度的有效值是0至64,如果长度不为0,则单片机必须将后续数据从CH375逐个读取完。5.7.命令WR_USB_DATA7该命令向USB主机端点的输出缓冲区或者USB端点2的上传缓冲区写入数据块。首先写入的输入数据是数据块长度,也就是后续数据流的字节数。数据块长度的有效值是0至64,如果长度不为0,则单片机必须将后续数据逐个写入CH375。5.8.命令ABORT_NAK该命令放弃当前NAK的重试。CH375工作于USB主机方式时,默认情况下,CH375在收到USB设备返回的NAK状态时,将不断重试直到返回成功或者错误。该命令可以强制CH375终止重试,以便执行新的操作。另外,使用SET_RETRY命令可以设置禁止NAK重试。5.9.