資源簡介
SI4702的資料,有示例代碼,很好操作的。

代碼片段和文件信息
/**************************************
Si47XX?I2C?part
***************************************/
#include?“Si4702_common.h“
/***********************************************
MTK?GPIO?routine?claim
***********************************************/
void?GPIO_ModeSetup(kal_uint16?pin?kal_uint16?conf_dada);
void?GPIO_InitIO(char?direction?char?port);
void?GPIO_WriteIO(char?datachar?port);
char?GPIO_ReadIO(char?port);
/********************************************************
Before?reset?make?sure?following?for?2-wire?mode:
RCLK?=?32KHz
SENB?=?1(Bus?mode?1?decided?by?SENB?SDIO?must?be?low)
if?use?bus?mode?2?decided?by?GPIO1&3
*********************************************************/
void?ResetSi47XX_2w(void)
{
RST_PIN_INIT;
SDIO_PIN_INIT;
SCLK_PIN_INIT;
RST_DIR_OUT;
SCLK_DIR_OUT;
SDIO_DIR_OUT;
SDIO_LOW;
RST_LOW;
SCLK_HIGH;
DELAY(DURATION_INIT_1);
RST_HIGH;
DELAY(DURATION_INIT_2);
SDIO_HIGH;
DELAY(DURATION_INIT_3);
}
unsigned?char?OperationSi47XX_2w(T_OPERA_MODE?operation?unsigned?char?*data?unsigned?char?numBytes)
{
unsigned?char?controlWord??j?error?=?0;
int?i;
/***************************************************
START:?make?sure?here?SDIO_DIR?=OUT?SCLK?=?1 SDIO?=?1
****************************************************/
SCLK_HIGH;
SDIO_HIGH;
DELAY(DURATION_START_1);
SDIO_LOW;
DELAY(DURATION_START_2);
SCLK_LOW;
DELAY(DURATION_START_3);
/***************************************************
WRITE?CONTROL?DATA:?make?sure?here:?SLCK?=?0;?SDIO?=?0
****************************************************/
if(operation?==?READ)
controlWord?=?0x21;
else?
controlWord?=?0x20;
for(i?=?7;?i>=0;?i--)
{
if((controlWord?>>?i)?&?0x01)
SDIO_HIGH;
else
SDIO_LOW;
DELAY(DURATION_LOW/2);
SCLK_HIGH;
DELAY(DURATION_HIGH);
SCLK_LOW;
DELAY(DURATION_LOW/2);
}
/***************************
CHECK?ACK?for?control?word
***************************/
SDIO_DIR_IN;
DELAY(DURATION_LOW/2);
SCLK_HIGH;
DELAY(DURATION_HIGH);
if(READ_SDIO?!=?0)
{
error?=?1;
goto?STOP;
}
????????SCLK_LOW;
DELAY(DURATION_LOW/2);
/***************************************
WRITE?or?READ?data
****************************************/
for(j?=?0;?j? {
if(operation?==?WRITE)
SDIO_DIR_OUT;?
else
SDIO_DIR_IN;
for(i?=?7;?i>=0;?i--)
{
if(operation?==?WRITE)
if((*data?>>?i)?&?0x01)
SDIO_HIGH;
else
SDIO_LOW;
DELAY(DURATION_LOW/2);
SCLK_HIGH;
DELAY(DURATION_HIGH);
????????????????????????if(operation?==?READ)
*data?=?(*data?<1)?|?READ_SDIO;
SCLK_LOW;
DELAY(DURATION_LOW/2);
}
/******************************
CHECK?ACK?or?SEND?ACK=0
*******************************/
if(operation?==?WRITE)
SDIO_DIR_IN;
else
{
SDIO_DIR_OUT;
if(j?==?(numBytes?-?1))
SDIO_HIGH;
e
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????3478??2007-10-31?17:16??Si470x_drv_1123\Si4702_common.h
?????文件???????1094??2007-12-03?13:48??Si470x_drv_1123\Si4702_drv.h
?????文件???????3539??2007-09-05?15:39??Si470x_drv_1123\Si4702_I2C.c
?????文件??????11714??2007-11-23?15:08??Si470x_drv_1123\Si4702_RX_FM.c
?????文件?????457330??2007-11-30?09:58??AN230.pdf
?????文件????1861540??2007-10-23?11:08??AN231.pdf
?????文件????1018340??2008-01-04?14:08??Si4702-03-C19.pdf
?????目錄??????????0??2007-11-23?11:33??Si470x_drv_1123
-----------?---------??----------?-----??----
??????????????3357035????????????????????8
評(píng)論
共有 條評(píng)論