没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
CH376 手册(一)
1
U 盘和 SD 卡文件管理控制芯片 CH376
手册
版本:1A
http://wch.cn
1、概述
CH376 是文件管理控制芯片,用于单片机系统读写 U 盘或者 SD 卡中的文件。
CH376 支持 USB 设备方式和 USB 主机方式,并且内置了 USB 通讯协议的基本固件,内置了处理
Mass-Storage 海量存储设备的专用通讯协议的固件,内置了 SD 卡的通讯接口固件,内置了 FAT16 和
FAT32 以及 FAT12 文件系统的管理固件,支持常用的 USB 存储设备(包括 U 盘/USB 硬盘/USB 闪存盘
/USB 读卡器)和 SD 卡(包括标准容量 SD 卡和高容量 HC-SD 卡以及协议兼容的 MMC 卡和 TF 卡)。
CH376 支持三种通讯接口:8 位并口、SPI 接口或者异步串口,单片机/DSP/MCU/MPU 等控制器可
以通过上述任何一种通讯接口控制 CH376 芯片,存取 U 盘或者 SD 卡中的文件或者与计算机通讯。
CH376 的 USB 设备方式与 CH372 芯片完全兼容,CH376 的 USB 主机方式与 CH375 芯片基本兼容。
下图为 CH376 的应用框图。
2、特点
● 支持 1.5Mbps 低速和 12Mbps 全速 USB 通讯,兼容 USB V2.0,外围元器件只需要晶体和电容。
● 支持 USB-HOST 主机接口和 USB-DEVICE 设备接口,支持动态切换主机方式与设备方式。
● 支持 USB 设备的控制传输、批量传输、中断传输。
● 自动检测 USB 设备的连接和断开,提供设备连接和断开的事件通知。
● 提供 6MHz 的 SPI 主机接口,支持 SD 卡以及与其协议兼容的 MMC 卡和 TF 卡等。
● 内置 USB 控制传输的协议处理器,简化常用的控制传输。
● 内置固件处理海量存储设备的专用通讯协议,支持 Bulk-Only 传输协议和 SCSI、UFI、RBC 或
等效命令集的 USB 存储设备(包括 U 盘/USB 硬盘/USB 闪存盘/USB 读卡器)。
● 内置 FAT16 和 FAT32 以及 FAT12 文件系统的管理固件,支持容量高达 32GB 的 U 盘和 SD 卡。
● 提供文件管理功能:打开、新建或删除文件、枚举和搜索文件、创建子目录、支持长文件名。
● 提供文件读写功能:以字节为最小单位或者以扇区为单位对多级子目录下的文件进行读写。
INT#
CH376 芯片
本地端
控制器
单片机
DSP
MCU
MPU
等
计算机或
USB 设备
例如:
USB 闪存盘
U 盘/读卡器
USB 打印机
USB 键盘
USB 鼠标
D0-D7
A0
RD#
WR#
PCS#
并行总线
8 位
被动
并口
SPI
设备
接口
异步
串口
SCS
SCK
MOSI => SDI
MISO <= SDO
SPI
总线
TXD => RXD
RXD <= TXD
串口
UART
D+
D-
USB
总线
USB-Device
SD 卡接口
SPI Host
高速 MCU
ROM
RAM
USB 固件
文件系统
管理固件
USB-Host
USB-PhyI/O
SDCS
SDCK
SDDO
SDDI
SPI
接口
SD 卡以及
协议兼容卡
例如:
MMC 卡
Mini-SD 卡
TF
卡
CH376 手册(一)
2
● 提供磁盘管理功能:初始化磁盘、查询物理容量、查询剩余空间、物理扇区读写。
● 提供 2MB 速度的 8 位被动并行接口,支持连接到单片机的并行数据总线。
● 提供 2MB/24MHz 速度的 SPI 设备接口,支持连接到单片机的 SPI 串行总线。
● 提供最高 3Mbps 速度的异步串口,支持连接到单片机的串行口,支持通讯波特率动态调整。
● 支持 5V 电源电压和 3.3V 电源电压以及 3V 电源电压,支持低功耗模式。
● USB 设备方式完全兼容 CH372 芯片;USB 主机方式基本兼容 CH375 芯片。
● 提供 SOP-28 和 SSOP20 无铅封装,兼容 RoHS,提供 SOP28 到 DIP28 的转换板,SOP28 封装的
引脚基本兼容 CH375 芯片。
3、封装
封装形式 塑体宽度 引脚间距 封装说明 订货型号
SOP-28 7.62mm 300mil 1.27mm 50mil 标准的 28 脚贴片 CH376S
SSOP-20 5.30mm 209mil 0.65mm 25mil 超小型 20 脚贴片 CH376T
4、引脚
CH376S
引脚号
CH376T
引脚号
引脚
名称
类型 引脚说明
28 20 VCC 电源 正电源输入端,需要外接 0.1uF 电源退耦电容
12 10 GND 电源 公共接地端,需要连接 USB 总线的地线
9 7 V3 电源
在 3.3V 电源电压时连接 VCC 输入外部电源,
在 5V 电源电压时外接容量为 0.01uF 退耦电容
13 11 XI 输入 晶体振荡的输入端,需要外接 12MHz 晶体
14 12 XO 输出 晶体振荡的反相输出端,需要外接 12MHz 晶体
10 8 UD+ USB 信号
USB 总线的 D+数据线
11 9 UD- USB 信号
USB 总线的 D-数据线
23 17 SD_CS
开漏输出
SD 卡 SPI 接口的片选输出,低电平有效,内置上拉电阻
26 19 SD_CK
输出 SD 卡 SPI 接口的串行时钟输出
7 6 SD_DI
输入 SD 卡 SPI 接口的串行数据输入,内置上拉电阻
25 18 SD_DO
输出 SD 卡 SPI 接口的串行数据输出
25 18 RST 输出
在进入 SD 卡模式之前是
电源上电复位和外部复位输出,高电平有效
22~15
无 D7~D0
双向三态
并口的 8 位双向数据总线,内置上拉电阻
18 13 SCS 输入 SPI 接口的片选输入,低电平有效,内置上拉电阻
20 14 SCK 输入 SPI 接口的串行时钟输入,内置上拉电阻
21 15 SDI 输入 SPI 接口的串行数据输入,内置上拉电阻
CH376 手册(一)
3
22 16 SDO 三态输出
SPI 接口的串行数据输出
19 无 BZ 输出 SPI 接口的忙状态输出,高电平有效
8 无 A0 输入
并口的地址输入,区分命令口与数据口,内置上拉电阻,
当 A0=1 时可以写命令或读状态,当 A0=0 时可以读写数据
27 无 PCS# 输入 并口的片选控制输入,低电平有效,内置上拉电阻
4 无 RD# 输入 并口的读选通输入,低电平有效,内置上拉电阻
3 无 WR# 输入 并口的写选通输入,低电平有效,内置上拉电阻
无 3 SPI# 输入 在芯片内部复位期间为接口配置输入,内置上拉电阻
5 4 TXD
输入
输出
在芯片内部复位期间为接口配置输入,内置上拉电阻,
在芯片复位完成后为异步串口的串行数据输出
6 5 RXD 输入 异步串口的串行数据输入,内置上拉电阻
1 1 INT# 输出 中断请求输出,低电平有效,内置上拉电阻
24 无 ACT# 开漏输出
状态输出,低电平有效,内置上拉电阻。
在 USB 主机方式下是 USB 设备正在连接状态输出;
在 SD 卡主机方式下是 SD 卡 SPI 通讯成功状态输出;
在内置固件的 USB 设备方式下是 USB 设备配置完成状态输出
2 2 RSTI 输入 外部复位输入,高电平有效,内置下拉电阻
5、命令
本手册中的数据,后缀 B 为二进制数,后缀 H 为十六进制数,否则为十进制数。
低字节在前(Little-Endian)的双字数据(共 32 位)指:先是最低字节(位 7~位 0),接着是
较低字节(位 15~位 8), 然后是较高字节(位 23~位 16), 最 后 是 最 高 字节(位 31~位 24)。
数据流是指由若干连续字节组成的数据块,数据块的总长度最小为 0,最大为 255。
下表输入数据和输出数据的括号中的数字为参数的字节数,没有括号则默认为一个字节。
本手册中所指的单片机基本适用于 DSP 或者 MCU/MPU/SCM 等。
本手册中所指的 U 盘包括 U 盘、USB 外置硬盘、USB 闪存盘、USB 读卡器等。
本手册中所指的 SD 卡包括 SD 卡、MMC 卡、HC-SD 卡(高容量 SD 卡)、 TF 卡等。
本手册主要提供了常用的文件管理控制类命令,用于 U 盘和 SD 卡。关于一些不太常用的辅助命
令和执行 USB 基本事务及控制传输的命令请参考手册(二)CH376DS2.PDF。
CH376 芯片包含了 CH372 芯片的全部功能,本手册中没有提供 CH376 在 USB 设备方式下的说明,
相关资料可以参考 CH372 手册 CH372DS1.PDF。
代码
命令名称 CMD_ 输入数据 输出数据 命令用途
01H
GET_IC_VER 版本号 获取芯片及固件版本
分频系数
02H
SET_BAUDRATE
分频常数
(等 1mS)
操作状态
设置串口通讯波特率
03H
ENTER_SLEEP 进入低功耗睡眠挂起状态
05H
RESET_ALL (等 35mS) 执行硬件复位
06H
CHECK_EXIST 任意数据 按位取反 测试通讯接口和工作状态
数据 16H
0BH
SET_SDO_INT
中断方式
设置 SPI 的 SDO 引脚的中断方式
0CH
GET_FILE_SIZE 数据 68H 文件长度(4)
获取当前文件长度
15H
SET_USB_MODE 模式代码
(等 10uS)
操作状态
设置 USB 工作模式
22H
GET_STATUS 中断状态 获取中断状态并取消中断请求
数据长度
27H
RD_USB_DATA0
数据流(n)
从当前 USB 中断的端点缓冲区或者
主机端点的接收缓冲区读取数据块
CH376 手册(一)
4
数据长度
2CH
WR_HOST_DATA
数据流(n)
向 USB 主机端点的发送缓冲区
写入数据块
数据长度
2DH
WR_REQ_DATA
数据流(n)
向内部指定缓冲区
写入请求的数据块
偏移地址
数据长度
2EH
WR_OFS_DATA
数据流(n)
向内部缓冲区指定偏移地址
写入数据块
2FH
SET_FILE_NAME 字符串(n) 设置将要操作的文件的文件名
30H
DISK_CONNECT 产生中断 检查磁盘是否连接
31H
DISK_MOUNT 产生中断 初始化磁盘并测试磁盘是否就绪
32H
FILE_OPEN 产生中断 打开文件或目录,枚举文件和目录
33H
FILE_ENUM_GO 产生中断 继续枚举文件和目录
34H
FILE_CREATE 产生中断 新建文件
35H
FILE_ERASE 产生中断 删除文件
36H
FILE_CLOSE 是否允许更新 产生中断 关闭当前已经打开的文件或目录
37H
DIR_INFO_READ 目录索引号 产生中断 读取文件的目录信息
38H
DIR_INFO_SAVE 产生中断 保存文件的目录信息
39H
BYTE_LOCATE 偏移字节数(4)
产生中断 以字节为单位移动当前文件指针
3AH
BYTE_READ 请求字节数(2)
产生中断 以字节为单位从当前位置读取数据块
3BH
BYTE_RD_GO 产生中断 继续字节读
3CH
BYTE_WRITE 请求字节数(2)
产生中断 以字节为单位向当前位置写入数据块
3DH
BYTE_WR_GO 产生中断 继续字节写
3EH
DISK_CAPACITY 产生中断 查询磁盘物理容量
3FH
DISK_QUERY 产生中断 查询磁盘空间信息
40H
DIR_CREATE 产生中断 新建目录并打开或打开已存在的目录
4AH
SEC_LOCATE 偏移扇区数(4)
产生中断 以扇区为单位移动当前文件指针
4BH
SEC_READ 请求扇区数 产生中断 以扇区为单位从当前位置读取数据块
4CH
SEC_WRITE 请求扇区数 产生中断 以扇区为单位在当前位置写入数据块
50H
DISK_BOC_CMD 产生中断 对 USB 存储器执行 BO 传输协议的命令
LBA 扇区地址(4)
54H
DISK_READ
扇区数
产生中断 从 USB 存储器读物理扇区
55H
DISK_RD_GO 产生中断 继续 USB 存储器的物理扇区读操作
LBA 扇区地址(4)
56H
DISK_WRITE
扇区数
产生中断 向 USB 存储器写物理扇区
57H
DISK_WR_GO 产生中断 继续 USB 存储器的物理扇区写操作
如果命令的输出数据是操作状态,参考下表。
状态代码 状态名称 状态说明
51H CMD_RET_SUCCESS 操作成功
5FH CMD_RET_ABORT 操作失败
表中标为“产生中断”的命令通常需要时间去执行操作。CH376 在命令执行完成后向单片机请求
中断,单片机可以读取中断状态作为该命令的操作状态。如果中断状态是 USB_INT_SUCCESS,那么说
明操作成功,有些命令具有返回数据(参考 CH376INC.H 文件中的 CH376_CMD_DATA 结构),可以通过
CMD_RD_USB_DATA0 命令读取返回数据。
CH376 手册(一)
5
5.1. CMD_GET_IC_VER
该命令用于获取芯片及固件版本。返回的一个字节数据是版本号,其位 7 为 0,位 6 为 1 ,位 5 ~
位 0 为 版本号。如果返回值为 41H,去掉位 7 和位 6,版本号为 01H。
5.2. CMD_SET_BAUDRATE
该命令用于设置 CH376 的串口通讯波特率。在 CH376 工作于串口通讯方式时,复位后默认的通讯
波特率由 BZ/D4,SCK/D5,SDI/D6 三个引脚的电平组合设定(参考本手册第 6.4 节), 这些引脚都悬
空时默认是 9600bps。如果单片机支持较高的通讯速度,可以通过该命令动态调整串口通讯波特率。
该命令需要输入两个数据,分别是波特率分频系数和分频常数,下表是与波特率的对应关系。
分频系数 分频常数 串口通讯波特率(bps) 误差
02H B2H 9600 0.16%
02H D9H 19200 0.16%
03H 98H 57600 0.16%
03H CCH 115200 0.16%
03H F3H 460800 0.16%
07H F3H 921600 0.16%
03H C4H 100000 0%
03H FAH 1000000 0%
03H FEH 3000000 0%
02H 常数 计算公式: 750000/(256-常数)
03H 常数 计算公式:6000000/(256-常数)
通常情况下,设置串口通讯波特率在 1mS 时间之内完成,完 成后 CH376 以新设定的通讯波特率输
出操作状态,所以单片机应该在发出命令后及时调整自身的通讯波特率。
5.3. CMD_ENTER_SLEEP
该命令使 CH376 芯片进入低功耗睡眠挂起状态。进入低功耗状态后,CH376 芯片的时钟停振,从
而节约电能,直到检测到以下两种情况之一才退出低功耗状态:一是检测到 USB 总线有信号(例如
USB 主机启动传输或者 USB 设备插拔事件);二是单片机向 CH376 芯片写入新的命令(没有输入数据
的命令,例如 CMD_GET_IC_VER 或 CMD_ABORT_NAK 命令)。 对 于 SPI 通讯接口方式,SCS 片选有效也将
导致 CH376 退出低功耗状态,所以单片机在发出 CMD_ENTER_SLEEP 命令后,应该立即使 SCS 片选无效。
通常情况下,CH376 芯片从低功耗状态退出并恢复到正常工作状态需要几毫秒的唤醒时间,当完
全恢复到正常工作状态后,CH376 将产生 USB_INT_WAKE_UP 事件中断。
5.4. CMD_RESET_ALL
该命令使 CH376 执行硬件复位。通常情况下,硬件复位在 35mS 时间之内完成。对于并口通讯方
式,硬件复位通常在 1mS 时间之内完成。
5.5. CMD_CHECK_EXIST
该命令用于测试通讯接口和工作状态,以检查 CH376 是否正常工作。该命令需要输入 1 个数据,
可以是任意数据,如果 CH376 正常工作,那么 CH376 的输出数据是输入数据的按位取反。例如,输入
数据是 57H,则输出数据是 A8H。另外,对于并口通讯方式的 CH376,在其复位后未收到任何命令之
前,从其并口通常可以读出数据 00H。
剩余23页未读,继续阅读
资源评论
- shushandaren2018-03-10资源不错,很实用
- 纸鱼2012-07-01很好的资源,全面有帮助!
- 芨芨草*2015-08-25非常有用的资源,很好很不错!
tianbing357
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功