第1步:構(gòu)建測(cè)試板
我使用了帶有IC2 FRAM突破口的5V Arduino Mini Pro,因?yàn)槲业南鄼C(jī)滑條上的處理器和FRAM芯片可以使用3.3v或5v邏輯。請(qǐng)注意,用于驅(qū)動(dòng)I2C的A4和A5引腳在Mini芯片的邊緣上不可用,但位于芯片的中央。您將需要添加電線來(lái)訪問(wèn)這些電線(或僅使用Uno進(jìn)行測(cè)試)。
接線很簡(jiǎn)單。將Arduino上的A4連接到FRAM上的SDA,將A5連接到SCL。添加接地和5V(Vcc)的連接,即可開始編程。
注意:僅僅因?yàn)槟谑褂肐2C作為存儲(chǔ)芯片,并不意味著您也不能使用它來(lái)驅(qū)動(dòng)LCD屏幕和/或電動(dòng)機(jī)護(hù)罩。只要確保每個(gè)程序集的地址都不同即可。如果您都是從同一制造商那里購(gòu)買的,則可能還可以。否則,您可能需要更改地址。大多數(shù)董事會(huì)都有一種相當(dāng)容易做到這一點(diǎn)的方法。
第2步:編程Arduino
在此處下載并安裝庫(kù)Adafruit庫(kù),并查看其示例。
FRAM庫(kù)附帶的示例非常簡(jiǎn)單,但是您可能需要運(yùn)行它以顯示一切正常。確定可以正常工作之后,您可以上傳我的草圖進(jìn)行嘗試。
我添加的兩個(gè)函數(shù)負(fù)責(zé)保存值并檢索它們。 writeMem()函數(shù)將要保存的值和保存地址作為輸入。接下來(lái),將該值除以256。該數(shù)字(MSB =最高有效字節(jié))和余數(shù)或模(LSB =最低有效字節(jié))存儲(chǔ)在2個(gè)單獨(dú)的存儲(chǔ)器地址中。傳遞函數(shù)的地址(在我的示例中,我使用地址10)和下一個(gè)順序地址11存儲(chǔ)2個(gè)字節(jié)。如果要傳遞多個(gè)值進(jìn)行存儲(chǔ),請(qǐng)確保跳過(guò)它們之間的地址,以免覆蓋第一個(gè)數(shù)字的第二個(gè)字節(jié)。
readMem()是使用2地址中的第一個(gè)調(diào)用的。同樣,我的示例使用地址10。通過(guò)將MSB乘以256并將其添加到LSB,可以檢索MSB和LSB,并重新構(gòu)造完整值。
不需要二進(jìn)制或十六進(jìn)制數(shù)學(xué)。。..將其存儲(chǔ)并檢索。..就是這樣!
步驟3:運(yùn)行示例
在我的示例中,我使用for循環(huán)將值存儲(chǔ)到一對(duì)地址,然后檢索這些值,重新構(gòu)造原始值,然后顯示它。然后,我增加該值并再次執(zhí)行此操作。我將存儲(chǔ)并檢索的第1000個(gè)值發(fā)送到串行監(jiān)視器,因此請(qǐng)打開監(jiān)視器以查看發(fā)生了什么。根據(jù)Adafruit的說(shuō)法,該芯片上的內(nèi)存可延長(zhǎng)其讀寫壽命。這與Arduino的內(nèi)存不同,后者具有有限的R/W周期。
我設(shè)計(jì)的方法最多只能保存65355的值。如果將for循環(huán)中的值更改為65355以上,將會(huì)看到會(huì)發(fā)生什么。
問(wèn)題之一我遇到的是處理各種可變數(shù)據(jù)類型及其限制。重構(gòu)后的值一直認(rèn)為它是整數(shù),因此在滾動(dòng)到負(fù)數(shù)之前,它將僅容納未簽名整數(shù)的一半。通過(guò)編寫函數(shù)并來(lái)回傳遞值,我發(fā)現(xiàn)我的數(shù)據(jù)類型發(fā)生了意外的變化,因此在處理數(shù)據(jù)時(shí)要格外小心。
我在草圖中保留了Adafruit的內(nèi)存轉(zhuǎn)儲(chǔ)示例,但發(fā)揮了作用。如果您希望它運(yùn)行,請(qǐng)取消注釋草圖頂部附近的“//#define dumpMemory”行,它將以16進(jìn)制的速度將內(nèi)存緩慢地轉(zhuǎn)儲(chǔ)到監(jiān)視器中。
責(zé)任編輯:wv
-
存儲(chǔ)器
+關(guān)注
關(guān)注
39文章
7746瀏覽量
172007
發(fā)布評(píng)論請(qǐng)先 登錄
串行mram磁性隨機(jī)存儲(chǔ)器的工作原理與存儲(chǔ)機(jī)制
半導(dǎo)體存儲(chǔ)器的發(fā)展過(guò)程和主要分類
【案例5.1】存儲(chǔ)器選型的考慮要點(diǎn)
FIFO存儲(chǔ)器的種類、IP配置及應(yīng)用
瑞薩RA系列FSP庫(kù)開發(fā)實(shí)戰(zhàn)指南之常用存儲(chǔ)器介紹
DDR SDRAM是什么存儲(chǔ)器(雙數(shù)據(jù)速率同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器介紹)
Adafruit 電纜組件 — 原型開發(fā)優(yōu)選線束解析
雙口SRAM靜態(tài)隨機(jī)存儲(chǔ)器存儲(chǔ)原理
芯源的片上存儲(chǔ)器介紹
Everspin存儲(chǔ)器8位并行總線MRAM概述
??富士通FRAM寬電壓設(shè)計(jì)簡(jiǎn)化LED顯示電源方案?
簡(jiǎn)單認(rèn)識(shí)高帶寬存儲(chǔ)器
存儲(chǔ)器IC的應(yīng)用技巧 【日 桑野雅彥】
瑞薩RA系列MCU FSP庫(kù)開發(fā)實(shí)戰(zhàn)指南(09)存儲(chǔ)器映射
扒一扒單片機(jī)與存儲(chǔ)器的那些事
如何使用Adafruit FRAM存儲(chǔ)器
評(píng)論