新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 长沙市| 梅州市| 连江县| 绥江县| 九龙城区| 扬州市| 晴隆县| 静海县| 霍林郭勒市| 茂名市| 从化市| 河津市| 炎陵县| 蕲春县| 博白县| 青岛市| 南京市| 通江县| 黄平县| 新龙县| 虞城县| 宝应县| 北川| 江永县| 沧州市| 贵州省| 泗洪县| 昌都县| 朝阳市| 大港区| 金阳县| 绩溪县| 乌鲁木齐市| 洪湖市| 紫阳县| 霍州市| 紫金县| 黄平县| 海口市| 武清区| 崇义县|