⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch375.h

📁 基于U(375)盘及SD(SPI模式)卡集成文件系统(包括底层驱动)
💻 H
📖 第 1 页 / 共 2 页
字号:

/* 以下内容复制于CH375INC.H文件 */

/* Define for CH372 & CH375          */
/* Website:  http://winchiphead.com  */
/* Email:    tech@winchiphead.com    */
/* Author:   W.ch 2003.09            */
#ifndef __CH375_H__
#define __CH375_H__

#include "TYPE.H"

/*CH375硬件IO口配置*/

/*函数返回*/
/******************************************************************************/
#define CH_OK               0X00
#define CH_ERROR            0x01
/******************************************************************************/
/* 硬件特性 */
#define CH375_MAX_DATA_LEN  0x40            /* 最大数据包的长度, 内部缓冲区的长度 */
/******************************************************************************/
/* 命令代码 */

#define CMD_RESET_ALL       0x05            /* 执行硬件复位 */

#define CMD_CHECK_EXIST     0x06            /* 测试工作状态 */
/* 输入: 任意数据 */
/* 输出: 输入数据的按位取反 */

#define CMD_SET_USB_ID      0x12            /* 设备方式: 设置USB厂商VID和产品PID */
/* 输入: 厂商ID低字节, 厂商ID高字节, 产品ID低字节, 产品ID高字节 */

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

#define CMD_SET_USB_MODE    0x15            /* 设置USB工作模式 */
/* 输入: 模式代码 */
/*       00H=未启用的设备方式, 01H=已启用的设备方式并且使用外部固件模式, 02H=已启用的设备方式并且使用内置固件模式, 03H=已启用的设备方式并且使用中断端点和内置固件模式 */
/*       04H=未启用的主机方式, 05H=已启用的主机方式, 06H=已启用的主机方式并且自动产生SOF包, 07H=已启用的主机方式并且复位USB总线 */
/* 输出: 操作状态( CMD_RET_SUCCESS或CMD_RET_ABORT, 其它值说明操作未完成 ) */

#define CMD_SET_ENDP2       0x18            /* 设备方式: 设置USB端点0的接收器 */
/* 输入: 工作方式 */
/*           位7为1则位6为同步触发位, 否则同步触发位不变 */
/*           位3~位0为事务响应方式:  0000-就绪ACK, 1110-正忙NAK, 1111-错误STALL */

#define CMD_SET_ENDP3       0x19            /* 设备方式: 设置USB端点0的发送器 */
/* 输入: 工作方式 */
/*           位7为1则位6为同步触发位, 否则同步触发位不变 */
/*           位3~位0为事务响应方式:  0000~1000-就绪ACK, 1110-正忙NAK, 1111-错误STALL */

#define CMD_SET_ENDP4       0x1A            /* 设备方式: 设置USB端点1的接收器 */
/* 输入: 工作方式 */
/*           位7为1则位6为同步触发位, 否则同步触发位不变 */
/*           位3~位0为事务响应方式:  0000-就绪ACK, 1110-正忙NAK, 1111-错误STALL */

#define CMD_SET_ENDP5       0x1B            /* 设备方式: 设置USB端点1的发送器 */
/* 输入: 工作方式 */
/*           位7为1则位6为同步触发位, 否则同步触发位不变 */
/*           位3~位0为事务响应方式:  0000~1000-就绪ACK, 1110-正忙NAK, 1111-错误STALL */

#define CMD_SET_ENDP6       0x1C            /* 设置USB端点2/主机端点的接收器 */
/* 输入: 工作方式 */
/*           位7为1则位6为同步触发位, 否则同步触发位不变 */
/*           位3~位0为事务响应方式:  0000-就绪ACK, 1101-就绪但不返回ACK, 1110-正忙NAK, 1111-错误STALL */

#define CMD_SET_ENDP7       0x1D            /* 设置USB端点2/主机端点的发送器 */
/* 输入: 工作方式 */
/*           位7为1则位6为同步触发位, 否则同步触发位不变 */
/*           位3~位0为事务响应方式:  0000-就绪ACK, 1101-就绪但无须应答, 1110-正忙NAK, 1111-错误STALL */

#define CMD_GET_TOGGLE      0x0A            /* 获取OUT事务的同步状态 */
/* 输入: 数据1AH */
/* 输出: 同步状态 */
/*           位4为1则OUT事务同步, 否则OUT事务不同步 */

#define CMD_GET_STATUS      0x22            /* 获取中断状态并取消中断请求 */
/* 输出: 中断状态 */

#define CMD_UNLOCK_USB      0x23            /* 设备方式: 释放当前USB缓冲区 */

#define CMD_RD_USB_DATA     0x28            /* 从当前USB中断的端点缓冲区读取数据块, 并释放缓冲区 */
/* 输出: 长度, 数据流 */

#define CMD_WR_USB_DATA3    0x29            /* 设备方式: 向USB端点0的发送缓冲区写入数据块 */
/* 输入: 长度, 数据流 */

#define CMD_WR_USB_DATA5    0x2A            /* 设备方式: 向USB端点1的发送缓冲区写入数据块 */
/* 输入: 长度, 数据流 */

#define CMD_WR_USB_DATA7    0x2B            /* 向USB端点2的发送缓冲区写入数据块 */
/* 输入: 长度, 数据流 */

/* ************************************************************************** */
/* 以下命令用于USB主机方式, 只有CH375支持 */

#define CMD_SET_BAUDRATE    0x02            /* 串口方式: 设置串口通讯波特率 */
/* 输入: 波特率分频系数, 波特率分频常数 */
/* 输出: 操作状态( CMD_RET_SUCCESS或CMD_RET_ABORT, 其它值说明操作未完成 ) */

#define CMD_ABORT_NAK       0x17            /* 主机方式: 放弃当前NAK的重试 */

#define CMD_SET_RETRY       0x0B            /* 主机方式: 设置USB事务操作的重试次数 */
/* 输入: 数据25H, 重试次数 */
/*                    位7为1则收到NAK时无限重试, 位3~位0为超时后的重试次数 */

#define CMD_ISSUE_TOKEN     0x4F            /* 主机方式: 发出令牌, 执行事务 */
/* 输入: 事务属性 */
/*           低4位是令牌, 高4位是端点号 */
/* 输出中断 */

#define CMD_CLR_STALL       0x41            /* 主机方式: 控制传输-清除端点错误 */
/* 输入: 端点号 */
/* 输出中断 */

#define CMD_SET_ADDRESS     0x45            /* 主机方式: 控制传输-设置USB地址 */
/* 输入: 地址值 */
/* 输出中断 */

#define CMD_GET_DESCR       0x46            /* 主机方式: 控制传输-获取描述符 */
/* 输入: 描述符类型 */
/* 输出中断 */

#define CMD_SET_CONFIG      0x49            /* 主机方式: 控制传输-设置USB配置 */
/* 输入: 配置值 */
/* 输出中断 */

#define CMD_DISK_INIT       0x51            /* 主机方式: 初始化USB存储器 */
/* 输出中断 */

#define CMD_DISK_RESET      0x52            /* 主机方式: 复位USB存储器 */
/* 输出中断 */

#define CMD_DISK_SIZE       0x53            /* 主机方式: 获取USB存储器的容量 */
/* 输出中断 */

#define CMD_DISK_READ       0x54            /* 主机方式: 从USB存储器读数据块(以扇区512字节为单位) */
/* 输入: LBA扇区地址(总长度32位, 低字节在前), 扇区数(01H~FFH) */
/* 输出中断 */

#define CMD_DISK_RD_GO      0x55            /* 主机方式: 继续执行USB存储器的读操作 */
/* 输出中断 */

#define CMD_DISK_WRITE      0x56            /* 主机方式: 向USB存储器写数据块(以扇区512字节为单位) */
/* 输入: LBA扇区地址(总长度32位, 低字节在前), 扇区数(01H~FFH) */
/* 输出中断 */

#define CMD_DISK_WR_GO      0x57            /* 主机方式: 继续执行USB存储器的写操作 */
/* 输出中断 */

/* ************************************************************************** */
/* 以下新增的V2.0命令码, 仅CH372A/CH375A支持 */

#define CMD_GET_IC_VER      0x01            /* 获取芯片及固件版本 */
/* 输出: 版本号( 位7为1, 位6为0, 位5~位0为版本号 ) */
/*           CH375返回无效值为5FH, CH375A返回版本号的值为0A2H */

#define CMD_ENTER_SLEEP     0x03            /* 进入睡眠状态 */

#define CMD_RD_USB_DATA0    0x27            /* 从当前USB中断的端点缓冲区读取数据块 */
/* 输出: 长度, 数据流 */

#define CMD_DELAY_100US     0x0F            /* 并口方式: 延时100uS */
/* 输出: 延时期间输出0, 延时结束输出非0 */

#define CMD_CHK_SUSPEND     0x0B            /* 设备方式: 设置检查USB总线挂起状态的方式 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -