CH376是文件管理控制芯片,用于单片机系统读写U 盘或者SD 卡中的文件。CH376支持USB设备方式和USB主机方式,并且内置了USB通讯协议的基本固件,内置了处理Mass-Storage海量存储设备的专用通讯协议的固件,内置了SD卡的通讯接口固件,内置了FAT16和FAT32以及FAT12文件系统的管理固件,支持常用的USB存储设备(包括U盘/USB硬盘/USB闪存盘/USB读卡器)和SD卡(包括标准容量SD卡和高容量HC-SD卡以及协议兼容的MMC卡和TF卡)。
有关U 盘和SD 卡文件读写的例子主要由以下文件组成:
① 硬件抽象层,即I/O 接口子程序,由单片机与CH376 芯片之间的通讯接口方式决定
HAL.H 硬件抽象层头文件
HAL_BASE.C 硬件抽象层基本子程序,包括延时子程序,需要根据单片机实际速度修改I/O 接口子程序,必须根据实际的通讯方式选择以下其中一种并按实际硬件和参数进行修改:
UART_HW.C 是硬件异步串口连接方式,支持波特率从9600bps 到3Mbps。
② 文件系统层,将常用命令进行打包,提供了常用的文件管理子程序和一些不太常用的子程序
FILE_SYS.H 文件系统层头文件,子程序声明等;
FILE_SYS.C 文件系统层子程序,子程序源程序等,在第5 节有详细说明。
③ 辅助调试子程序,用于打印输出调试信息,以便检查程序运行结果,正式产品中必须删除之
DEBUG.H 辅助调试子程序头文件;
DEBUG.C 辅助调试子程序源程序等。
正常使用的主要是硬件抽象层和文件系统层,并且要做相应的修改。对于辅助调试子程序,主要是对几个程序段的监视,但是必须要有两个及以上的通讯串口,只有一个串口需要禁用调试输出。
在硬件层,HAL_BASE.c中需要根据单片机的频率修改延时的设置,粗略设置即可。
在UART_HW.C中,需要修改以下几个地方:
//#defineCH376_INT_WIRE P1_0 /假定CH376的INT#引脚,如果未连接那么也可以通过查询串口中断状态码实现 /如果在评估板上没有使用INT端口,直接注释掉,使用查询即可。
#define UART_INIT_BAUDRATE 9600 /*默认通讯波特率9600bps,建议通过硬件引脚设定直接选择更高的CH376的默认通讯波特率 */
建议使用指令进行基本的创建文件,选择USB模式等操作,了解芯片对U盘的操作模式,便于以后的使用。