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