<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于SM32的SPI總線(xiàn)擴展EEPROM設計與實(shí)現

基于SM32的SPI總線(xiàn)擴展EEPROM設計與實(shí)現

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

  0 引言

本文引用地址:http://dyxdggzs.com/article/248731.htm

  (Electrically Erasable ProgrammableRead-Only Memory電可擦可編程只讀存儲器),是一種掉電后數據不丟失的存儲芯片.在實(shí)際應用中,為了保持程序能夠統一,又必須在程序中使用不同的參數,可以使用進(jìn)行擴展存儲,將需要使用的數據存儲在中.當系統上電開(kāi)始工作時(shí),首先從EEPROM中讀取參數,然后執行應用.本文采用了ATMEL公司的EEPROM存儲器AT25010及TI公司推出的2000系列DSP TMS320F2812,很好地實(shí)現了數據的擦寫(xiě)和存儲.AT25010采用了標準的總線(xiàn)接口,所以與DSP經(jīng)過(guò)簡(jiǎn)潔的設計連接后即可實(shí)現硬件連接.

  1.AT25010介紹

  AT25010是ATMEL公司推出的串行外設接口可擦寫(xiě)存儲器,具有1KB(128*8)字節容量和掉電后數據保持功能,主要用于低電壓和低功耗應用中.

  2.TMS320F2812的接口介紹

  TMS320F2812是TI公司推出的32位的定點(diǎn)DSP,主要應用于控制領(lǐng)域.DSP主頻可以通過(guò)軟件進(jìn)行設置,最高可以達到150MHz,內部集成了豐富的資源,可以大大簡(jiǎn)化外圍電路的設計.

  TMS320F2812的串行外設接口()是一個(gè)高速同步的串行輸入/輸出口,通信速率和通信數據長(cháng)度都是可編程的,通常用于DSP處理器和外部外設以及其他處理器之間進(jìn)行通信.

  SPI接口有一個(gè)16級的接收和傳輸FIFO,可以減少工作時(shí)CPU的開(kāi)銷(xiāo).

  3.硬件設計

  為了使D S P能夠從E E P R O M中正確寫(xiě)入和讀出數據, 需要對硬件進(jìn)行正確的設置.

  TMS320F2812處理器SPI模塊有4個(gè)外部引腳,分別是SPI從輸出/主輸入引腳SPISOMI.SPI從輸入/主輸出引腳SPISIMO.SPI從發(fā)送使能引腳SPISTE.SPI串行時(shí)鐘引腳SPICLK.AT25010與TMS320F2812的硬件接口電路如圖1示所.圖1中將DSP的SPISTE引腳與AT25010的片選信號引腳CS相連,使DSP能控制是否選通芯片;DSP的SPISOMI引腳與A T 2 5 0 1 0的數據輸出引腳S O相連,接收AT25010發(fā)送的數據;DSP的SPISIMO引腳與AT25010的數據輸出引腳SI相連,向AT25010發(fā)送數據;DSP的SPICLK引腳與AT25010的串行時(shí)鐘引腳SCK相連,向AT25010提供時(shí)鐘信號,使其能夠與DSP保持同步.AT25010芯片寫(xiě)保護引腳WP(Write Protect)控制是否能夠對其寫(xiě)入數據.當將此引腳置高電平時(shí),DSP可以對AT25010芯片寫(xiě)入或者讀取數據;當將此引腳置低電平時(shí),DSP只能對AT25010芯片進(jìn)行讀取數據的操作,而不能對其寫(xiě)入數據.電路設計時(shí)將AT25010的WP引腳通過(guò)電阻拉高.

  

 

  4.軟件設計

  在D S P開(kāi)始對A T 2 5 0 1 0進(jìn)行數據寫(xiě)入和讀取之前, 按照設計要求進(jìn)行初始化.對TMS320F2812的設置:首先關(guān)閉可屏蔽中斷,設置中斷屏蔽寄存器,開(kāi)啟系統SPI時(shí)鐘使能,允許SPI串行外設接口正常工作.其次,DSP采用發(fā)送數據的方式對AT25010進(jìn)行初始化,當DSP需要對AT25010寫(xiě)入數據時(shí),向AT25010發(fā)送寫(xiě)入控制指令,并控制時(shí)鐘同步信號和片選使能信號,向指定的地址寫(xiě)入數據;當DSP需要對AT25010讀取數據時(shí),向AT25010發(fā)送讀取數據的控制指令,從指定地址中讀取數據.

  4.1 SPI初始化

  初始化SPI模塊,需要打開(kāi)系統的SPI使能寄存器,設置SPI的波特率,配置SPI數據發(fā)送模塊寄存器.數據接收模塊寄存器.狀態(tài)控制寄存器和FIFO寄存器,滿(mǎn)足正常系統工作要求.

  4.2 AT25010設置

  當DSP需要讀取AT25010指定地址的數據時(shí),必須按照以下順序.在片選引腳CS拉低選中AT25010芯片后,“讀指令”必須首先發(fā)送至AT25010,然后發(fā)送地址數據.如果DSP讀取數據完畢,片選引腳CS拉高為高電平.

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

存儲器相關(guān)文章:存儲器原理



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

關(guān)鍵詞: SM32 SPI EEPROM

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>