📄 hc_comm.h
字号:
/****************************************************************************/
/* IO: DSP-ISP1362 */
/****************************************************************************/
#define usb_00 port0000
#define usb_01 port0001
#define usb_02 port0002
#define usb_03 port0003
#define usb_wake port2000
ioport unsigned usb_00;
ioport unsigned usb_01;
ioport unsigned usb_02;
ioport unsigned usb_03;
ioport unsigned usb_wake;
/* 1362 registers */
/*
** 1362 Hc register access commands
**
** Each name is given in this rule
**
** ComBB_XXXXX
** ^^^ <----- "Com" : Name for RegisterCommands
** ^^ <----- BB : Register accessing data width
** ^^^^^^ <----- XXXXX : Register name defined in datasheet
*/
// OHCI - HC control and status registers
#define Com32_HcRevision 0x00
#define Com32_HcControl 0x01
#define Com32_HcCommandStatus 0x02
#define Com32_HcInterruptStatus 0x03
#define Com32_HcInterruptEnable 0x04
#define Com32_HcInterruptDisable 0x05
// OHCI - HC frame counter registers
#define Com32_HcFmInterval 0x0D
#define Com32_HcFmRemaining 0x0E
#define Com32_HcFmNumber 0x0F
#define Com32_HcLSThreshold 0x11
// OHCI - HC root hub registers
#define Com32_HcRhDescriptorA 0x12
#define Com32_HcRhDescriptorB 0x13
#define Com32_HcRhStatus 0x14
#define Com32_HcRhPortStatus1 0x15
#define Com32_HcRhPortStatus2 0x16
// 1362/1362 - HC DMA and Interrupt control registers
#define Com16_HcHardwareConfiguration 0x20
#define Com16_HcDMAConfiguration 0x21
#define Com16_HcTransferCounter 0x22
#define Com16_HcuPInterrupt 0x24
#define Com16_HcuPInterruptEnable 0x25
// 1362/1362 - HC Miscellaneous registers
#define Com16_HcChipID 0x27
#define Com16_HcScratch 0x28
#define Com16_HcSoftwareReset 0xA9
// 1362 - HC Buffer RAM control registers
#define Com16_HcBufferStatus 0x2C
#define Com32_HcDirectAddressLength 0x32
#define Com16_HcDirectAddressData 0x45
// 1362 - ISO transfer registers
#define Com16_HcISTLBufferSize 0x30
#define Com16_HcISTL0BufferPort 0x40
#define Com16_HcISTL1BufferPort 0x42
#define Com16_HcISTLToggleRate 0x47
// 1362 - Interrupt transfer registers
#define Com16_HcINTLBufferSize 0x33
#define Com16_HcINTLBufferPort 0x43
#define Com16_HcINTLBlkSize 0x53
#define Com32_HcINTLPTDDoneMap 0x17
#define Com32_HcINTLPTDSkipMap 0x18
#define Com32_HcINTLLastPTD 0x19
#define Com16_HcINTLCurrentActiePTD 0x1A
// 1362 - Aperiodic transfer registers
#define Com16_HcATLBufferSize 0x34
#define Com16_HcATLBufferPort 0x44
#define Com16_HcATLBlkSize 0x54
#define Com32_HcATLPTDDoneMap 0x1B
#define Com32_HcATLPTDSkipMap 0x1C
#define Com32_HcATLLastPTD 0x1D
#define Com16_HcATLCurrentActiePTD 0x1E
#define Com16_HcATLPTDDoneThresholdCount 0x51
#define Com16_HcATLPTDDoneThresholdTimeOut 0x52
/****************************************************************************/
/* constants */
/****************************************************************************/
#define PTD_HEADER_SIZE 8
#define DISABLE 0
#define ENABLE 1
#define DirectionPID_SETUP 0
#define DirectionPID_OUT 1
#define DirectionPID_IN 2
#define NoDirection_Just_Hold 3
#define SETUP DirectionPID_SETUP
#define OUT DirectionPID_OUT
#define IN DirectionPID_IN
#define HOLD NoDirection_Just_Hold
typedef struct PTD_h_p {
unsigned short ActualBytes;
unsigned char CompletionCode;
unsigned char Active;
unsigned char Toggle;
unsigned short MaxPacketSize;
unsigned char EndpointNumber;
unsigned char Last;
unsigned char Speed;
unsigned short TotalBytes;
unsigned char DirectionPID;
unsigned char Format;
unsigned char FunctionAddress;
unsigned char PollingRate;
unsigned char StartingFrame;
}
PTD_header_param;
extern void read_direct_access( unsigned short address, unsigned char *data, unsigned short length );
extern void write_direct_access( unsigned short address, unsigned char *data, unsigned short length );
extern void read_register_burst_char( unsigned short register_address, unsigned char *data, unsigned short length );
extern void write_register_burst_char( unsigned short register_address, unsigned char *data, unsigned short length );
extern void read_register_burst_int( unsigned short register_address, unsigned char *data, unsigned short length );
extern void write_register_burst_int( unsigned short register_address, unsigned short *data, unsigned short length );
extern unsigned long read_register32( unsigned short register_address );
extern void write_register32( unsigned short register_address, unsigned long value );
extern unsigned short read_register16( unsigned short register_address );
extern void write_register16( unsigned short register_address, unsigned short value );
extern void erase_all( void );
extern void memory_test( void );
extern void check_1362_connection();
extern void Hc_reset();
extern void set_regValue();
extern void buffer_setting();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -