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

📄 ch375.h

📁 使用AVR单片机控制USB芯片CH375读写U盘
💻 H
字号:
#ifndef __CH375_H__
#define __CH375_H__

#include<avr/io.h>

#define uint8  unsigned char
#define uint16 unsigned int
#define uint32 unsigned long

#define CH375_CMD_PORT  (*(volatile unsigned char *)0x2001)
#define CH375_DAT_PORT  (*(volatile unsigned char *)0x2000)

#define CH375_CS_PORT PORTE
#define CH375_CS_DDR  DDRE
#define CH375_CS_PIN  PINE
#define CH375_CS_BIT  PE2

#define CH375_INT_PORT PORTE
#define CH375_INT_DDR  DDRE
#define CH375_INT_PIN  PINE
#define CH375_INT_BIT  PE4

#define GET_IC_VER		0x01
#define SET_BAUDRATE	0x02
#define ENTER_SLEEP		0x03
#define RESET_ALL		0x05
#define CHECK_EXIST		0x06
#define GET_TOGGLE		0x0a
#define SET_RETRY		0x0b
#define SET_DISK_LUN	0x0b
#define CHECK_SUSPEND	0x0b
#define DELAY_100US		0x0f
#define SET_USB_ID		0x12
#define SET_USB_ADDR	0x13
#define SET_USB_MODE	0x15
	#define DEVICE_INACTIVE				0x00
	#define DEVICE_ACTIVE_INT_FIRMWARE	0x01
	#define DEVICE_ACTIVE_EXT_FIRMWARE	0x02
	#define HOST_INACTIVE				0x04
	#define HOST_ACTIVE_NO_EOF			0x05
	#define HOST_ACTIVE_EOF				0x06
	#define HOST_RESET_BUS				0x07
#define TEST_CONNECT	0x16
#define ABORT_NAK		0x17
#define SET_ENDP2		0x18
#define SET_ENDP3		0x19
#define SET_ENDP4		0x1a
#define SET_ENDP5		0x1b
#define SET_ENDP6		0x1c
#define SET_ENDP7		0x1d
#define GET_STATUS		0x22
	#define USB_INT_EP0_OUT				0x00
	#define USB_INT_EP1_OUT				0x01
	#define USB_INT_EP2_OUT				0x02
	#define USB_INT_BUS_RESET1			0x03
	#define USB_INT_USB_SUSPEND			0x05
	#define USB_INT_WAKE_UP				0x06
	#define USB_INT_BUS_RESET2			0x07
	#define USB_INT_EP0_IN				0x08
	#define USB_INT_EP1_IN				0x09
	#define USB_INT_EP2_IN				0x0a
	#define USB_INT_USB_RESET3			0x0b
	#define USB_INT_EP0_SETUP			0x0c
	#define USB_INT_BUS_RESET4			0x0f
	#define USB_INT_SUCCESS				0x14
	#define USB_INT_CONNECT				0x15
	#define USB_INT_DISCONNECT			0x16
	#define USB_INT_BUF_OVER			0x17
	#define USB_INT_DISK_READ			0x1d
	#define USB_INT_DISK_WRITE			0x1e
	#define USB_INT_DISK_ERR			0x1f
#define UNLOCK_USB		0x23
#define RD_USB_DATA0	0x27
#define RD_USB_DATA		0x28
#define WR_USB_DATA3	0x29
#define WR_USB_DATA5	0x2a
#define WR_USB_DATA7	0x2b
#define WR_USB_DATA		0x2b
#define CLR_STALL		0x41
#define SET_ADDRESS		0x45
#define GET_DESCR		0x46
#define SET_CONFIG		0x49
#define ISSUE_TKN_X		0x4e
#define AUTO_SETUP		0x4d
#define ISSUE_TOKEN		0x4f
#define DISK_INIT		0x51
#define DISK_SIZE		0x53
#define DISK_READ		0x54
#define DISK_RD_GO		0x55
#define DISK_WRITE		0x56
#define DISK_WR_GO		0x57
#define DISK_INQUIRY	0x58
#define DISK_READY		0x59
#define DISK_R_SENSE	0x5a
#define DISK_MAX_LUN	0x5d

#define CMD_RET_SUCCESS 0x51
#define CMD_RET_ABORT	0x5f

extern void  CH375_PortIni(void);
extern uint8 CH375_IniDisk(void);
extern uint8 CH375_ReadOneSector(uint32 LBA,uint8 *buffer);
extern uint8 CH375_WriteOneSector(uint32 LBA,uint8 *buffer);

#endif

⌨️ 快捷键说明

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