當前位置:首頁 > 單片機 > 單片機
[導讀]這一篇介紹I2C存儲器的使用。主要是介紹AT24CXX系列器件,它分為兩類,主要是通過被存儲容量地址來分的,一類是AT24C02-AT24C16,它的存儲容量從256字節(jié)到2048字節(jié)。另一類是AT24C32-AT24C1024,容量從4K-128K。(理論上好像可以達到最高512K字節(jié)容量,但現(xiàn)在網(wǎng)上最高也就能看到AT24C1024也就是128K字節(jié)容量)

這一篇介紹I2C存儲器的使用。主要是介紹AT24CXX系列器件,它分為兩類,主要是通過被存儲容量地址來分的,一類是AT24C02-AT24C16,它的存儲容量從256字節(jié)到2048字節(jié)。另一類是AT24C32-AT24C1024,容量從4K-128K。(理論上好像可以達到最高512K字節(jié)容量,但現(xiàn)在網(wǎng)上最高也就能看到AT24C1024也就是128K字節(jié)容量)

原理:

I2C總線是一種用于IC器件之間連接的二線制總線。它通過SDA(串行數(shù)據(jù)線)及SCL(串行時鐘線)兩根線在連到總線上的器件之間傳送信息,并根據(jù)地址識別每個器件:不管是單片機、存儲器、LCD驅(qū)動器還是鍵盤接口。

I2C總線接口電路結構如圖所示。

 

SDA和SCL均為雙向I/O線,通過上拉電阻接正電源。當總線空閑時,兩根線都是高電平。連接總線的器件的輸出級必須是集電極或漏極開路,以具有線“與”功能。I2C總線的數(shù)據(jù)傳送速率在標準工作方式下為100kbit/s,在快速方式下,最高傳送速率可達400kbit/s。

在I2C總線技術規(guī)范中,開始和結束信號(也稱啟動和停止信號)的定義如圖所示。當時鐘線SCL為高電平時,數(shù)據(jù)線SDA由高電平跳變?yōu)榈碗娖蕉x為“開始”信號;當SCL線為高電平時,SDA線發(fā)生低電平到高電平的跳變?yōu)?ldquo;結束”信號。開始和結束信號都是由主器件產(chǎn)生。在開始信號以后,總線即被認為處于忙狀態(tài);在結束信號以后的一段時間內(nèi),總線被認為是空閑的。

 

I2C總線的數(shù)據(jù)傳送格式是:在I2C總線開始信號后,送出的第一個字節(jié)數(shù)據(jù)是用來選擇從器件地址的,其中4-7位為器件碼,如1010就是代表串行E2PROM器件。1-3位為存儲器的片選地址或存儲器內(nèi)的塊地址碼,如何區(qū)分?后面再做詳細說明,第8位為方向位(R/W)。方向位為“0”表示發(fā)送,即主器件把信息寫到所選擇的從器件;方向位為“1”表示主器件將從從器件讀信息。開始信號后,系統(tǒng)中的各個器件將自己的地址和主器件送到總線上的地址進行比較,如果與主器件發(fā)送到總線上的地址一致,則該器件即為被主器件尋址的器件,其接收信息還是發(fā)送信息則由第8位(R/W)確定。

一個字節(jié)的寫操作的過程:首先器件發(fā)出起始信號后,發(fā)送器件識別控制字節(jié),即1010A2A1A00(最低位置0,即R/W讀寫控制位為低電平0),然后等待應答信號指示從器件被尋址。再發(fā)送一個AT24CXX存儲器將要寫入的位置地址。再次等待AT24CXX應答信號以后,將發(fā)送數(shù)據(jù)字節(jié),AT24CXX接收到后寫入到剛剛指定的存儲器地址。然后主器件再次等待AT24CXX的應答信號。主器件最后發(fā)出停止信號。

在I2C總線上每次傳送的數(shù)據(jù)字節(jié)數(shù)不限,但每一個字節(jié)必須為8位,而且每個傳送的字節(jié)后面必須跟一個認可位(第9位),也叫應答位(ACK)。數(shù)據(jù)的傳送過程如圖所示。每次都是先傳最高位,通常從器件在接收到每個字節(jié)后都會作出響應,即釋放SCL線返回高電平,準備接收下一個數(shù)據(jù)字節(jié),主器件可繼續(xù)傳送。如果從器件正在處理一個實時事件而不能接收數(shù)據(jù)時,(例如正在處理一個內(nèi)部中斷,在這個中斷處理完之前就不能接收I2C總線上的數(shù)據(jù)字節(jié))可以使時鐘SCL線保持低電平,從器件必須使SDA保持高電平,此時主器件產(chǎn)生1個結束信號,使傳送異常結束,迫使主器件處于等待狀態(tài)。當從器件處理完畢時將釋放SCL線,主器件繼續(xù)傳送。

 

當主器件發(fā)送完一個字節(jié)的數(shù)據(jù)后,接著發(fā)出對應于SCL線上的一個時鐘(ACK)認可位,在此時鐘內(nèi)主器件釋放SDA線,一個字節(jié)傳送結束,而從器件的響應信號將SDA線拉成低電平,使SDA在該時鐘的高電平期間為穩(wěn)定的低電平。從器件的響應信號結束后,SDA線返回高電平,進入下一個傳送周期。

I2C總線還具有廣播呼叫地址用于尋址總線上所有器件的功能。若一個器件不需要廣播呼叫尋址中所提供的任何數(shù)據(jù),則可以忽略該地址不作響應。如果該器件需要廣播呼叫尋址中提供的數(shù)據(jù),則應對地址作出響應,其表現(xiàn)為一個接收器。

5.總線競爭的仲裁 總線上可能掛接有多個器件,有時會發(fā)生兩個或多個主器件同時想占用總線的情況。例如,多單片機系統(tǒng)中,可能在某一時刻有兩個單片機要同時向總線發(fā)送數(shù)據(jù),這種情況叫做總線競爭。I2C總線具有多主控能力,可以對發(fā)生在SDA線上的總線競爭進行仲裁,其仲裁原則是這樣的:當多個主器件同時想占用總線時,如果某個主器件發(fā)送高電平,而另一個主器件發(fā)送低電平,則發(fā)送電平與此時SDA總線電平不符的那個器件將自動關閉其輸出級??偩€競爭的仲裁是在兩個層次上進行的。首先是地址位的比較,如果主器件尋址同一個從器件,則進入數(shù)據(jù)位的比較,從而確保了競爭仲裁的可靠性。由于是利用I2C總線上的信息進行仲裁,因此不會造成信息的丟失。

器件說明:

AT24CXXX系列引腳圖如下

 

現(xiàn)在我先來說說AT24CXX的具體使用

假設用AT89S51的P0.0做SDA總線,P0.1做SCL總線。有若干個I2C器件掛接在SDA和SCL總線上。

現(xiàn)在要對E2PROM_01存儲器進行寫字節(jié)操作看看它是如何找到的。

上面說過在發(fā)送完一個開始信號后接著發(fā)送一個字節(jié)的器件識別信號。這一個字節(jié)的4-7位就是器件識別碼。1010就是對應E2PROM器件,其它器件就不再理會了。1-3位是器件的物理地址,也就是說如果是E2PROM,它可以在I2C總線上掛接(000-111)8個E2PROM。在這里就得詳細說說AT24CXX上的A0,A1,A2和這個器件識別字節(jié)之間的關系了。上面說過存儲器的尋址范圍是一個字節(jié),也就256個,AT24C02的存儲容量為256字字,剛剛好將一個字節(jié)的地址用完。器件電路上A0,A1,A2三個管腳通過接高電平或低電平來和AT89S51發(fā)送過來的器件識別控制字節(jié)相匹配,從而得以識別出AT89S51將要操作的那個存儲器?,F(xiàn)在AT24C04的容量是512個字節(jié),那不是一個字節(jié)的地址不夠用了嗎?其實它是將512個字節(jié)為成兩個頁,每頁256字節(jié),而頁地址就是器件識別控制字節(jié)的1位。前面說了這個1-3位不是和器件上的A0,A1,A2匹配來識別器件的嗎?是的,但存儲器容量超過256字節(jié)情況就有變了。AT24C04上的A0這時就廢棄不用了,只用A1和A2,這樣就只能接(00-11)四個AT24C04了,同樣AT24C08容量為1K字節(jié)分為4頁了,于是頁地址就是器件識別控制字節(jié)的1-2位,器件上的A0,A1廢棄不用,只用A2,就只能接兩個AT24C08了。AT24C16容量為2K字節(jié),分為8頁。頁地址是器件識別控制字節(jié)的1-3位,全用了。器件上的A0,A1,A2,就無效了,只能接一只AT24C16。

 

我這么說能明白嗎?

對于大容量AT24C32-1024的存儲器。器件的存儲尋址地址為兩個字節(jié),所以它的一頁為65536(64K)。AT24C32-64的容量為4K字節(jié)-8K字節(jié),在一頁范圍,可以接8只器件。從AT24C128-1024的器件代號也由1010改為10100,多了一位,識別控制字節(jié)的器件物理地址就少了一位,變?yōu)?-2位,相應的在器件管腳上A2也廢棄空著了,因此最多只能接四只器件。AT24C128-512只有兩位器件地址所以最多只能接四只器件。而AT24C1024的容量為128K,分為兩頁,識別控制字節(jié)的的1位為頁地址,器件的A0腳廢棄不用,只用了A1。因此只能接2只器件。

 

下面我們進行具體的制做先準備好器件如下圖 ,我用的是AT24C16

 

原先的板子如下圖

 

焊好后。

 

好!下面我們進行調(diào)試:插上主電源。但AT24C16的電源短路帽不接,在短路帽兩個針之間接上萬用表的電流檔檢查是否有短路和靜態(tài)電流的大小。實測靜態(tài)電流幾乎為零,改變兩個數(shù)據(jù)線的電平時,電流會有所上升,說明電路基本正常。

 

現(xiàn)在我們接上電源短路帽把AT24C16電源接好。將兩個數(shù)據(jù)線用跳線接到P1.6和P1.7口上(接到哪個口上可以自己選的)。注意分清哪個是SDA哪個是SCL。別弄錯了。

 

把LCD12864裝上,后面我們就要進行軟件的調(diào)試了。

 

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉