📄 fs7805.h
字号:
/*
*********************************************************************************************************
* File: fs7805.H
* Contents: FS7822 register declarations and bit mask definitions
*
* $Date: 04/06/06 Kimi v0.1
* $Date: 04/25/06 Kimi v0.2
* $Date: 04/30/06 Kimi v0.3
* $Date: 01/23/07 Kevin v0.4
* $Date: 02/02/07 Kevin v0.5
* Copyright (c) 2006 Fameg, Inc. All rights reserved
*********************************************************************************************************
*/
#include "config.h"
#define FS7805A
#ifndef __FS7805_H__
#define __FS7805_H__
#ifdef ALLOCATE_EXTERN
#define EXTERN
#define _AT_ _at_
#else
#define EXTERN extern
#define _AT_ ;/ ## /
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
/*
*********************************************************************************************************
* DATA TYPES
* (Compiler Specific)
*********************************************************************************************************
*/
typedef unsigned char BOOLEAN;
typedef bit BOOL; // Unsigned 1 bit quantity
typedef unsigned char INT8U; // Unsigned 8 bit quantity
typedef signed char INT8S; // Signed 8 bit quantity
typedef unsigned int INT16U; // Unsigned 16 bit quantity
typedef signed int INT16S; // Signed 16 bit quantity
typedef unsigned long INT32U; // Unsigned 32 bit quantity
typedef signed long INT32S; // Signed 32 bit quantity
typedef float FP32; // Single precision floating point
#define BYTE INT8U // Define data types for backward compatibility
#define WORD INT16U
#define DWORD INT32U
#define bmBIT0 0x01
#define bmBIT1 0x02
#define bmBIT2 0x04
#define bmBIT3 0x08
#define bmBIT4 0x10
#define bmBIT5 0x20
#define bmBIT6 0x40
#define bmBIT7 0x80
#define AplifIdle() (APLIFTS & bmAPLIF_STATUS)
#define SC_GET_STATUS 0x00 // Setup command: Get Status
#define SC_CLEAR_FEATURE 0x01 // Setup command: Clear Feature
#define SC_SET_FEATURE 0x03 // Setup command: Set Feature
#define SC_SET_ADDRESS 0x05 // Setup command: Set Address
#define SC_GET_DESCRIPTOR 0x06 // Setup command: Get Descriptor
#define SC_SET_DESCRIPTOR 0x07 // Setup command: Set Descriptor
#define SC_GET_CONFIGURATION 0x08 // Setup command: Get Configuration
#define SC_SET_CONFIGURATION 0x09 // Setup command: Set Configuration
#define SC_GET_INTERFACE 0x0a // Setup command: Get Interface
#define SC_SET_INTERFACE 0x0b // Setup command: Set Interface
#define SC_SYNCH_FRAME 0x0c // Setup command: Sync Frame
/*
*********************************************************************************************************
* VENDOR REQUESTS
*********************************************************************************************************
*/
#define VR_UPLOAD 0xc0 // Download Firmware into program memory
#define GD_DEVICE 0x01 // Get descriptor: Device
#define GD_CONFIGURATION 0x02 // Get descriptor: Configuration
#define GD_STRING 0x03 // Get descriptor: String
#define GD_INTERFACE 0x04 // Get descriptor: Interface
#define GD_ENDPOINT 0x05 // Get descriptor: Endpoint
#define GD_DEVICE_QUALIFIER 0x06 // Get descriptor: Device Qualifier
#define GD_OTHER_SPEED_CONFIGURATION 0x07 // Get descriptor: Other Configuration
#define GD_INTERFACE_POWER 0x08 // Get descriptor: Interface Power
#define GS_DEVICE 0x80 // Get Status: Device
#define GS_INTERFACE 0x81 // Get Status: Interface
#define GS_ENDPOINT 0x82 // Get Status: End Point
#define FT_DEVICE 0x00 // Feature: Device
#define FT_ENDPOINT 0x02 // Feature: End Point
/*
*********************************************************************************************************
* VENDOR REQUESTS TYPE
*********************************************************************************************************
*/
#define VR_DOWNLOAD 0x40 // Download Firmware into program memory
#define DSCR_DEVICE_LEN 18
#define DSCR_CONFIGURATION_LEN 9
#define DSCR_INTERFACE_LEN 9
#define DSCR_ENDPOINT_LEN 7
#define DSCR_DEVICE_QUALIFIER_LEN 10
#define DSCR_CONFIGURATION_TOTALLEN 32
#define DSCR_STRING0_LEN 4
#define DSCR_STRING1_LEN 12
#define DSCR_STRING2_LEN 28
/*
*********************************************************************************************************
* DEFINE ENDPOINT MACRO
*********************************************************************************************************
*/
#define bmEP_TYPE_ISO 0x01
#define bmEP_TYPE_BULK 0x02
#define bmEP_TYPE_INT 0x03
#define bmEP_MAP_EP1 0x01 // 0001: Endpoint 1
#define bmEP_MAP_EP2 0x02 // 0010: Endpoint 2
#define bmEP_MAP_EP3 0x03 // 0011: Endpoint 3
#define bmEP_MAP_EP4 0x04 // 0100: Endpoint 4
#define bmEP_MAP_EP5 0x05 // 0101: Endpoint 5
#define bmEP_MAP_EP6 0x06 // 0110: Endpoint 6
#define bmEP_MAP_EP7 0x07 // 0111: Endpoint 7
#define bmEP_MAP_EP8 0x08 // 1000: Endpoint 8
#define bmEP_MAP_EP9 0x09 // 1001: Endpoint 9
#define bmEP_MAP_EP10 0x0a // 1010: Endpoint 10
#define bmEP_MAP_EP11 0x0b // 1011: Endpoint 11
#define bmEP_MAP_EP12 0x0c // 1100: Endpoint 12
#define bmEP_MAP_EP13 0x0d // 1101: Endpoint 13
#define bmEP_MAP_EP14 0x0e // 1110: Endpoint 14
#define bmEP_MAP_EP15 0x0f // 1111: Endpoint 15
#define bmEPA_PFLAG 0x01 // 0001: EPA Programmable Full Flag (PF)
#define bmEPA_FFLAG 0x02 // 0010: EPA Full Flag (FF)
#define bmEPA_EFLAG 0x03 // 0011: EPA Empty Flag (EF)
#define bmEPB_PFLAG 0x04 // 0100: EPB Programmable Full Flag (PF)
#define bmEPB_FFLAG 0x05 // 0101: EPB Full Flag (FF)
#define bmEPB_EFLAG 0x06 // 0110: EPB Empty Flag (EF)
#define bmEPC_PFLAG 0x07 // 0111: EPC Programmable Full Flag (PF)
#define bmEPC_FFLAG 0x08 // 1000: EPC Full Flag (FF)
#define bmEPC_EFLAG 0x09 // 1001: EPC Empty Flag (EF)
#define bmEPD_PFLAG 0x0a // 1010: EPD Programmable Full Flag (PF)
#define bmEPD_FFLAG 0x0b // 1011: EPD Full Flag (FF)
#define bmEPD_EFLAG 0x0c // 1100: EPD Empty Flag (EF)
#ifdef FS7805A
#define DMA_FIFOA0 0xEE00 // 512 Byte Data FIFO A0
#define DMA_FIFOA1 0xF000 // 512 Byte Data FIFO A1
#define DMA_FIFOB0 0xF200 // 512 Byte Data FIFO B0
#define DMA_FIFOB1 0xF400 // 512 Byte Data FIFO B1
#define DMA_FIFOC0 0xF600 // 512 Byte Data FIFO C0
#define DMA_FIFOC1 0xF800 // 512 Byte Data FIFO C1
#define DMA_FIFOD0 0xFA00 // 512 Byte Data FIFO D0
#define DMA_FIFOD1 0xFC00 // 512 Byte Data FIFO D1
#else
#define DMA_FIFOA0 0xEC00 // 512 Byte Data FIFO A0
#define DMA_FIFOA1 0xEE00 // 512 Byte Data FIFO A1
#define DMA_FIFOB0 0xF000 // 512 Byte Data FIFO B0
#define DMA_FIFOB1 0xF200 // 512 Byte Data FIFO B1
#define DMA_FIFOC0 0xF400 // 512 Byte Data FIFO C0
#define DMA_FIFOC1 0xF600 // 512 Byte Data FIFO C1
#define DMA_FIFOD0 0xF800 // 512 Byte Data FIFO D0
#define DMA_FIFOD1 0xFA00 // 512 Byte Data FIFO D1
#endif
/*
*********************************************************************************************************
* MACRO DEFINE
*********************************************************************************************************
*/
#ifdef FIFO_SIZE_1024
#ifdef PINGPONG_FIFO
#ifdef FIFO_A_IN
#define EP1CS EPACS
#define EP1CTRL EPACTRL
#define EP1FIFOCS EPAFIFOCS
#define EP1CNT0L EPACNT0L
#define EP1CNT1L EPACNT1L
#define EP1CNTH EPACNTH
#define bmEP1IE bmEPAIE
#define bmEP1INT bmEPAINT
#define DMA_FIFO1_0 DMA_FIFOA0
#define DMA_FIFO1_1 DMA_FIFOB0
#define EP1APLIFTRIG EPAAPLIFTRIG
#endif
#ifdef FIFO_C_IN
#define EP1CS EPCCS
#define EP1CTRL EPCCTRL
#define EP1FIFOCS EPCFIFOCS
#define EP1CNT0L EPCCNT0L
#define EP1CNT1L EPCCNT1L
#define EP1CNTH EPCCNTH
#define bmEP1IE bmEPCIE
#define bmEP1INT bmEPCINT
#define DMA_FIFO1_0 DMA_FIFOC0
#define DMA_FIFO1_1 DMA_FIFOD0
#define EP1APLIFTRIG EPCAPLIFTRIG
#endif
#ifdef FIFO_A_OUT
#define EP2CS EPACS
#define EP2CTRL EPACTRL
#define EP2FIFOCS EPAFIFOCS
#define EP2CNT0L EPACNT0L
#define EP2CNT1L EPACNT1L
#define EP2CNTH EPACNTH
#define bmEP2IE bmEPAIE
#define bmEP2INT bmEPAINT
#define DMA_FIFO2_0 DMA_FIFOA0
#define DMA_FIFO2_1 DMA_FIFOB0
#define EP2APLIFTRIG EPAAPLIFTRIG
#endif
#ifdef FIFO_C_OUT
#define EP2CS EPCCS
#define EP2CTRL EPCCTRL
#define EP2FIFOCS EPCFIFOCS
#define EP2CNT0L EPCCNT0L
#define EP2CNT1L EPCCNT1L
#define EP2CNTH EPCCNTH
#define bmEP2IE bmEPCIE
#define bmEP2INT bmEPCINT
#define DMA_FIFO2_0 DMA_FIFOC0
#define DMA_FIFO2_1 DMA_FIFOD0
#define EP2APLIFTRIG EPCAPLIFTRIG
#endif
#else
#ifdef FIFO_A_IN
#define EP1CS EPACS
#define EP1CTRL EPACTRL
#define EP1FIFOCS EPAFIFOCS
#define EP1CNT0L EPACNT0L
#define EP1CNT1L EPACNT1L
#define EP1CNTH EPACNTH
#define bmEP1IE bmEPAIE
#define bmEP1INT bmEPAINT
#define DMA_FIFO1_0 DMA_FIFOA0
#define DMA_FIFO1_1 DMA_FIFOA1
#define EP1APLIFTRIG EPAAPLIFTRIG
#endif
#ifdef FIFO_B_IN
#define EP1CS EPBCS
#define EP1CTRL EPBCTRL
#define EP1FIFOCS EPBFIFOCS
#define EP1CNT0L EPBCNT0L
#define EP1CNT1L EPBCNT1L
#define EP1CNTH EPBCNTH
#define bmEP1IE bmEPBIE
#define bmEP1INT bmEPBINT
#define DMA_FIFO1_0 DMA_FIFOB0
#define DMA_FIFO1_1 DMA_FIFOB1
#define EP1APLIFTRIG EPBAPLIFTRIG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -