新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種I2C設備控制方法的設計和實現

        一種I2C設備控制方法的設計和實現

        作者: 時間:2012-11-12 來源:網絡 收藏

        為了快速讀寫數據,本文采用頁面寫的方式將數據寫入AT24C08;采用隨機讀和順序讀相結合的方式讀取AT24C08數據。

        3 軟件

        3.1 TWI初始化程序的

        根據TWI的功能特點,TWI初始化的初始化包括以下4步:

        (1)配置PIO器使復用管腳驅動TWI信號;

        (2)配置PMC使TWI時鐘處于工作狀態;

        (3)配置TWI為主工作模式。本文CPU為主,日歷和存儲芯片為從;

        (4)設置數據傳輸速率,配置TWI時鐘波形發生器寄存器。

        3.2 PCF8563驅動程序的

        為了PCF8563的工作方式,需要對其寫入字;為了得到PCF8563輸出的時間信息,需要對其進行讀操作,讀/寫數據的流程如圖3所示。

        本文設計編寫如下讀函數和寫函數:

        其中,pTwi是結構體指針,指向的結構體中存放TWI的寄存器,通過pTwi即可訪問各TWI寄存器;address表示地址;im_address表示設備內部地址;data代表讀寫數據的變量指針。

        因此,若使PCF8563工作于普通模式,并讀時數據,可用以下代碼

        3.3 AT24C08驅動程序的設計

        由于AT24C08由4個具有不同設備地址的頁組成,且采用連續讀寫數據的操作方式,所以AT24C08的讀寫與PCF8563讀寫有以下幾點區別。

        (1)先設置TWI_CR的起始標志,之后通過TWI_RHR和TWI_THR讀/寫TWI接口的數據;發送最后一個數據之前,再設置TWI_CR的停止標志。

        (2)對于多字節數據的讀寫,全部數據若沒有傳輸完畢,便不發送停止信號,所以需通過判斷TWI_SR寄存器中的TXRDY和RXRDY決定是否讀TWI_RHR和寫TWI_THR,而將是否出現停止信號作為是否停止發送和接收的判斷依據。

        (3)由于數據量和起始單元均是隨機的,所以有可能出現一頁寫不下的情況,因此針對給定的數據量和起始單元參數需要計算出共需幾頁,以便在進行頁面切換時更換設備地址。

        本文設計編寫了如下讀函數和寫函數。

        3.4 軟件的調試與運行

        本文采用IAR開發環境和J-LINK仿真器進行軟件的在線調試和加載運行。調用函數完成以下程序設計:首先從PCF8563連續讀出若干數據并寫入AT24C08;其次,將AT24C08中的數據讀至數組變量中。在程序中的讀完AT24C08數據后設置斷點,觀測數組中存放的數據,從而驗證驅動程序的正確性。

        4 結 語

        本文介紹了PCF8563和AT24C08的使用,通過分析基于ARM核的AT91SAM7X256的TWI接口控制,設計PCF8563和AT24C08的驅動程序,時鐘數據的讀取和存儲。

        本文設計的驅動模塊已成功地用于智能煤礦分站實驗系統中,完成了歷史時間數據的記錄功能,同時本文為ARM控制多個設備提供了可以借鑒的


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 康定县| 宣汉县| 太谷县| 五原县| 九龙坡区| 闸北区| 南召县| 金乡县| 高州市| 东阿县| 肥西县| 江城| 平凉市| 西平县| 广德县| 长武县| 许昌市| 门源| 恩平市| 乌鲁木齐市| 溧阳市| 遂溪县| 鲁甸县| 东乌珠穆沁旗| 额济纳旗| 那坡县| 波密县| 米林县| 马公市| 密云县| 兴城市| 新河县| 寿阳县| 高平市| 壶关县| 眉山市| 凌云县| 株洲市| 巴彦淖尔市| 宿迁市| 镇安县|