常用串列EEPROM的編程應用(三)完結篇

來源:互聯網
上載者:User

SPI匯流排
  SPI匯流排(Serial Peripheral Interface串列外圍裝置介面匯流排)是三線式的串列匯流排,是由摩托羅拉公司所研發,使用三線進行資料轉送,分別是SCK時鐘引腳,SI資料輸入引腳和SO資料輸出引腳,另外還有CS片選引腳可以對同一匯流排上的晶片進行選通使用,SPI匯流排已被廣泛使用在EEPROM、單片機和各種裝置中。常用串列EEPROM中的25XX系列晶片就是使用相容SPI匯流排結構,採用先進COMS技術,體積小,是一種理想的低功耗非易失性儲存空間,廣泛使用在各種家電、通訊、交通或工業裝置中,通常是用於儲存裝置或個人的相關設定資料。ATMEL公司生產的25系列的EEPROM儲存容量從1K位到256K位。其它一些晶片也會用到SPI匯流排,如常用的CPU監控晶片X5043、X5045就帶有512位元組的SPI介面EEPROM,常用於單片機系統的看門狗電路,同時也可以提供小資料量的儲存,給電路設計帶來很多的方便。此文將用X5045為例講述SPI的編程應用和X5045的一些其它功能。X5045由Xicor公司出品,電壓範圍有2.7V到5.5V和4.5V到5.5V二個版本,擦寫次數可達一百萬次,最高時鐘頻率可達3.3MHz。圖一是X5045的PID封裝實物圖。

圖1



圖2

  圖二是X5045的引腳定義圖。CS/WDI是片選和看門狗複位輸入,當CS為高時SO引腳變為高阻態,這時可以允許其它器件共用SPI匯流排,同時晶片也處於休眠狀態,當CS為低時晶片被選中,並從休眠狀態中喚醒,可以進行讀寫操作。SO是串列資料輸出,在讀晶片時資料從此腳輸出。WP是防寫保護引腳,當WP為低時晶片防寫保護,不能對晶片寫操作,但其它功能不受影響。Vss是電源地。SI是串列資料輸入,接收來自控制器的資料和地址。SCK是串列時鐘輸入,RESET是複位輸出,Vcc是電源。在25晶片中還有一個HOLD引腳,此引腳的功能是保持輸入腳,ATMEL公司生產25晶片的HOLD引腳是低電平有效。不用此功能時,HOLD引腳要保持高電平。在晶片正在串列傳輸時,將HOLD拉為低電平,可以暫停進一步的傳送,具體方法是SCK變低後,將HOLD也拉低,不然在下一個SCK變低前不能暫停傳送,要恢複串列傳送,必須在SCK為低電平時將HOLD拉高。晶片處於暫停時,SI,SO,SCK腳為高阻狀態,任何時刻只要HOLD被拉低時,SO都會處於高阻狀態。
  限於文章的篇幅,下面內容只著重介紹X5045晶片的SPI匯流排對EEPROM單元的編程應用。在X5040晶片中有6個指令,它和25系列晶片的指令是相容的,也就是說在25系列晶片中使用時基本上是不需要改變的,具體見表一。

指 令 指令格式 說 明
WREN 0000 0110 寫入允許
WRDI 0000 0100 寫入禁止
RSDR 0000 0101 讀狀態寄存器
WRSR 0000 0001 寫狀態寄存器,用於操作區塊防寫保護標識和看門狗標識
READ 0000 A8011 讀資料
WRITE 0000 A8010 寫資料

注:A8用於資料地址的第9位。

表一 指令集

寫入允許和禁止
  X5045晶片內部有一個寫入使能寄存器,在需要向晶片寫入資料時,需要先用WREN指令使片內寫入使能寄存器先置位,寫入資料後可以用WRDI指令使寄存器複位到禁止狀態。當上電、WRSR指令執行、WRITE指令執行、WP拉低也會使寫入使能寄存器複位到禁止狀態。圖三是WREN/WRDI指令的操作時序圖。首先要把CS拉低,輸入資料,向SCK輸入時鐘訊號,資料在時鐘的上升沿有效,時鐘上升後至少資料至少保持30ns。資料是串列的,所以在每個刻度的上升沿發送一個位。在操作這兩個指令時,SO是處於高阻狀態的。

圖3寫入使能時序

讀寫狀態寄存器
  X5045片內有一個狀態寄存器,用於指於晶片的狀態和設定,可以讀寫,晶片出廠時狀態寄存器值為30H。具體每位的功能請看錶2。WIP寫入保護位,是唯讀位,指示晶片是否正忙於寫入操作。當WIP為"1"時,說明寫入進行中,為"0"時表示沒有進行寫入。在編程時,寫入資料操作後,可以查詢WIP位,當WIP為0後才進行下一次的寫入操作,這樣可以避免寫入出錯。WEL寫入使能狀態位,是唯讀位。WEL位的狀態由WREN和WRDI指令確定,WREN成功執行後WEL為"1"指示允許寫入資料,WRDI指令成功執行後WEL為"0"指示禁止寫入資料。在編程時可以先查詢WEL位的狀態,如為0時則要執行WREN後才可以進行寫入操作。BL0、BL1設定當前保護的區塊地址,是可讀寫位,這兩個位的設定和區塊地址的關係如表3,區塊的內容被保護後,就只能讀出而不能寫入了。25系列晶片中不同型號的晶片容量不一樣,BL設定所保護的範圍也不一樣。WD1、WD0看門狗設定位是X5045/43特有的設定位,是可以讀寫位,在25系列晶片中這兩個位是保留位,在X5045中有看門狗功能,這兩個位就用於設定MCU喂狗的時間,表4是看門狗位的設定時間。狀態寄存器的第6和第7位是保留位。讀狀態寄存器時,發送完RSDR指令後,SO由高阻態轉為輸出資料,從資料位元的高位開始。寫狀態寄存器,發送完WSDR指令後,再發一個位元組的狀態資料就可以了,其中唯讀位可以是"1"也可以是"0",它們不會被WSDR指令所更改。圖5、圖6是讀寫狀態寄存器的時序圖。

7 6 5 4 3 2 1 0
0 0 WD1 WD0 BL1 BL0 WEL WIP
0 0 看門狗位1 看門狗位0 區塊保護1 區塊保護0 寫入使能狀態位 寫入保護位

表2 狀態寄存器定義

BL1 BL0 保護位址範圍
0 0 無保護
0 1 180H-1FFH
1 0 100H-1FFH
1 1 000H-1FFH

表3 BL設定位

WD1 WD0 喂狗時間
0 0 1.4秒
0 1 600毫秒
1 0 200毫秒
1 1 功能禁用(出廠設定)

表4 看門狗設定位

圖4讀狀態寄存器時序

圖5寫狀態寄存器時序

讀資料
  圖6是讀資料時的時序,先拉低CS選中晶片,先要把需讀取的地址的第9位加到指令位元組的第4個位元組中,發送完指令位元組就發送地址位元組的前8位,這時SO就會由高阻態轉為輸出資料。每當一個位元組的資料傳送完畢後,晶片內部的地址指標自動加1,指向下一個資料地址,這時如仍有時鐘脈衝時,資料會被繼續輸出,CS腳拉高後輸出才會終止。當最高位地址的資料被讀出後,地址指標指向00H。

圖6讀資料時序(點擊看大圖)

寫資料
  在向晶片寫入資料之前,寫使能寄存器必須處於置位狀態,一般可以不必查詢寫使能寄存器的狀態,而直接用WREN置位寫使能寄存器。在發送完WREN指令後,必須把CS拉高,在CS拉高之前寫使能寄存器並沒有置位,這時向晶片傳送資料是不會被寫入的。寫使能寄存器置位後,再將CS拉低,把需讀取的地址的第9位加到指令位元組的第4個位元組中,發送完指令位元組就發送地址位元組的前8位,然後發送需寫入的資料。WRITE指令可以連續寫入16個位元組,但這16個位元組的地址必須在同一頁中。每一頁的地址由[xxxxx0000]開始,到[xxxxx1111]結束。操作方法就是在發送完每一個地址和資料後,繼續發後面的資料,晶片內部的地址指標會自動累加,當達到頁中最後一個位元組時,時鐘仍在繼續,則內部地址指標回到頁中第一個地址重新開始累加,並覆蓋以前寫入的資料。要注意的是,在操作過程中CS不能拉高,只有在資料位元組的最後一個位傳送完成後才可以拉高CS,不然寫入操作將不完全。在寫入資料或寫狀態寄存器指令寫送後,晶片會進入一次非易失性寫操作,這會花費一定的時間,最大約為10ms,在這個時間內可以用讀狀態寄存器,並檢查WIP位,當WIP為1時則說明寫入還在進行中,只有當WIP位為0時才可以進行下一次的讀寫資料操作,否則將會使寫入不完全。

圖7寫資料時序(點擊看大圖)

  下面我們用AT89C2051和X5045為主做一個密碼控制器實驗。使用X5045的看門狗功能可以使電路在受到幹擾或特殊情況死機後,可以自動複位重啟電路,使電路保持正常工作。使用X5045的資料讀寫功能,可以儲存密碼,也可以修改密碼。本文附帶的執行個體程式示範X5045的狀態寄存器的讀寫、儲存位的讀寫,裡面的功能函數可以直接移植到別的程式中。電路上電後,紅色LED亮,當按下按鍵時綠色LED閃亮一下,當按下"3,1,5,8,1,8",密碼正確,紅色LED滅,綠色LED亮,繼電器開啟,10秒後回到上電時的狀態。當按下第一次按鍵後20秒內沒有按下正確的索引值,則會進行下一次索引值輸入。程式可以方便修改成可以方便更改密碼的程式,也可以加入記錄工作次數的程式等等,升級成更實用的程式。圖9是筆者用萬用板搭建成的實驗電路。在上一篇提供的EEPROM讀寫器電路及程式也支援25系列晶片和X5043/45晶片,可以直接使用它來讀寫。

圖7原理圖(點擊看大圖)

圖9實物圖

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.