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

📄 fs7805.h

📁 FS7805 使用APLIF的demoFS7805 使用APLIF的demo
💻 H
📖 第 1 页 / 共 2 页
字号:
/*
*********************************************************************************************************
* 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 + -