新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于SM320F2812 SPI總線的擴(kuò)展EEPROM設(shè)計(jì)

基于SM320F2812 SPI總線的擴(kuò)展EEPROM設(shè)計(jì)

作者: 時(shí)間:2013-07-03 來(lái)源:網(wǎng)絡(luò) 收藏

  當(dāng)DSP當(dāng)DSP需要向AT25010指定地址寫(xiě)入數(shù)據(jù)時(shí),也必須按照一定的順序執(zhí)行.首先必須確認(rèn)寫(xiě)保護(hù)引腳WP是高電平,然后確認(rèn)被寫(xiě)入的地址沒(méi)有被鎖定.寫(xiě)入數(shù)據(jù)時(shí),DSP首先向AT20501發(fā)送寫(xiě)使能信號(hào)WREN.然后才能執(zhí)行寫(xiě)操作.在片選引腳CS拉低選中AT25010芯片后,8位的地址和8位的數(shù)據(jù)分別被DSP發(fā)送到AT25010芯片,對(duì)指定地址寫(xiě)入數(shù)據(jù).對(duì)AT25010芯片設(shè)置后,可以進(jìn)行頁(yè)寫(xiě)入,可一次寫(xiě)入大量數(shù)據(jù),節(jié)省系統(tǒng)資源.

  4.3 程序設(shè)計(jì)

  讀取數(shù)據(jù)的程序設(shè)計(jì)架構(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è)計(jì)架構(gòu)如下:

  SpiaRegs.SPITXBUF=0×0200;//發(fā)送寫(xiě)入指令SpiaRegs.SPITXBUF=(Addr《8);//發(fā)送需要寫(xiě)入數(shù)據(jù)的地址位SpiaRegs.SPITXBUF=(Data《8);//發(fā)送需要寫(xiě)入數(shù)據(jù)的數(shù)據(jù)SpiaRegs.SPITXBUF=0×0400;//WRDI5.數(shù)據(jù)寫(xiě)入和讀取實(shí)驗(yàn)。

  如圖2 .

  編寫(xiě)軟件代碼,進(jìn)行DSP對(duì)AT25010寫(xiě)入和讀取數(shù)據(jù)的實(shí)驗(yàn).

  由于AT25010是1KB的存儲(chǔ)器,DSP最多只能向AT25010寫(xiě)入128個(gè)8位數(shù)據(jù).在軟件中設(shè)置一個(gè)9位的數(shù)組,分別賦值由0×11至0×99,地址使用0-8共9個(gè)地址位.DSP采用循環(huán)發(fā)送的方式,將數(shù)組中的數(shù)據(jù)發(fā)送到存儲(chǔ)芯片中.

  然后DSP進(jìn)行讀取操作,從存儲(chǔ)芯片的地址位中讀出數(shù)據(jù),寫(xiě)入到另一個(gè)數(shù)組中并對(duì)讀取和寫(xiě)入的數(shù)據(jù)進(jìn)行比較,檢驗(yàn)數(shù)據(jù)是否正確.結(jié)果如圖3所示.

  由圖3可以看出,讀取和寫(xiě)入的數(shù)據(jù)完全一致.對(duì)于使用數(shù)據(jù)量較大的系統(tǒng),可以更換容量更大的存儲(chǔ)器,使用文中的硬件設(shè)計(jì)和程序設(shè)計(jì),同樣可滿(mǎn)足需求.

  6.結(jié)語(yǔ)

  本設(shè)計(jì)使用DSP芯片自帶的SPI接口進(jìn)行硬件設(shè)計(jì),節(jié)省了設(shè)計(jì)時(shí)間,降低了電路設(shè)計(jì)的復(fù)雜度,實(shí)現(xiàn)了對(duì)系統(tǒng)掉電以后數(shù)據(jù)的存儲(chǔ),并可解決由于數(shù)據(jù)不同造成的程序一致性的問(wèn)題.此設(shè)計(jì)滿(mǎn)足了系統(tǒng)的要求,適用于各種需要掉電后保存數(shù)據(jù)的嵌入式系統(tǒng).


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: SM320F2812 SPI總線 EEPROM

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉