女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

怎樣用Arduino讀取和寫入外部EEPROM的數據

454398 ? 來源:工程師吳畏 ? 2019-07-30 11:32 ? 次閱讀

您需要的東西

EEPROM - 24LC512

ATmega328P-PU

16 MHz Crystal

面包板

電阻器4.7k Ohmx 2

電容器22 pFx 2

故事

EEPROM 代表 E lectrically E rasable P 可編程 R ead- O nly M emory。

EEPROM非常重要且有用,因為它是一種非易失性的內存形式。這意味著即使電路板斷電,EEPROM芯片仍然保留寫入的程序。因此,當您關閉電路板然后重新打開電源時,可以運行寫入EEPROM的程序。所以基本上,無論如何,EEPROM都存儲并運行程序。這意味著您可以關閉設備,將其關閉3天,然后返回并打開設備,它仍然可以運行其中編程的程序。這就是大多數消費電子設備的工作方式。

該項目由LCSC贊助。我一直在使用LCSC.com的電子元件。 LCSC致力于以最優惠的價格提供各種真正的高品質電子元件,并通過遍布200多個國家的全球運輸網絡。

EEPROM也非常高效傳統EEPROM中的各個字節可以獨立讀取,擦除和重寫。在大多數其他類型的非易失性存儲器中,這是不可能做到的。

Microchip 24系列EEPROM這樣的串行EEPROM器件允許您為任何可以說I2C的器件添加更多存儲器。

EEPROM基礎知識

Microchip 24LC2512芯片可以采用8引腳DIP封裝。 24LC512上的引腳非常直接,包括電源(8),GND(4),寫保護(7),SCL/SDA(6,5)和三個地址引腳(1,2,3)。

ROM的簡史

早期的“存儲程序”類型的計算機 - 例如桌面計算器和鍵盤解釋器 - 開始以二極管矩陣ROM的形式使用ROM。這是一個由分散的半導體二極管組成的存儲器,放置在特殊組織的PCB上。隨著集成電路的出現,這讓位于Mask ROM。掩模ROM很像二極管矩陣ROM,只是它的實現規模要小得多。然而,這意味著你不能只用烙鐵移動幾個二極管并重新編程。掩模ROM必須由制造商編程,此后不可更改。

不幸的是,Mask ROM價格昂貴并且需要很長時間才能生產,因為每個新程序都需要一個由鑄造廠生產的全新設備。然而,在1956年,這個問題通過PROM(可編程ROM)的發明得以解決,PROM允許開發人員自己編寫芯片。這意味著制造商可以生產數百萬個相同的未編程設備,使其更便宜,更實用。但是,PROM只能使用高壓編程設備寫入一次。在編程PROM器件之后,無法將器件恢復到未編程狀態。

1971年隨著EPROM(可擦除可編程ROM)的發明而改變了 - 除了在首字母縮寫詞中添加另一個字母 - 帶有擦除設備的能力,并使用強大的紫外光源將其恢復到“空白”狀態。那是對的,你必須在IC上發出明亮的光線才能重新編程,這有多酷?好吧,事實證明它非常酷,除非你是一個開發固件的開發人員,在這種情況下,你真的希望能夠使用電子信號重新編程設備。隨著EEPROM(電可擦除可編程ROM)的發展,這終于在1983年成為現實,我們到達了當今笨拙的首字母縮略詞。

EEPROM的怪癖

EEPROM作為一種方法存在兩個主要缺點數據存儲。在大多數應用中,優點超過了缺點,但在將EEPROM納入下一個設計之前,您應該了解它們。

首先,使EEPROM工作的技術也限制了它的可用次數被重寫。這與電子被困在構成ROM的晶體管中并累積直到“1”和“0”之間的電荷差異無法識別有關。但不用擔心,大多數EEPROM的最大重寫次數為100萬或更多。只要你沒有連續寫入EEPROM,你就不可能達到這個最大值。

其次,如果你從中斷電源,EEPROM將不會被刪除,但它不能保留在你的數據無限期。電子可以漂移出晶體管并通過絕緣體,隨著時間的推移有效地擦除EEPROM。也就是說,這通常會在幾年內發生(雖然它可以通過加熱加速)。大多數制造商表示,在室溫下,您的數據在EEPROM上安全10年或更長時間。

在為項目選擇EEPROM器件時,還應記住一件事。 EEPROM容量以位而不是字節來度量。 512K EEPROM將保存512K位數據,換句話說,只有64KB。

Arduino硬件連接

好了,現在我們知道了什么是EEPROM,讓我們掛起來看看它能做些什么!為了讓我們的設備說話,我們需要連接電源和I2C串行線。該器件特別在5VDC下運行,因此我們將它連接到Arduino UNO的5V輸出。此外,I2C線路需要上拉電阻才能正常通信。這些電阻的值取決于線路的電容和您想要通信的頻率,但非關鍵應用的一個好的經驗法則就是將其保持在kΩ范圍內。在本例中,我們將使用4.7kΩ上拉電阻。

此器件上有三個引腳用于選擇I2C地址,這樣就可以在總線上有多個EEPROM,并以不同的方式對它們進行尋址。您可以將它們全部接地,但我們將對它們進行布線,以便我們可以在本教程的后面部分使用更高容量的設備。

我們將使用面包板將所有內容連接在一起。下圖顯示了大多數I2CEEPROM器件的正確連接,包括我們銷售的Microchip 24系列EEPROM。

閱讀和寫作

大多數情況下,當您將EEPROM與微控制器結合使用時,您實際上不需要同時查看存儲器的所有內容。您只需根據需要在此處讀取和寫入字節。但是,在這個例子中,我們要將整個文件寫入EEPROM,然后將其全部讀回,以便我們可以在計算機上查看。這應該讓我們對使用EEPROM的想法感到滿意,并讓我們感覺有多少數據可以真正適合小型設備。

寫點東西

我們的示例草圖將簡單地取出任何字節串行端口并將其寫入EEPROM,跟蹤我們寫入內存的字節數。

將一個字節的內存寫入EEPROM通常分三步進行:

發送要寫入的內存地址的最高有效字節。

發送要寫入的內存地址的最低有效字節。

發送您想要存儲在此位置的數據字節。

可能有一些關鍵詞可以解釋:

記憶地址

如果你想象512 Kbit EEPROM中的所有字節從0開始排成一行到64000 - 因為一個字節有8位,因此你可以在512 Kbit EEPROM上安裝64000字節 - 然后一個存儲器地址就是你找到一個特定字節的位置。我們需要將該地址發送到EEPROM,以便它知道放置我們發送的字節的位置。

最重要和最不重要的字節

因為256 Kbit EEPROM中有32000個可能的位置 - 并且因為255是可以在一個字節中編碼的最大數字 - 我們需要以兩個字節發送該地址。首先,我們發送最高有效字節(MSB) - 在這種情況下的前8位。然后我們發送最低有效字節(LSB) - 第二個8位。為什么?因為這是設備期望接收它們的方式,所以就是這樣。

頁面寫作

一次寫一個字節很好,但是大多數EEPROM設備都有一個叫做“頁面寫緩沖區”的東西,可以讓你寫多個每次字節的方式與單個字節的方式相同。我們將在示例草圖中利用這一點。

EEPROM使用內部計數器,它會在接收到的每個后續數據字節時自動增加內存位置。一旦發送了內存地址,我們就可以使用最多64個字節的數據。 EEPROM(正確地)假定地址312后跟10個字節將在地址312處記錄字節0,在地址313處記錄字節1,在地址314處記錄字節2,依此類推。

讀取東西

從EEPROM讀取基本上遵循與寫入EEPROM相同的三步過程:

發送要寫入的存儲器地址的最高有效字節。

發送要寫入的內存地址的最低有效字節。

詢問該位置的數據字節。

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

    關注

    9

    文章

    1082

    瀏覽量

    83302
  • Arduino
    +關注

    關注

    189

    文章

    6492

    瀏覽量

    190143
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何從CYUSB3014-BZXCT讀取/寫入EEPROM固件?

    第一個芯片讀取數據,然后通過 USB 將相同的數據寫入第二個芯片。 我是這個領域的新手。 你能告訴我怎樣做嗎? 據我所知,我需要CYPRES
    發表于 05-07 06:46

    nt3h211通過I2C向EEPROM寫入數據,但NFC工具無法讀取寫入數據,為什么?

    我通過 I2C 為 NT3H211 芯片編寫了一個 Linux 驅動程序。我使用 I2C 寫入作將數據寫入塊地址 01h,并通過 I2C 讀取確認
    發表于 03-26 06:50

    DLP3010如何將edid寫入eeprom中?

    參考DLPDLCR3010EVM_G2的設計,經過測試發現無法將edid寫入空白的eeprom中,請問這個是自動寫入edid到eepron中,還是需要預先寫入edid至
    發表于 02-19 08:01

    EEPROM編程常見錯誤及解決方案

    、電流過大或寫入時序不正確等原因而損壞或不完整。 數據讀取錯誤 : 讀取EEPROM時,可能會因為芯片斷路、短路或內部擊穿等問題導致
    的頭像 發表于 12-16 17:08 ?4007次閱讀

    EEPROM存儲器的工作原理 EEPROM與FLASH存儲器的比較

    EEPROM存儲器的工作原理 基本結構 : EEPROM由浮柵晶體管構成,每個浮柵晶體管可以存儲一個比特的數據。浮柵是一個隔離的導電區域,可以捕獲和保持電子,從而改變晶體管的閾值電壓。 寫入
    的頭像 發表于 12-16 16:35 ?1845次閱讀

    ADS131A02讀出的數據不對是怎么回事?

    我的SCLK是4M,fmod = SCLK/2, fdata = fmod /32, 那我應該怎樣用SCLK 讀取數據呢?我使用的是同步從模式。現在我的CS,sync連在一起,配置完寄存器后一直為低電平,讀出的
    發表于 12-03 08:14

    PGA309使用中不加寫保護會出現不讀取EEPROM校準數據現象?

    請教一下,看參考電路里面對于EEPROM都沒提寫保護的問題,為何我在使用中不加寫保護會出現不讀取EEPROM校準數據現象?輸出2mA,在校準界面
    發表于 09-13 07:23

    EEPROM故障的原因和影響

    存儲的數據。它廣泛應用于各種電子設備中,用于存儲重要的配置信息、程序代碼或用戶數據。當EEPROM無法正常工作,即無法正確讀取寫入或保持存
    的頭像 發表于 09-05 10:56 ?7234次閱讀

    如何向EEPROM寫入數字

    EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲器)寫入數字是一個相對直接的過程,但涉及到多個步驟和細節。以下是一個詳細的步驟說明,旨在幫助您理解并成功向
    的頭像 發表于 09-05 10:56 ?1910次閱讀

    怎樣用THS3201實現輸出功率可調?

    怎樣用THS3201實現輸出功率可調?
    發表于 08-26 08:28

    PGA309EVM-USB寫入EEPROM后再讀取都是0,為什么?

    使用PGA309EVM-USB評估板及其配套軟件模擬校正測試后,按 continue 寫入EEPROM后,可以打開cal results 文件,里面的EEPROM都有數據,但是去軟件
    發表于 08-15 06:42

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環境溫濕度數據及 OLED顯示

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環境溫濕度數據及 OLED顯示
    的頭像 發表于 08-13 18:04 ?1926次閱讀
    <b class='flag-5'>Arduino</b> Nano 和 NodeMCU ESP8266 <b class='flag-5'>讀取</b> DHT11 環境溫濕度<b class='flag-5'>數據</b>及 OLED顯示

    怎樣用Arduino測試鋰電池容量

    本文詳細介紹了如何用Arduino測量鋰電池的容量。并附有電路圖和Arduino的程序代碼。
    的頭像 發表于 07-30 09:14 ?1526次閱讀
    <b class='flag-5'>怎樣用</b><b class='flag-5'>Arduino</b>測試鋰電池容量

    esp8266讀取模擬數據并記錄到eeprom,發送tcp包時無法讀取模擬如何解決?

    嗨,esp8266 讀取模擬數據并記錄到 eeprom,我正在將存儲在 eeprom 中的數據作為 tcp 包發送,但在發送 tcp 包時無
    發表于 07-11 07:22

    求教FPGA的RAM與EEPROM問題?

    將一組8位的256個數據從RAM中讀取出來,然后寫入eeprom中,modesim仿真顯示一直寫入失敗,
    發表于 06-25 16:15