u盘读写控制源程序_ch376芯片 下载本文

/* 输入: 厂商ID低字节, 厂商ID高字节, 产品ID低字节, 产品ID高字节 */

#define CMD10_SET_USB_ADDR 0x13 /* 设置USB地址 */ /* 输入: 地址值 */

#define CMD01_TEST_CONNECT 0x16 /* 主机方式/不支持SD卡: 检查USB设备连接状态 */

/* 输出: 状态( USB_INT_CONNECT或USB_INT_DISCONNECT或USB_INT_USB_READY, 其它值说明操作未完成 ) */

#define CMD00_ABORT_NAK

0x17

/* 主机方式: 放弃当前NAK的重试 */

#define CMD10_SET_ENDP2 0x18 /* 设备方式(串口不支持): 设置USB端点0的接收器 */

/* 输入: 工作方式 */

/* 位7为1则位6为同步触发位, 否则同步触发位不变 */

/* 位3~位0为事务响应方式: 0000-就绪ACK, 1110-正忙NAK, 1111-错误STALL */

#define CMD10_SET_ENDP3 0x19 /* 设备方式(串口不支持): 设置USB端点0的发送器 */

/* 输入: 工作方式 */

/* 位7为1则位6为同步触发位, 否则同步触发位不变 */

/* 位3~位0为事务响应方式: 0000~1000-就绪ACK, 1110-正忙NAK, 1111-错误STALL */

#define CMD10_SET_ENDP4 0x1A /* 设备方式(串口不支持): 设置USB端点1的接收器 */ /* 输入: 工作方式 */

/* 位7为1则位6为同步触发位, 否则同步触发位不变 */

/* 位3~位0为事务响应方式: 0000-就绪ACK, 1110-正忙NAK, 1111-错误STALL */

#define CMD10_SET_ENDP5 0x1B /* 设备方式(串口不支持): 设置USB端点1的发送器 */

/* 输入: 工作方式 */

/* 位7为1则位6为同步触发位, 否则同步触发位不变 */

/* 位3~位0为事务响应方式: 0000~1000-就绪ACK, 1110-正忙NAK, 1111-错误STALL */

#define CMD10_SET_ENDP6 0x1C /* 设置USB端点2/主机端点的接收器 */

/* 输入: 工作方式 */

/* 位7为1则位6为同步触发位, 否则同步触发位不变 */

/* 位3~位0为事务响应方式: 0000-就绪ACK, 1101-就绪但不返回ACK, 1110-正忙NAK, 1111-错误STALL */

#define CMD10_SET_ENDP7 0x1D /* 设置USB端点2/主机端点的发送器 */

/* 输入: 工作方式 */

/* 位7为1则位6为同步触发位, 否则同步触发位不变 */

/* 位3~位0为事务响应方式: 0000-就绪ACK, 1101-就绪但无须应答, 1110-正忙NAK, 1111-错误STALL */

#define CMD00_DIRTY_BUFFER 0x25 冲区 */

#define CMD10_WR_USB_DATA3 的发送缓冲区写入数据块 */ /* 输入: 长度, 数据流 */

/* 主机文件模式: 清除内部的磁盘和文件缓

0x29 /* 设备方式(串口不支持): 向USB端点0

#define CMD10_WR_USB_DATA5 0x2A /* 设备方式(串口不支持): 向USB端点1的发送缓冲区写入数据块 */ /* 输入: 长度, 数据流 */ /*

********************************************************************************************************************* */

/* 辅助命令(手册二), 不太常用或者是为了与CH375和CH372兼容, 以下命令总是在操作结束时产生中断通知, 并且总是没有输出数据 */

#define CMD1H_CLR_STALL 0x41 /* 输入: 端点号 */ /* 输出中断 */

#define CMD1H_SET_ADDRESS 0x45 /* 输入: 地址值 */ /* 输出中断 */

/* 主机方式: 控制传输-清除端点错误 */

/* 主机方式: 控制传输-设置USB地址 */

#define CMD1H_GET_DESCR 0x46 /* 输入: 描述符类型 */ /* 输出中断 */

#define CMD1H_SET_CONFIG 0x49 /* 输入: 配置值 */ /* 输出中断 */

#define CMD0H_AUTO_SETUP 0x4D

/* 主机方式: 控制传输-获取描述符 */

/* 主机方式: 控制传输-设置USB配置 */

/* 主机方式/不支持SD卡: 自动配置

USB设备 */ /* 输出中断 */

#define CMD2H_ISSUE_TKN_X 0x4E /* 主机方式: 发出同步令牌, 执行事务, 该命令可代替 CMD10_SET_ENDP6/CMD10_SET_ENDP7 + CMD1H_ISSUE_TOKEN */ /* 输入: 同步标志, 事务属性 */

/* 同步标志的位7为主机端点IN的同步触发位, 位6为主机端点OUT的同步触发位, 位5~位0必须为0 */

/* 事务属性的低4位是令牌, 高4位是端点号 */ /* 输出中断 */

#define CMD1H_ISSUE_TOKEN 0x4F /* 主机方式: 发出令牌, 执行事务, 建议用CMD2H_ISSUE_TKN_X命令 */ /* 输入: 事务属性 */

/* 低4位是令牌, 高4位是端点号 */ /* 输出中断 */

#define CMD0H_DISK_INIT 器 */

/* 输出中断 */

#define CMD0H_DISK_RESET USB存储器 */ /* 输出中断 */

0x51

/* 主机方式/不支持SD卡: 初始化USB存储

0x52 /* 主机方式/不支持SD卡: 控制传输-复位

#define CMD0H_DISK_SIZE 0x53 的容量 */

/* 输出中断 */

#define CMD0H_DISK_INQUIRY 0x58 特性 */

/* 输出中断 */

#define CMD0H_DISK_READY 0x59 就绪 */

/* 输出中断 */

#define CMD0H_DISK_R_SENSE 0x5A 储器错误 */ /* 输出中断 */

#define CMD0H_RD_DISK_SEC 0x5B 据到内部缓冲区 */ /* 输出中断 */

/* 主机方式/不支持SD卡: 获取USB存储器

/* 主机方式/不支持SD卡: 查询USB存储器

/* 主机方式/不支持SD卡: 检查USB存储器

/* 主机方式/不支持SD卡: 检查USB存

/* 主机文件模式: 从磁盘读取一个扇区的数

#define CMD0H_WR_DISK_SEC 0x5C 的数据写入磁盘 */ /* 输出中断 */

/* 主机文件模式: 将内部缓冲区的一个扇区

#define CMD0H_DISK_MAX_LUN 0x5D /* 主机方式: 控制传输-获取USB存储器最大逻辑单元号 */ /* 输出中断 */ /*

********************************************************************************************************************* */

/* 以下定义只是为了兼容CH375的INCLUDE文件中的命令名称格式 */

#ifndef _NO_CH375_COMPATIBLE_ #define CMD_GET_IC_VER CMD01_GET_IC_VER #define CMD_SET_BAUDRATE CMD21_SET_BAUDRATE #define CMD_ENTER_SLEEP CMD00_ENTER_SLEEP #define CMD_RESET_ALL CMD00_RESET_ALL #define CMD_CHECK_EXIST CMD11_CHECK_EXIST #define CMD_CHK_SUSPEND CMD20_CHK_SUSPEND #define CMD_SET_SDO_INT CMD20_SET_SDO_INT #define CMD_GET_FILE_SIZE CMD14_GET_FILE_SIZE #define CMD_SET_FILE_SIZE CMD50_SET_FILE_SIZE #define CMD_SET_USB_MODE CMD11_SET_USB_MODE #define CMD_GET_STATUS CMD01_GET_STATUS #define CMD_UNLOCK_USB CMD00_UNLOCK_USB #define CMD_RD_USB_DATA0 CMD01_RD_USB_DATA0 #define CMD_RD_USB_DATA CMD01_RD_USB_DATA #define CMD_WR_USB_DATA7 CMD10_WR_USB_DATA7 #define CMD_WR_HOST_DATA CMD10_WR_HOST_DATA #define CMD_WR_REQ_DATA CMD01_WR_REQ_DATA #define CMD_WR_OFS_DATA CMD20_WR_OFS_DATA #define CMD_SET_FILE_NAME CMD10_SET_FILE_NAME #define CMD_DISK_CONNECT CMD0H_DISK_CONNECT #define CMD_DISK_MOUNT CMD0H_DISK_MOUNT #define CMD_FILE_OPEN CMD0H_FILE_OPEN

#define CMD_FILE_ENUM_GO CMD0H_FILE_ENUM_GO #define CMD_FILE_CREATE CMD0H_FILE_CREATE #define CMD_FILE_ERASE CMD0H_FILE_ERASE #define CMD_FILE_CLOSE CMD1H_FILE_CLOSE #define CMD_DIR_INFO_READ CMD1H_DIR_INFO_READ #define CMD_DIR_INFO_SAVE CMD0H_DIR_INFO_SAVE #define CMD_BYTE_LOCATE CMD4H_BYTE_LOCATE