基于SM32的SPI總線擴(kuò)展EEPROM設(shè)計與實現(xiàn)
4.3 程序設(shè)計
本文引用地址:http://cafeforensic.com/article/248731.htm讀取數(shù)據(jù)的程序設(shè)計架構(gòu)如下:
SpiaRegs.SPITXBUF=0×0300;//發(fā)送讀取指令SpiaRegs.SPITXBUF=(Addr《8);//發(fā)送需要讀取數(shù)據(jù)的地址位SpiaRegs.SPITXBUF=0×0000;//發(fā)送一位空指令val=SpiaRegs.SPIRXBUF;//讀取指定地址的數(shù)據(jù)讀取數(shù)據(jù)的程序設(shè)計架構(gòu)如下:
SpiaRegs.SPITXBUF=0×0200;//發(fā)送寫入指令SpiaRegs.SPITXBUF=(Addr《8);//發(fā)送需要寫入數(shù)據(jù)的地址位SpiaRegs.SPITXBUF=(Data《8);//發(fā)送需要寫入數(shù)據(jù)的數(shù)據(jù)SpiaRegs.SPITXBUF=0×0400;//WRDI5.數(shù)據(jù)寫入和讀取實驗。
如圖2 .
編寫軟件代碼,進(jìn)行DSP對AT25010寫入和讀取數(shù)據(jù)的實驗.
由于AT25010是1KB的存儲器,DSP最多只能向AT25010寫入128個8位數(shù)據(jù).在軟件中設(shè)置一個9位的數(shù)組,分別賦值由0×11至0×99,地址使用0-8共9個地址位.DSP采用循環(huán)發(fā)送的方式,將數(shù)組中的數(shù)據(jù)發(fā)送到存儲芯片中.
然后DSP進(jìn)行讀取操作,從存儲芯片的地址位中讀出數(shù)據(jù),寫入到另一個數(shù)組中并對讀取和寫入的數(shù)據(jù)進(jìn)行比較,檢驗數(shù)據(jù)是否正確.結(jié)果如圖3所示.
由圖3可以看出,讀取和寫入的數(shù)據(jù)完全一致.對于使用數(shù)據(jù)量較大的系統(tǒng),可以更換容量更大的存儲器,使用文中的硬件設(shè)計和程序設(shè)計,同樣可滿足需求.
6.結(jié)語
本設(shè)計使用DSP芯片自帶的SPI接口進(jìn)行硬件設(shè)計,節(jié)省了設(shè)計時間,降低了電路設(shè)計的復(fù)雜度,實現(xiàn)了對系統(tǒng)掉電以后數(shù)據(jù)的存儲,并可解決由于數(shù)據(jù)不同造成的程序一致性的問題.此設(shè)計滿足了系統(tǒng)的要求,適用于各種需要掉電后保存數(shù)據(jù)的嵌入式系統(tǒng).
存儲器相關(guān)文章:存儲器原理
評論