精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AT24C02的引腳功能和在Keil C中的程序編寫步驟

電子設計 ? 來源:現代電子技術 ? 作者:盧旭錦 ? 2020-09-22 17:30 ? 次閱讀

AT24C02是美國Atmel公司的低功耗CMOS型E2PROM,內含256×8位存儲空間,具有工作電壓寬(2.5~5.5 V)、擦寫次數多(大于10 000次)、寫入速度快(小于10 ms)、抗干擾能力強、數據不易丟失、體積小等特點。而且他是采用了I2C總線式進行數據讀寫的串行器件,占用很少的資源和I/O線,并且支持在線編程,進行數據實時的存取十分方便。

1 AT24C02的引腳功能

AT24C02引腳如圖1所示。

AT24C02的引腳功能和在Keil C中的程序編寫步驟

他的的1、2、3腳是3根地址線,用于確定芯片硬件地址。第8腳和第4腳分別為正、負電源。第5腳SDA為串行數據輸入/輸出,數據通過這根雙向I2C總線串行傳送。第6腳SCL為串行時鐘,SDA和SCL為漏極開路端,在實際的應用當中都需要和正電源間各接一個5.1 kΩ的電阻上拉。第7腳為WP寫保護端,接地時允許芯片執行一般的讀寫操作;接正電源時只允許對器件進行讀操作。

2 AT24C02的內部結構

圖2為AT24C02的內部結構圖。

啟動、停止邏輯單元 接收數據引腳SDA上的電平信號,判斷是否進行啟動和停止操作串行控制邏輯單元 根據SCL,SDA電平信號以及“啟動、停止邏輯”部件發出的各種信號進行區分,并排列出有關的“尋址”、“讀數據”和“寫數據”等邏輯,將他們傳送到相應的操作單元。例如:當操作命令為“尋址”時候,他將通知地址計數器加1,并啟動“地址比較”器進行工作。在“讀數據”時,他控制“Dout/確認邏輯”單元;在“寫數據”時候,他控制“高壓泵/定時”電路,以便向E2PROM電路提供編程所需要的高電壓。

地址/計數器單元 產生訪問E2PROM所需要的存儲單元的地址,并將其分別送到X譯碼器進行字選,送到Y譯碼器進行位選。

高壓泵/定時單元 由于E2PROM數據寫入時候需要向電路施加編程高電壓,為了解決單一電源電壓的供電問題,芯片生產廠家采用了電壓的片內提升電路。電壓的提升范圍一般可以達12~21.5 V。

Dout/確認邏輯單元 地址和數據均以8位二進制碼串行輸入/輸出。數據傳送時,每成功傳送一個字節數據后,接收器都必須產生一個應答信號。在第9個時鐘周期時將SDA線置于低電壓作為應答信號。

AT24C02中帶有的片內地址寄存器。每寫入或讀出一個數據字節后,該地址寄存器自動加1,以實現對下一個存儲單元的讀寫。所有字節均以單一操作方式讀取。為降低總的寫入時間,一次操作可寫入多達8個字節的數據。

I2C總線是一種用于IC器件之間連接的二線制總線。他通過SDA(串行數據線)及SCL(串行時鐘線)兩根線在連到總線上的器件之間傳送信息,并根據地址識別每個器件。 AT24C02正是運用了I2C規程,使用主/從機雙向通信,主機(通常為單片機)和從機(AT24C02)均可工作于接收器和發送器狀態。主機產生串行時鐘信號(通過SCL引腳)并發出控制字,控制總線的傳送方向,并產生開始和停止的條件。無論是主機還是從機,接收到一個字節后必須發出一個確認信號ACK。

AT24C02的控制字由8位二進制數構成,在開始信號發出以后,主機便會發出控制字,以選擇從機并控制總線傳送的方向。控制字各位的具體作用見表1。

由上表可知,控制字的高4位為AT24C02的識別位,是不能更改的;而第A0,A1,A2片選位,最后是一位是讀寫控制位,當其為1時,進行的是讀操作,反之將要進行的是寫操作。

3 AT24C02的讀寫操作

3.1 開始位、停止位和確認位的編程

總線SCL和SDA一般由上拉電阻拉為高電平,只有在SCL為低電平的周期內,SDA引腳上的數據才有效。而當SCL為高電平期間SDA引腳上產生的電平變化則表示I2C總線工作的“開始”或“停止”兩種狀態:當SCL為高平時,SDA由高電平轉向低電平時表示“開始”狀態,而由低電平轉向高電平時表示“停止”狀態,其時序如圖3所示。

由時序圖可以編寫由主機發給AT24C02的開始信號和停止信號的KEIL C語言函數如下:

同時,AT24C02與主機進行信息交換,還需要另外一個“確認信號(ACK)”的狀態。I2C總線數據傳送時,每成功地傳送一個字節數據后,AT24C02都必須產生一個應答信號,應答的器件在第9個時鐘周期時將SDA線拉低,表示其已收到一個8位數據。AT24C02在接收到起始信號和與之匹配的地址之后就會響應第一個應答信號;如果AT24C02被設置為寫操作,則每接收一個字節之后響應一個應答信號;當AT24C02被設置在讀模式時,則在發送一個字節的數據后會釋放SDA線,并監視主機發過來的應答信號,一旦接收到應答信號,AT24C02繼續發送數據,如主機沒有發送應答信號,AT24C02將停止傳送數據并等待一個停止信號,此時主機必須發送一個停止信號給AT24C02,使其進入備用電源模式并使AT24C02處于已知的狀態。由此可見,應答信號在AT24C02的讀寫工作中經常用到,根據圖4應答信號的時序圖。

可以編出一個檢驗是否有應答信號送來的操作函數如下:

3.2 寫操作

AT24C02允許有兩種寫操作方式:字節寫和頁寫。

3.2.1 AT24C02字節寫操作。

其操作時序如圖5所示。在字節寫模式下,主機發送開始命令和AT24C02地址信息(“R/W”位置0)給AT24C02,主機在收到AT24C02產生應答信號后發送1個字節地址寫入AT24C02的地址指針。主機在收到從器件的另一個應答信號后,再發送數據到被尋址的存儲單元。AT24C02再次應答,并在主機產生停止信號后開始內部數據的擦寫。在內部擦寫過程中,AT24C02不再應答主機的任何請求。根據圖5則可以編寫出AT24C02的字節寫操作函數W1Byte如下:

3.2.2 AT24C02頁寫操作

AT24C02允許每次寫入8個字節的頁寫操作模式,頁寫操作和字節寫操作的時序差不多都相同,不同的是在于傳送了一字節數據后并不產生停止信號,主機被允許再發送7個額外的字節。每發送一個字節數據后,AT24C02產生一個應答位。如果在發送停止信號之前,主機發送超過8個字節,AT24C02內部地址計數器將自動翻轉,先前寫入的數據被覆蓋。接收主機發送的停止信號后,AT24C02啟動內部寫周期將數據寫到數據區。因此,可以編寫一個頁寫操作的函數如下:

3.3 讀操作

AT24C02的讀操作主要有立即地址讀取、隨機地址讀取和順序地址存取3種。立即地址讀取方式由一個空字節序列來加載數據地址,當從機尋址碼和數據尋址碼隨鐘輸入,并被確認時,從機必須產生另一個開始狀態,通過發出一個確認讀取的信號之后,數據便隨時鐘串行輸出,數據的讀取不通過確認狀態應答,而是通過一個停止狀態來應答。其他兩種方式基本類似,只是不需要產生另一個開始狀態,而順序地址讀取時,讀出的是連續數據。讀操作的時序圖類似于圖4的寫操作時序,因此可編出讀一個字節的函數RlByte如下:

當然,對于AT2402的讀取往往不是只一個字節,更多的時候還是想一連幾個字節一起讀取,因此,可編出連續讀取N個字節的函數如下:

4 綜合應用舉例

以圖6所示硬件電路為例,調用上面所編寫的函數,將數據00H~07H送到AT24C02內部首地址為10H的地方存放,并將AT24C02內部以20H為首地址的連續8個字讀到AT89C51的內部RAM20H~27H存放。其主程序如下:

其實,AT24CXX系列的E2PROM芯片很多,但其編程不盡相同。由于C語言的編程要精準控制時間很不容易,因此往往有些工程人員碰到類似的I2C硬件結構,大多采用C語言與匯編語言混合編程的方法。經過一番實踐之后,覺得上述所編寫的函數幾乎可以用到所有I2C結構的硬件,只需要大家花一點時間調試下DELAY函數的時間就可以了。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5317

    瀏覽量

    120008
  • 編程
    +關注

    關注

    88

    文章

    3592

    瀏覽量

    93596
  • 譯碼器
    +關注

    關注

    4

    文章

    310

    瀏覽量

    50280
收藏 人收藏

    評論

    相關推薦

    STM32 IIC讀寫AT24C02(二)

    上次已經完成了IIC讀寫AT24C02的協議層,現在開始編寫讀寫AT24C02的驅動函數。先從單字節的讀寫開始。
    發表于 07-22 10:31 ?1421次閱讀
    STM32 IIC讀寫<b class='flag-5'>AT24C02</b>(二)

    AT24C02/AT24C04/AT24C08/AT24C1

    AT24C02/AT24C04/AT24C08/AT24C16/AT24C32/AT24C56序
    發表于 08-13 15:28 ?253次下載

    AT24C02引腳功能及管腳電壓

    AT24C02引腳功能及管腳電壓 概述:AT24C02 它具有二線串行接口、雙向數據傳
    發表于 10-10 14:53 ?1.9w次閱讀
    <b class='flag-5'>AT24C02</b>各<b class='flag-5'>引腳</b><b class='flag-5'>功能</b>及管腳電壓

    AT24C02資料手冊

    at24c02資料手冊 中文資料很實用的at24c02資料
    發表于 03-22 17:38 ?83次下載

    讀寫AT24C02 并顯示

    關于AT24C02存儲芯片的介紹,便于各位查閱
    發表于 05-16 17:38 ?11次下載

    at24c02讀取程序頭文件

    at24c02讀取程序頭文件,每8個數據存一次,可以一次性讀出來
    發表于 08-05 17:32 ?6次下載

    at24c02的使用-匯編

    電子專業,單片機、DSP、ARM相關知識學習資料與教材——at24c02的使用-匯編,感興趣的小伙伴可以看一看。
    發表于 11-03 17:26 ?0次下載

    AT24C02

    AT24C02
    發表于 01-24 16:00 ?13次下載

    AT24C02數據手冊

    AT24C02是一個2K位串行CMOS E2PROM, 內部含有256個8位字節,CATALYST公司的先進CMOS技術實質上減少了器件的功耗。AT24C02有一個8字節頁寫緩沖器
    發表于 02-15 23:43 ?44次下載

    AT24C02資料

    AT24C02資料
    發表于 12-06 17:14 ?29次下載
    <b class='flag-5'>AT24C02</b>資料

    AT24C02的讀寫程序,24C02 read / write process

    AT24C02的讀寫程序,24C02 read / write process 關鍵字:AT24C02的讀寫程序
    的頭像 發表于 09-20 19:42 ?2193次閱讀

    使用AT24C02設計密碼鎖的程序免費下載

    本文檔的主要內容詳細介紹的是使用AT24C02設計密碼鎖的程序免費下載。
    發表于 04-25 18:47 ?29次下載
    使用<b class='flag-5'>AT24C02</b>設計密碼鎖的<b class='flag-5'>程序</b>免費下載

    EEPROM存儲芯片AT24C02芯片手冊

    EEPROM存儲芯片AT24C02芯片手冊(嵌入式開發培訓需要學多久)-EEPROM存儲芯片AT24C02芯片手冊
    發表于 07-30 13:20 ?183次下載
    EEPROM存儲芯片<b class='flag-5'>AT24C02</b>芯片手冊

    AT24C02程序

    AT24C02程序bit write=0;sbit SDA=P2^0;sbit SCL=P2^1;void delayus(){;;}void start(){SDA=1;delayus();SCL
    發表于 12-09 15:06 ?16次下載
    <b class='flag-5'>AT24C02</b><b class='flag-5'>程序</b>

    Linux驅動開發-編寫(EEPROM)AT24C02驅動

    系統里如何編寫AT24C02的驅動,并且在應用層完成驅動讀寫測試,將AT24C02的存儲空間映射成文件,在應用層,用戶可以直接將AT24C02當做一個普通文件的形式進行讀寫,偏移文件指
    的頭像 發表于 09-17 15:29 ?3632次閱讀
    Linux驅動開發-<b class='flag-5'>編寫</b>(EEPROM)<b class='flag-5'>AT24C02</b>驅動