• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 消費電子 > 設計應用 > 一種基于WinCE6.0的數字調頻收音機的設計

    一種基于WinCE6.0的數字調頻收音機的設計

    作者: 時間:2011-06-27 來源:網絡 收藏

    2.2 Si4730的控制接口
    Si4730的外圍電路非常簡單,如圖3所示。Si4730提供了3種控制方式:2線模式(兼容I2C總線)、SPI模式、3線模式。芯片通過RST引腳上升沿時GP01與GP02的引腳狀態來決定采用哪種方式,當GP01與GP02懸空時Si4730為2線模式。SEN引腳接高電平時,器件地址為0xC6H;接低電平時,地址為0x22H。

    本文引用地址:http://www.czjhyjcfj.com/article/166128.htm

    k.JPG



    3 接口電路與驅動程序的
    的硬件平臺采用S3C2440處理器,已經完成BSP包的開發以及WinCE 6.0操作系統的移植。
    3.1 接口電路的
    由于S3C2440具有I2C接口,所以只需將其與Si4730的I2C接口互相連接。Si4730的復位引腳RST與S3C2440的GPB5引腳相連。
    3.2 驅動程序的設計
    驅動程序由兩部分組成:I2C總線的驅動和GPIO口的驅動。I2C總線的驅動用于操作系統與Si4730之間的通信,GPIO口的驅動用于應用程序控制Si4730的復位。
    3.2.1 Si4730的命令
    Si4730的命令有兩種:一種是控制命令,如調諧到某一頻率、自動搜索等;一種是屬性命令,如設置接收信號的強度門限、輸出音量的大小等。常用的命令有以下幾種:
    ①上電(POWER_UP),命令格式為{0x01,0xd0,0x05}。
    ②獲取芯片信息(GET_REV),命令格式為{0x10}。
    ③調諧到某一頻率(FM_TUNE_FREQ),命令格式為{0x20,0x00,ARG2,ARG3,0x00}。其中ARG2與ARG3是頻率的十六進制數,例如102.3 MHz,則ARG2為0x27,ARG3為0xF6。
    ④自動搜索(FM_SEEK_START),命令格式為{0x21,0x0c)。
    3.2.2 I2C總線驅動的實現
    這里采用流接口驅動程序的設計方法開發I2C總線驅動。I2C總線驅動提供給操作系統的流接口為I2C_Init()、I2C Open()、I2C Close()、I2C Write()、I2C Read()、I2C_IOControl()等,應用程序通過調用CreateFile()、WirteFile()和DeviceloControl()等接口函數來訪問設備。在已編譯完成的.0鏡像工程中添加I2C總線驅動的流程如圖4所示。

    l.JPG


    ①添加子工程。在鏡像工程的Solution Explorer窗口中,右鍵選擇Add New Subproject,新建子工程。
    ②編寫I2C總線驅動程序。在Source files下新建I2c.c的源文件,并在該文件中編寫驅動代碼,驅動程序的主要內容就是實現流接口函數。讀I2C總線的實現函數為BooL_WRITE_IIC(UINT32 slvAddr,UINT8 n,UINT8*data)。寫I2C總線的實現函數為BooL READ_IIC(UINT32 slvA-ddr,UINT32 addr,UINT8 n,UINT8*data)。I2C_IOControl()的作用是傳遞I/O控制命令給設備,在該函數里實現了對Si4730的控制。部分代碼如下:
    m.JPG
    d.JPG



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 新绛县| 揭东县| 谷城县| 渝中区| 云梦县| 遵义县| 宁武县| 曲水县| 紫阳县| 马尔康县| 政和县| 铁岭县| 增城市| 江阴市| 浏阳市| 盐亭县| 新民市| 开原市| 雷山县| 黎城县| 古丈县| 甘孜县| 精河县| 鹤峰县| 那曲县| 呼图壁县| 那曲县| 崇左市| 固阳县| 昌都县| 监利县| 北海市| 莱西市| 静宁县| 虎林市| 分宜县| 万荣县| 安新县| 西乌珠穆沁旗| 密云县| 乌拉特前旗|