📄 isp1581.h
字号:
//sbit dmagate=P3^3;
//sbit dmaw = 0xB4; //6.2 usb DAQ DMA_MODE DIOW,isp1581^15
//sbit T0=P3^4;
//#define zlooponce 512
#define rega_addren 0xff00
#define rega_epmaxsize 0xff04
#define rega_eptype 0xff08
#define rega_mode 0xff0c
#define rega_intcfg 0xff10
#define rega_intmask_low 0xff14
#define rega_intmask_high 0xff16
#define rega_interrupt_low 0x0ff18
#define rega_interrupt_high 0xff1a
#define rega_dcount 0xff1c
#define rega_dport 0xff20
#define rega_shtpkt 0xff24
#define rega_epctlfc 0xff28
#define rega_epindex 0xff2c
#define rega_dmacmd 0xff30
#define rega_dmacount 0xff34
#define rega_dmacfg 0xff38
#define rega_dmahdcfg 0xff3c
#define rega_dmast 0xff60
#define rega_task1f0 0xff40
#define rega_task1f1 0xff48
#define rega_task1f2 0xff48
#define rega_task1f3 0xff4a
#define rega_task1f4 0xff4a
#define rega_task1f5 0xff4c
#define rega_task1f6 0xff4c
#define rega_task1f7 0xff44
#define rega_task3f6 0xff4e
#define rega_task3f7 0xff4e
#define rega_dmaint 0xff50
#define rega_dmaintmask 0xff54
#define rega_dmaep 0xff58
#define rega_dmastate 0xff5c
#define rega_chipid 0xff70
#define rega_framenumber 0xff74
#define rega_scratch 0xff78
#define rega_unlock 0xff7c
#define rega_testmode 0xff84
#define addren_enable 0x80
#define addren_addrmask 0x7f
#define int_busreset 0x0001
#define int_sof 0x0002
#define int_psof 0x0004
#define int_susp 0x0008
#define int_resume 0x0010
#define int_hs_stat 0x0020
#define int_dma 0x0040
#define int_ep0set 0x0100
#define int_ep0rx 0x0400
#define int_ep0tx 0x0800
#define int_ep1rx 0x1000
#define int_ep1tx 0x2000
#define int_ep2rx 0x4000
#define int_ep2tx 0x8000
#define int_ep3rx 0x0001
#define int_ep3tx 0x0002
#define int_ep4rx 0x0004
#define int_ep4tx 0x0008
#define int_ep5rx 0x0010
#define int_ep5tx 0x0020
#define int_ep6rx 0x0040
#define int_ep6tx 0x0080
#define int_ep7rx 0x0100
#define int_ep7tx 0x0200
#define eptype_control 0x00
#define eptype_iso 0x01
#define eptype_bulk 0x02
#define eptype_int 0x03
#define eptype_doublebuf 0x04
#define eptype_enable 0x08
#define eptype_noempkt 0x10
#define mode_softct 0x01
#define mode_pwroff 0x02
#define mode_wkupcs 0x04
#define mode_glintena 0x08
#define mode_reset 0x10
#define mode_gosusp 0x20
#define mode_sndrsu 0x40
#define mode_clkaon 0x80
//#define intcfg_cdbgmod_asn 0x00
/////////////
#define intcfg_cdbgmod_as 0x40
//#define intcfg_cdbgmod_as1n 0x80
//#define intcfg_ddbgmodin_an 0x00
//////////
#define intcfg_ddbgmodin_a 0x10
//#define intcfg_ddbgmodin_a1n 0x30
//#define intcfg_ddbgmodout_asyn 0x00
///////////
#define intcfg_ddbgmodout_asy 0x04
//#define intcfg_ddbgmodout_asy1n 0x08
//#define intcfg_edgetrig 0x02
//#define intcfg_polh 0x01
#define EPINDEX4CONTROL_SETUP 0x20
#define EPINDEX4CONTROL_OUT 0x00
#define EPINDEX4CONTROL_IN 0x01
#define EPINDEX4EP01OUT 0x02
#define EPINDEX4EP01IN 0x03
#define EPINDEX4EP02OUT 0x04
#define EPINDEX4EP02IN 0x05
#define EPINDEX4EP03OUT 0x06
#define EPINDEX4EP03IN 0x07
#define EPINDEX4EP04OUT 0x08
#define EPINDEX4EP04IN 0x09
#define EPINDEX4EP05OUT 0x0A
#define EPINDEX4EP05IN 0x0B
#define EPINDEX4EP06OUT 0x0C
#define EPINDEX4EP06IN 0x0D
#define EPINDEX4EP07OUT 0x0E
#define EPINDEX4EP07IN 0x0F
#define epctlfc_stall 0x01
#define epctlfc_status 0x02
#define epctlfc_venp 0x08
#define epctlfc_clbuf 0x10
#define maxepsize_0 0x0000
#define maxepsize_1 0x0001
#define maxepsize_2 0x0002
#define maxepsize_4 0x0004
#define maxepsize_8 0x0008
#define maxepsize_16 0x0010
#define maxepsize_32 0x0020
#define maxepsize_64 0x0040
#define maxepsize_128 0x0080
#define maxepsize_256 0x0100
#define maxepsize_512 0x0200
#define maxepsize_956 0x03bc
#define maxepsize_1024 0x0400
#define maxepsize_2048 0x0800
#define NTRAN_1 0x0000
#define NTRAN_2 0x0800
#define NTRAN_3 0x1800
#define maxepsize_FS maxepsize_64
#define maxepsize_HS maxepsize_1024
#define shtpkt0out 0x0100
#define shtpkt1out 0x0200
#define shtpkt2out 0x0400
#define shtpkt3out 0x0800
#define shtpkt4out 0x1000
#define shtpkt5out 0x2000
#define shtpkt6out 0x4000
#define shtpkt7out 0x8000
#define chipid 0x1581
#define chiprev 0x0010
#define unlockcode 0xaa37
#define testmode_se0nak 0x0001
#define testmode_jstate 0x0002
#define testmode_kstate 0x0004
#define testmode_prbs 0x0008
#define testmode_forcefs 0x0010
#define testmode_lpbk 0x0020
#define testmode_phytest 0x0040
#define testmode_forcehs 0x0080
#define dmacmd_gdmaread 0x00
#define dmacmd_gdmawrite 0x01
#define dmacmd_udmaread 0x02
#define dmacmd_udmawrite 0x03
#define dmacmd_pioread 0x04
#define dmacmd_piowrite 0x05
#define dmacmd_mdmaread 0x06
#define dmacmd_mdmawrite 0x07
#define dmacmd_piowritecomplete 0x07
#define dmacmd_pioreadcomplete 0x09
#define dmacmd_read1f0 0x0a
#define dmacmd_pollbsy 0x0b
#define dmacmd_readalltask 0x0c
#define dmacmd_validatebuffer 0x0e
#define dmacmd_clearbuffer 0x0f
#define dmacmd_restart 0x10
#define dmacmd_reset 0x11
#define dmacfg_width16 0x0001
#define dmacfg_width8 0x0000
#define dmacfg_modediorw 0x0004
#define dmacfg_modediorack 0x0004
#define dmacfg_modedack 0x0008
#define dmacfg_burstdmd 0x0000
#define dmacfg_burst0 0x0000
#define dmacfg_burst1 0x0010
#define dmacfg_burst2 0x0020
#define dmacfg_burst4 0x0030
#define dmacfg_burst8 0x0040
#define dmacfg_burst12 0x0050
#define dmacfg_burst16 0x0060
#define dmacfg_burst32 0x0070
#define dmacfg_disablecounter 0x0080
#define dmacfg_pio0 0x0000
#define dmacfg_pio1 0x0100
#define dmacfg_pio2 0x0200
#define dmacfg_pio3 0x0300
#define dmacfg_pio4 0x0400
#define dmacfg_dma0 0x0000
#define dmacfg_dma1 0x0800
#define dmacfg_dma2 0x1000
#define dmacfg_dma3 0x1800
#define dmacfg_atamode0 0x0000
#define dmacfg_atamode1 0x2000
#define dmacfg_ignorerdy 0x4000
#define dmahd_readpolh 0x01
#define dmahd_writepolh 0x02
#define dmahd_dreqpolh 0x04
#define dmahd_dackpolh 0x08
#define dmahd_master 0x10
#define dmahd_eotpolh 0x00
#define dmahd_endianbig 0x40
#define dmaint_autodone 0x0001
#define dmaint_cmddone 0x0002
#define dmaint_taskdone 0x0004
#define dmaint_bsydonw 0x0008
#define dmaint_1f0full 0x0010
#define dmaint_1f0rdempty 0x0020
#define dmaint_1f0wrfull 0x0040
#define dmaint_1f0wrempty 0x0080
#define dmaint_xferok 0x0100
#define dmaint_intpending 0x0200
#define dmaint_intereot 0x0400
#define dmaint_extereot 0x0800
#define dmaint_oddint 0x1000
#define USB_CLASS_CODE_TEST_CLASS_DEVICE 0x00
#define USB_SUBCLASS_CODE_TEST_CLASS_D12 0x00
#define USB_PROTOCOL_CODE_TEST_CLASS_D12 0x00
#define USB_SUBCLASS_CODE_TEST_CLASS 0x00
#define USB_PROTOCOL_CODE_TEST_CLASS 0x00
void outport(unsigned short nPort, unsigned short nVal);
void outportb(unsigned short nPort, unsigned char nVal);
unsigned short inport(unsigned short nPort);
unsigned char inportb(unsigned short nPort);
void ISP1581_ResetDevice(void);
void ISP1581_GoSuspend(void);
void ISP1581_SendResume(void);
void ISP1581_SetEPIndex(UCHAR bEPIndex);
UCHAR ISP1581_GetEndpointStatus(UCHAR bEPIndex); //OK
void ISP1581_SetEndpointStatus(UCHAR bEPIndex, UCHAR bStalled);
void ISP1581_ControlReadHandshake(void);
void ISP1581_ControlWriteHandshake(void);
void ISP1581_SetAddressEnable(UCHAR bAddress, UCHAR bEnable);
USHORT ISP1581_ReadControlEndpoint(UCHAR * buf, unsigned short len);
USHORT ISP1581_WriteControlEndpoint(UCHAR * buf, USHORT len);
USHORT ISP1581_ReadBulkEndpoint(UCHAR bEPIndex, unsigned char * buf, USHORT len);
void ISP1581_WriteBulkEndpoint(UCHAR bEPIndex, unsigned char * buf, USHORT len);
USHORT ISP1581_ReadISOEndpoint(UCHAR bEPIndex, unsigned short * buf, USHORT len);
void ISP1581_WriteISOEndpoint(UCHAR bEPIndex, unsigned short * buf, USHORT len);
void ISP1581_StallEP0InControlWrite(void);
void ISP1581_StallEP0InControlRead(void);
USHORT ISP1581_ReadInterruptRegisterLow(void);
USHORT ISP1581_ReadInterruptRegisterHigh(void);
void ISP1581_IntClearl(USHORT wIntlow);
void ISP1581_IntClearh(USHORT wInthigh);
UCHAR ISP1581_GetMode(void);
void ISP1581_SetMode(UCHAR bMode);
void ISP1581_SetTestMode(unsigned char testmode);
void ISP1581_SetIntConfig(unsigned char IntConfig);
USHORT ISP1581_GetIntEnableLow(void);
void ISP1581_SetIntEnableLow(USHORT int_vector);
USHORT ISP1581_GetIntEnableHigh(void);
void ISP1581_SetIntEnableHigh(USHORT int_vector);
void ISP1581_SetEndpointConfig(UCHAR bEPIndex, UCHAR bEPConfig);
void ISP1581_ClearBuffer(UCHAR bEPIndex);
void ISP1581_SetEPMAXSize(unsigned char bEPIndex, unsigned short epmaxsize);
USHORT ISP1581_ReadControlEndpointSetup(UCHAR * buf);
void ISP1581_UnlockDevice(void);
unsigned short ISP1581_ReadChipID(void);
/////////// dma /////////////////////////////
void ISP1581_SetDMAConfig(USHORT wDMACnfg);
USHORT ISP1581_GetDMAConfig(void);
void ISP1581_SetDMAHDCfg(unsigned char dmahdcfg);
unsigned char ISP1581_GetDMAHDCfg(void);
void ISP1581_SetDMACMD(unsigned char bCMD);
void ISP1581_SetDMACounterLow(USHORT wDMACounter);
void ISP1581_SetDMACounterHigh(USHORT wDMACounter);
USHORT ISP1581_GetDMACounterLow(void);
USHORT ISP1581_GetDMACounterHigh(void);
void ISP1581_SetDMAIntMask(unsigned short dmaintmask);
unsigned short ISP1581_GetDMAIntMask(void);
USHORT ISP1581_GetDMAInt(void);
void ISP1581_SetDMAInt(USHORT dma_int);
void ISP1581_SetDMAEP(unsigned char dmaep);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -