📄 sl811hs.h
字号:
//****************************************************************************************************
//SL811HS.h
sbit P34=P3^4;
#define WriteAddressEN P34=0 //SL811HS-->A0=0
#define WriteDataEN P34=1 //SL811HA-->A0=1
bit FlagDataType=0; //0=data0 1=data1
U8 data USBAddress = 0;
U8 data ENP_LEN=0x40;
//===================================================================
//VENDER PRODUCT ID
#define VenderID 0x0638 //avision
#define ProductID_A600G 0x0a7d //A600 Green
#define ProductID_A6G 0x0a7e //A6 Green
#define ProductID_A6PlusG 0x0a7f //A6 Plus Green
#define ProductID_FB2100G 0x0a8c //FB2100 GREEN
#define ProductID_FB1880G 0x0a8d //FB1880 GREEN
#define ProductID_DSeriesG 0x0a8e //D Series GREEN
#define ProductID_FB2400UG 0x0a8f //FB2400U GREEN
#define ProductID_FB1200G 0x0ad0 //FB1200 GREEN
//STRING ID
U8 code ASICStringID[]={"USB2.0 Scanner"};
//===================================================================
#define DATA0 0
#define DATA1 1
#define FALSE 0
#define TRUE 1
#define ep0 0
#define ep1 1
#define ep2 2
#define USB_CS XBYTE[0x0000] //USB CHIP ADDRESS
#define MemStart 0x40 //BUFFER OF SCANLOG MEMORY START POSITION
#define MemEND 0xff
//====================================================================
// USB Controller - SCANLOGIC Registers
//====================================================================
#define EP0Control 0x00 //USB_A Control Register
#define EP0Address 0x01 //USB_A Base Address
#define EP0XferLen 0x02 //USB_A Base Length
#define EP0Status 0x03 //USB_A PID,Device Endpoint(write)/USB Status(read)
#define EP0Counter 0x04 //USB_A Device Address(write)/Transfer Count(read)
//-----------------------------------------------------------------------------------
#define EP1Control 0x08 //USB_B Control Register
#define EP1Address 0x09 //USB_B Base Address
#define EP1XferLen 0x0a //USB_B Base Length
#define EP1Status 0x0b //USB_B PID,Device Endpoint(write)/USB Status(read)
#define EP1Counter 0x0c //USB_B Device Address(write)/Transfer Count(read)
//------------------------------------------------------------------------------------
#define CtrlReg 0x05 //Control Register1
#define IntEna 0x06 //Interrupt Enable Register
#define IntStatus 0x0d //Status register
#define DATASet 0x0e //SOF Counter Low(write)/HW Revision Register(read)
#define CSOFcnt 0x0f //SOF Counter High and Control Register2
//====================================================================
// PID TYPE
//====================================================================
#define PID_SETUP 0xd0
#define PID_IN 0x90
#define PID_OUT 0x10
#define PID_SOF 0x50
#define PID_DATA0 0x30
#define PID_DATA1 0xb0
#define PID_ACK 0x20
#define PID_NAK 0xa0
#define PID_STALL 0xe0
//-------------------------------------------------------------------------
//USB COMMAND
U8 code StrGetDeviceType[]={0x80,0x06,0x00,0x01,0x00,0x00,0x40,0x00};
U8 code StrGetDeviceType1[]={0x80,0x06,0x00,0x01,0x00,0x00,0x12,0x00};
U8 code StrSetAddress[]={0x00,0x05,0x02,0x00,0x00,0x00,0x00,0x00};
U8 code StrGetConfiguration[]={0x80,0x06,0x00,0x02,0x00,0x00,0xff,0x00};
U8 code StrGetConfiguration1[]={0x80,0x06,0x00,0x02,0x00,0x00,0x09,0x00};
U8 code StrGetConfiguration2[]={0x80,0x06,0x00,0x02,0x00,0x00,0x27,0x00};
U8 code StrGetDeviceString[]={0x80,0x06,0x00,0x03,0x00,0x00,0xff,0x00};
U8 code StrGetDeviceString1[]={0x80,0x06,0x02,0x03,0x09,0x04,0xff,0x00};
U8 code StrSetConfigure[]={0x00,0x09,0x01,0x00,0x00,0x00,0x00,0x00};
//-------------------------------------------------------------------------
void SL811HSWrite(U8 addr,U8 cData);
U8 SL811HSRead(U8 addr);
void SL811HSBulkRead(U8 addr,U8 *buffer,U16 cLen);
void SL811HSBulkWrite(U8 addr,U8 *buffer,U16 cLen);
void USBInitial(void);
void USBRWTest(void);
void USBXfer(U8 USBaddress,U8 EndPoint,U8 pid,U8 *Buffer,U32 DataLeng);
void VendorCmd(U8 USBaddress,U8 cEndPoint,U8 *setup,U8 *CBuffer,U16 DataLengh);
void GetDescriptor(U8 *Setup);
void SetAddress(void);
void GetConfiguration(U8 *Setup);
void SetConfigure(void);
void CheckUsbID(void);
void CheckASICStringID(void);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -