黃再銀
AT45D041是一由單5V供電、帶串行接口的快閃存儲(chǔ)器,該芯片特別適合于在系統(tǒng)反復(fù)編程,其4兆位的存儲(chǔ)容量被分為2048頁(yè),每頁(yè)264個(gè)字節(jié)。除了主存儲(chǔ)頁(yè)外,AT45D041還包含2個(gè)SRAM數(shù)據(jù)緩沖區(qū),每個(gè)區(qū)的容量均為264個(gè)字節(jié),當(dāng)主存儲(chǔ)頁(yè)正在編程時(shí),緩沖區(qū)可接收外部數(shù)據(jù)。傳統(tǒng)快閃存儲(chǔ)器往往利用多條地址線和并行接口來(lái)實(shí)現(xiàn)隨機(jī)存取數(shù)據(jù),而AT45D041則利用串行接口來(lái)實(shí)現(xiàn)連續(xù)存取數(shù)據(jù)。簡(jiǎn)單的串行接口簡(jiǎn)化了硬件電路,使線路板尺寸變小,成本降低,抗干擾能力增強(qiáng),系統(tǒng)的可靠性得以提高。數(shù)據(jù)編程寫(xiě)入時(shí),不需要高編程輸入電壓,只需要單5V(范圍為4.5~5.5V)即可完成數(shù)據(jù)的寫(xiě)入及讀出。
AT45D041的封裝及結(jié)構(gòu)圖
AT45D041有PLCC、TSOP、SOIC三種封裝型式,圖1所示為該芯片TSOP封裝圖,圖2為其內(nèi)部結(jié)構(gòu)圖。由圖可知,該芯片實(shí)際上只有9個(gè)引腳有用,各引腳功能如表1所示。
AT45D041的使用方法
通過(guò)單片機(jī)的控制可完成對(duì)AT45D041中數(shù)據(jù)的讀出及寫(xiě)入操作,各數(shù)據(jù)的讀出及寫(xiě)入操作的命令碼如表2和表3所示。數(shù)據(jù)的讀寫(xiě)時(shí)序如圖3、圖4所示,由圖可知,當(dāng)芯片使能腳為低電平時(shí),在時(shí)鐘輸入腳(SCK)的控制下,通過(guò)串行數(shù)據(jù)輸入腳(SI),便可將命令碼、主存儲(chǔ)頁(yè)或緩沖區(qū)地址碼串行輸入給該芯片,然后即可讀或?qū)懭霐?shù)據(jù)。需注意的是,所有的命令碼、地址、數(shù)據(jù)串行輸入時(shí),均是高位在前,低位在后。下面具體介紹數(shù)據(jù)的讀寫(xiě)方法。
數(shù)據(jù)的讀出 數(shù)據(jù)的讀出包括主存儲(chǔ)頁(yè)直接讀出、從主存儲(chǔ)頁(yè)讀取數(shù)據(jù)至緩沖區(qū)、從緩沖區(qū)讀數(shù)據(jù)、讀狀態(tài)寄存器等四種,除命令碼不同外,讀取的方法均大同小異,參見(jiàn)圖3所示時(shí)序波形圖,下面只介紹主存儲(chǔ)頁(yè)直接讀取數(shù)據(jù)的方法。主存儲(chǔ)頁(yè)讀允許用戶從2048主存儲(chǔ)頁(yè)的任一頁(yè)中讀取數(shù)據(jù),如表2所示,在SCK時(shí)鐘脈沖的控制下,先串行輸入命令碼(52H)、緊接著是4個(gè)保留位、然后是20個(gè)地址位(即11個(gè)頁(yè)地址位和9個(gè)頁(yè)中數(shù)據(jù)起始地址位)、最后是32個(gè)無(wú)關(guān)位。4個(gè)保留位是用于將來(lái)擴(kuò)展該芯片的容量而設(shè)置的,對(duì)于AT45D041可輸入4個(gè)0,32個(gè)無(wú)關(guān)位用于初始化讀操作。數(shù)據(jù)通過(guò)SO腳串行輸出,在數(shù)據(jù)的讀出過(guò)程中,芯片使能腳必須保持低電平,當(dāng)一頁(yè)數(shù)據(jù)的最后一個(gè)字節(jié)讀完后,會(huì)從該頁(yè)的第一個(gè)字節(jié)開(kāi)始繼續(xù)讀取數(shù)據(jù)。當(dāng)芯片使能腳(CS)由低電平變?yōu)楦唠娖綍r(shí),將終止數(shù)據(jù)的讀取,SO腳保持高阻態(tài)。
數(shù)據(jù)的寫(xiě)入數(shù)據(jù)的寫(xiě)入包括將數(shù)據(jù)直接寫(xiě)入主存儲(chǔ)器頁(yè)、寫(xiě)入緩沖區(qū)、通過(guò)緩沖區(qū)將數(shù)據(jù)寫(xiě)入主存儲(chǔ)頁(yè)(帶內(nèi)置擦除功能)、通過(guò)緩沖區(qū)將數(shù)據(jù)寫(xiě)入主存儲(chǔ)頁(yè)(不帶內(nèi)置擦除功能)、主存儲(chǔ)頁(yè)自動(dòng)重寫(xiě)等五種。除命令碼不同外,數(shù)據(jù)寫(xiě)入的方法均大同小異,參見(jiàn)圖4所示時(shí)序波形圖,下面只介紹將數(shù)據(jù)直接寫(xiě)入主存儲(chǔ)頁(yè)的方法。要寫(xiě)入的數(shù)據(jù)須事先寫(xiě)入緩沖區(qū)1或緩沖區(qū)2,然后再利用帶內(nèi)置擦除功能的緩沖區(qū)至主存儲(chǔ)頁(yè)寫(xiě)入功能將數(shù)據(jù)寫(xiě)入至指定的主存儲(chǔ)頁(yè)。如表3所示,在SCK時(shí)鐘脈沖的控制下,先串行輸入命令碼(82H或85H)、緊接著是4個(gè)保留位、然后是11個(gè)頁(yè)地址位(表示數(shù)據(jù)要寫(xiě)入的指定主存儲(chǔ)頁(yè))、最后是9個(gè)數(shù)據(jù)起始地址位(表示緩沖區(qū)第一個(gè)字節(jié)的起始地址)。當(dāng)所有的地址位均串行輸入后,芯片通過(guò)SI腳開(kāi)始接收數(shù)據(jù)并存儲(chǔ)在緩沖區(qū)1或緩沖區(qū)2中,當(dāng)緩沖區(qū)存滿后,將從緩沖區(qū)的第一個(gè)字節(jié)處開(kāi)始存儲(chǔ)數(shù)據(jù)。當(dāng)芯片使能腳CS由低電平變?yōu)楦唠娖綍r(shí),芯片將首先擦除指定的主存儲(chǔ)頁(yè),然后再將存儲(chǔ)在緩沖區(qū)中的數(shù)據(jù)寫(xiě)入指定的主存儲(chǔ)頁(yè)。
狀態(tài)寄存器
如表3所示,利用命令碼57H可讀取狀態(tài)寄存器數(shù)據(jù),第7位(最高位)表示空閑/忙,當(dāng)該位為1時(shí),表示AT45D041處于空閑狀態(tài),可接收下一個(gè)命令,如該位為0,則該芯片處于忙的狀態(tài),不能接收別的命令;狀態(tài)寄存器的第6位表示主存儲(chǔ)頁(yè)與緩沖區(qū)的比較結(jié)果,如果該位為0,則表示主存儲(chǔ)頁(yè)的數(shù)據(jù)與緩沖區(qū)相同,如該位為1,則表示主存儲(chǔ)頁(yè)的數(shù)據(jù)與緩沖區(qū)相比至少有一位不同;狀態(tài)寄存器的第5、4、3位表示器件的存儲(chǔ)容量,對(duì)AT45D041而言,這三位的數(shù)據(jù)分別是0、1、1;狀態(tài)寄存器的第2、1、0位為無(wú)關(guān)位。
硬件寫(xiě)保護(hù)及復(fù)位功能
當(dāng)寫(xiě)保護(hù)腳(WP)為低電平時(shí),主存儲(chǔ)頁(yè)的前256頁(yè)不能寫(xiě)入數(shù)據(jù)。
當(dāng)復(fù)位腳(RESET)變?yōu)榈碗娖綍r(shí),將中斷所有正在進(jìn)行的讀操作,并將內(nèi)部置成空閑狀態(tài)。一旦該腳變?yōu)楦唠娖?,即可?duì)芯片進(jìn)行正常的讀寫(xiě)操作。
AT45D041的典型應(yīng)用
由于AT45D041的存儲(chǔ)容量大,且接口簡(jiǎn)單,軟件編程方便,因而其應(yīng)用非常廣泛。它可用于各種單片機(jī)應(yīng)用系統(tǒng)中,也可用于數(shù)據(jù)采集系統(tǒng)中。圖5所示為其與AT89C51單片機(jī)的典型接口應(yīng)用電路圖。