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