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

📄 si4702_common.h

📁 全球最小的收音芯片代码
💻 H
字号:
 /******************************************************
START condition:

SCLK: -----------|______
		     
SDIO:-----|_____________
       1  |   2  |  3

STOP condition:

SCLK: ____|--------------
		     
SDIO:____________|-------
	1 |  2   |   3

DATA:

SCLK:_______________|---|________|----|_______
		     
SDIO:___________|------------|____________|----
		|<==========>|


RESET:

SENB:__|---------------------------------------------
SDIO:_________________________________________|------
RST:  ___________|------------------------------------
SCLK:__|---------------------------------------------
       |    1    |	     2	       	      |   3

********************************************************/

/********************************************************
following macro should be defined by customer
********************************************************/

#define DURATION_INIT_1 	600ns mininum
#define DURATION_INIT_2	  600ns minimum
#define DURATION_INIT_3 	600ns minimum

#define DURATION_START_1	600ns minimum
#define DURATION_START_2	600ns minimum
#define DURATION_START_3	800ns minimum

#define DURATION_STOP_1  	800ns minimum
#define DURATION_STOP_2	  600ns minimum
#define DURATION_STOP_3	  1300ns minimum

#define DURATION_HIGH		900ns minimum
#define DURATION_LOW		1600ns minimum

#define POWER_SETTLING		110ms
#define XO_SETTLING				500ms

#define RST_PIN			XX
#define SDIO_PIN		XX
#define SCLK_PIN		XX

/********************************************************
following macro related to MTK solution
********************************************************/

#define GPIO_INPUT		0		/* IO in input */
#define GPIO_OUTPUT		1		/* IO in output */

#define RST_LOW		GPIO_WriteIO(0, RST_PIN)	//set RST to low			
#define RST_HIGH	GPIO_WriteIO(1, RST_PIN)	//set RST to high
#define SDIO_DIR_OUT	GPIO_InitIO(GPIO_OUTPUT, SDIO_PIN)	//set SDIO to output mode
#define	RST_DIR_OUT	GPIO_InitIO(GPIO_OUTPUT, RST_PIN)	//set RST to output mode
#define	SCLK_DIR_OUT	GPIO_InitIO(GPIO_OUTPUT, SCLK_PIN)	//set SCLK to output mode
#define SDIO_DIR_IN	GPIO_InitIO(GPIO_INPUT, SDIO_PIN)	//set SDIO to input mode
#define SDIO_LOW	GPIO_WriteIO(0, SDIO_PIN)	//set SDIO to low
#define SDIO_HIGH	GPIO_WriteIO(1, SDIO_PIN)	//set SDIO to high
#define READ_SDIO	GPIO_ReadIO(SDIO_PIN)  		//read SDIO routine, should return 0 or 1
#define SCLK_LOW	GPIO_WriteIO(0, SCLK_PIN)	//set SCLK to low
#define SCLK_HIGH	GPIO_WriteIO(1, SCLK_PIN)	//set SCLK to high

#define	RST_PIN_INIT	GPIO_ModeSetup(RST_PIN, 0)	//init GPIO RST
#define	SDIO_PIN_INIT	GPIO_ModeSetup(SDIO_PIN, 0)	//init GPIO SDIO
#define	SCLK_PIN_INIT	GPIO_ModeSetup(SCLK_PIN, 0)	//init GPIO SCLK 

#define DELAY(DURATION)		{volatile unsigned short i; for(i = 1; i <= DURATION; i++){}}

/********************************************************
typedef and function claim
********************************************************/

typedef enum OPERA_MODE {
    READ = 1,
    WRITE = 2
} T_OPERA_MODE;

typedef enum ERROR_OP {
    OK = 1,
    I2C_ERROR = 2,
    LOOP_EXP_ERROR = 3,
    ERROR = 4
} T_ERROR_OP;

typedef enum SEEK_MODE {
    SEEKDOWN_HALT = 1,
    SEEKDOWN_WRAP = 2,
    SEEKUP_HALT = 3,
    SEEKUP_WRAP = 4
} T_SEEK_MODE;


/*Si4702 internal use routine claim*/
unsigned char OperationSi47XX_2w(T_OPERA_MODE operation, unsigned char *data, unsigned char numBytes);


















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -