Flash編程器的FPGA實(shí)現(xiàn)
1 引言
本文引用地址:http://2s4d.com/article/150090.htm閃速存儲器(FLASH Memory)以其集成度高、成本低、使用方便等許多優(yōu)點(diǎn),廣泛應(yīng)用于通訊設(shè)備、辦公設(shè)備、家用電器、醫(yī)療設(shè)備等領(lǐng)域。利用其保存信息的非易失性和在線更新數(shù)據(jù)參數(shù)的特性,可將其作為具有一定靈活性的只讀存儲器(ROM)使用。
現(xiàn)在的數(shù)字電路應(yīng)用系統(tǒng)設(shè)計(jì)中,經(jīng)常遇到大容量的數(shù)據(jù)存儲問題。Flash由于容量大、存儲速度快、體積小、功耗低等諸多優(yōu)點(diǎn),而成為應(yīng)用系統(tǒng)中數(shù)據(jù)存儲器件的首選。由于在研制實(shí)時(shí)信號處理系統(tǒng)時(shí),需要一塊大容量的Flash來存儲坐標(biāo)變換的數(shù)據(jù)作查找表,因此面臨一個(gè)如何對Flash進(jìn)行編程,將數(shù)據(jù)寫入Flash的問題。由于我們選用的Flash芯片為SST39SF010/020,是最新生產(chǎn)的型號,需要自己開發(fā)編程器來滿足設(shè)計(jì)需要,達(dá)到既經(jīng)濟(jì)又實(shí)用的目的。這一型號的Flash采用的是標(biāo)準(zhǔn)的5V電壓供電,器件在命令控制下自己產(chǎn)生內(nèi)部的擦除電壓Vpp,從而完成數(shù)據(jù)的寫入和芯片的擦除等各種功能。而FPGA這種大規(guī)模的可編程器件十分適合邏輯電路的設(shè)計(jì),能方便地控制和產(chǎn)生 Flash編程操作中的各種控制命令,實(shí)現(xiàn)編程器的功能。
2 Flash的性能參數(shù)和操作時(shí)序
以最新的Flash芯片型號SST39SF010/020為例,容量為1/2Mbit(×8)。 它的主要性能有:
● 單一的5.0V電壓讀寫操作;
● 高可靠性,超過100年的數(shù)據(jù)保持能力;
● 快速擦除和字節(jié)編程功能
——扇區(qū)擦除時(shí)間典型值只需7ms;
——片擦除時(shí)間典型值只需15ms;
——字節(jié)編程需時(shí)間典型值只需20微秒;
——片重寫時(shí)間需3ms(SST39SF010)
● 片內(nèi)部產(chǎn)生Vpp編程電壓,實(shí)現(xiàn)自動讀寫時(shí)序;
● I/O兼容TTL;
各引腳功能:
Ams~A0:地址輸入 ——提供存儲器地址;
DQ7~DQ0:數(shù)據(jù)輸入/輸出 ——在讀時(shí)序時(shí)輸出數(shù)據(jù),在寫時(shí)序時(shí)接收輸入的數(shù)據(jù);
CE#:片選使能——當(dāng)CE#為低電平有效;
OE#:輸出使能——選通輸出緩存器;
WE#:寫使能——控制寫時(shí)序;
VDD:接5V電源;
VSS:接地。
在對Flash進(jìn)行編程操作前,必須保證存儲單元為空。如果不為空,就必須先對Flash芯片進(jìn)行擦除操作。由于Flash采用了模塊分區(qū)的陣列結(jié)構(gòu),使得各個(gè)存儲模塊既可以整個(gè)芯片一齊被擦除,還可以使各個(gè)存儲模塊被獨(dú)立的分別擦除。只需在地址和數(shù)據(jù)端寫入不同的操作命令即可實(shí)現(xiàn)不同的擦除操作。
SST39SF010的編程操作分三步驟:第一步是連續(xù)載入三字節(jié)命令的軟件數(shù)據(jù)保護(hù)操作,第二步是寫入字節(jié)地址和字節(jié)數(shù)據(jù),在編程操作過程中,地址是在CE#或WE#的下降沿時(shí)有效,而數(shù)據(jù)則是在CE#或WE#的上升沿時(shí)有效;第三步是芯片內(nèi)部的編程操作,該操作在CE#或WE#的第四個(gè)上升沿有效,隨后該內(nèi)部編程操作在30微秒內(nèi)即可完成。
FLASH的編程操作是自動字節(jié)操作,編程時(shí)要特別注意編程時(shí)間參數(shù)和使用的命令集。編程和擦除時(shí)鐘周期的定時(shí)參數(shù)如表所示。
評論