📄 max3421e_host_regs_and_bits.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 + -