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

📄 max3421e_host_regs_and_bits.h

📁 max3421 用于键盘的USB 驱动源码。
💻 H
字号:
// MAX3421E_Regs_and_Bits.h

#ifndef MAX3421E_HRB_H
#define BYTE MAX3421E_HRB_H
//
typedef unsigned char BYTE;
typedef unsigned short WORD;

//
// MAX3421E Registers in HOST mode. 
// PRESHIFTED 3 bits left for direct use in the SPI command byte.
//
const BYTE rRCVFIFO =  1<<3;     
const BYTE rSNDFIFO =  2<<3;     
const BYTE rSUDFIFO =  4<<3;
const BYTE rEP1OUTBC=  6<<3;
const BYTE rRCVBC   =  6<<3;  
const BYTE rSNDBC   =  7<<3;   
const BYTE rUSBIRQ  =  13<<3;
const BYTE rUSBIEN  =  14<<3;
const BYTE rUSBCTL  =  15<<3;
const BYTE rCPUCTL  =  16<<3;
const BYTE rPINCTL  =  17<<3;
const BYTE rRevision = 18<<3;
const BYTE rIOPINS1 =  20<<3;    
const BYTE rIOPINS2 =  21<<3;
const BYTE rGPINIRQ =  22<<3;
const BYTE rGPINIEN =  23<<3;
const BYTE rGPINPOL =  24<<3;
const BYTE rHIRQ    =  25<<3;
const BYTE rHIEN    =  26<<3;
const BYTE rMODE    =  27<<3;
const BYTE rPERADDR =  28<<3;
const BYTE rHCTL    =  29<<3;
const BYTE rHXFR    =  30<<3;
const BYTE rHRSL    =  31<<3;

// Bit names as bitmasks
// USBIRQ Register R13
const BYTE bmOSCOKIRQ   =0x01;
const BYTE bmNOVBUSIRQ  =0x20;
const BYTE bmVBUSIRQ    =0x40;

// USBIEN Register R14
const BYTE bmOSCOKIE   =0x01;
const BYTE bmNOVBUSIE  =0x20;
const BYTE bmVBUSIE    =0x40;

// USBCTL Register R15
const BYTE bmPWRDOWN   =0x10;
const BYTE bmCHIPRES   =0x20;

// CPUCTL Register R16
const BYTE bmPULSEWID1 =0x80;   
const BYTE bmPULSEWID0 =0x40;   
const BYTE bmIE        =0x01;

// PINCTL Register R17
const BYTE bmGPXA      =0x01;
const BYTE bmGPXB      =0x02;
const BYTE bmPOSINT    =0x04;
const BYTE bmINTLEVEL  =0x08;
const BYTE bmFDUPSPI   =0x10;

// IOPINS1 Register R20
const BYTE bmGPOUT0    =0x01;
const BYTE bmGPOUT1    =0x02;
const BYTE bmGPOUT2    =0x04;
const BYTE bmGPOUT3    =0x08;
const BYTE bmGPIN0     =0x10;
const BYTE bmGPIN1     =0x20;
const BYTE bmGPIN2     =0x40;
const BYTE bmGPIN3     =0x80;

// IOPINS2 Register R21
const BYTE bmGPOUT4    =0x01;
const BYTE bmGPOUT5    =0x02;
const BYTE bmGPOUT6    =0x04;
const BYTE bmGPOUT7    =0x08;
const BYTE bmGPIN4     =0x10;
const BYTE bmGPIN5     =0x20;
const BYTE bmGPIN6     =0x40;
const BYTE bmGPIN7     =0x80;

// GPINIRQ Register R22
const BYTE bmGPINIRQ0 =0x01;
const BYTE bmGPINIRQ1 =0x02;
const BYTE bmGPINIRQ2 =0x04;
const BYTE bmGPINIRQ3 =0x08;
const BYTE bmGPINIRQ4 =0x10;
const BYTE bmGPINIRQ5 =0x20;
const BYTE bmGPINIRQ6 =0x40;
const BYTE bmGPINIRQ7 =0x80;

// GPINIEN Register R23
const BYTE bmGPINIEN0 =0x01;
const BYTE bmGPINIEN1 =0x02;
const BYTE bmGPINIEN2 =0x04;
const BYTE bmGPINIEN3 =0x08;
const BYTE bmGPINIEN4 =0x10;
const BYTE bmGPINIEN5 =0x20;
const BYTE bmGPINIEN6 =0x40;
const BYTE bmGPINIEN7 =0x80;

// const BYTE bmGPINPOL[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

// GPINPOL Register R24
const BYTE bmGPINPOL0 =0x01;
const BYTE bmGPINPOL1 =0x02;
const BYTE bmGPINPOL2 =0x04;
const BYTE bmGPINPOL3 =0x08;
const BYTE bmGPINPOL4 =0x10;
const BYTE bmGPINPOL5 =0x20;
const BYTE bmGPINPOL6 =0x40;
const BYTE bmGPINPOL7 =0x80;

// HIRQ Register R25
const BYTE bmBUSEVENTIRQ   =0x01;   // indicates BUS Reset Done or BUS Resume     
const BYTE bmRWUIRQ        =0x02;
const BYTE bmRCVDAVIRQ     =0x04;
const BYTE bmSNDBAVIRQ     =0x08;
const BYTE bmSUSDNIRQ      =0x10;
const BYTE bmCONDETIRQ     =0x20;
const BYTE bmFRAMEIRQ      =0x40;
const BYTE bmHXFRDNIRQ     =0x80;

// HIEN Register R26
const BYTE bmBUSEVENTIE    =0x01;
const BYTE bmRWUIE         =0x02;
const BYTE bmRCVDAVIE      =0x04;
const BYTE bmSNDBAVIE      =0x08;
const BYTE bmSUSDNIE       =0x10;
const BYTE bmCONDETIE      =0x20;
const BYTE bmFRAMEIE       =0x40;
const BYTE bmHXFRDNIE      =0x80;

// MODE Register R27
const BYTE bmHOST          =0x01;
const BYTE bmLOWSPEED      =0x02;
const BYTE bmHUBPRE        =0x04;
const BYTE bmSOFKAENAB     =0x08;
const BYTE bmSEPIRQ        =0x10;
const BYTE bmDELAYISO      =0x20;
const BYTE bmDMPULLDN      =0x40;
const BYTE bmDPPULLDN      =0x80;

// HCTL Register R29
const BYTE bmBUSRST        =0x01;
const BYTE bmFRMRST        =0x02;
const BYTE bmSAMPLEBUS     =0x04;
const BYTE bmSIGRSM        =0x08;
const BYTE bmRCVTOG0       =0x10;
const BYTE bmRCVTOG1       =0x20;
const BYTE bmSNDTOG0       =0x40;
const BYTE bmSNDTOG1       =0x80;

// HRSL Register R31
const BYTE bmRCVTOGRD      =0x10;
const BYTE bmSNDTOGRD      =0x20;
const BYTE bmKSTATUS       =0x40;
const BYTE bmJSTATUS       =0x80;

// Host XFR token values for writing the HXFR register (R30).
// OR this bit field with the endpoint number in bits 3:0
const BYTE tokSETUP  =0b00010000;  // HS=0, ISO=0, OUTNIN=0, SETUP=1
const BYTE tokIN     =0b00000000;  // HS=0, ISO=0, OUTNIN=0, SETUP=0
const BYTE tokOUT    =0b00100000;  // HS=0, ISO=0, OUTNIN=1, SETUP=0
const BYTE tokINHS   =0b10000000;  // HS=1, ISO=0, OUTNIN=0, SETUP=0
const BYTE tokOUTHS  =0b10100000;  // HS=1, ISO=0, OUTNIN=1, SETUP=0 
const BYTE tokISOIN  =0b01000000;  // HS=0, ISO=1, OUTNIN=0, SETUP=0
const BYTE tokISOOUT =0b01100000;  // HS=0, ISO=1, OUTNIN=1, SETUP=0

// Host error result codes, the 4 LSB's in the HRSL register.
const BYTE hrSUCCESS   =0x00;
const BYTE hrBUSY      =0x01;
const BYTE hrBADREQ    =0x02;
const BYTE hrUNDEF     =0x03;
const BYTE hrNAK       =0x04;
const BYTE hrSTALL     =0x05;
const BYTE hrTOGERR    =0x06;
const BYTE hrWRONGPID  =0x07;
const BYTE hrBADBC     =0x08;
const BYTE hrPIDERR    =0x09;
const BYTE hrPKTERR    =0x0A;
const BYTE hrCRCERR    =0x0B;
const BYTE hrKERR      =0x0C;
const BYTE hrJERR      =0x0D;
const BYTE hrTIMEOUT   =0x0E;
const BYTE hrBABBLE    =0x0F;

#endif


⌨️ 快捷键说明

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