黃再銀
AT45D041是一由單5V供電、帶串行接口的快閃存儲器,該芯片特別適合于在系統反復編程,其4兆位的存儲容量被分為2048頁,每頁264個字節。除了主存儲頁外,AT45D041還包含2個SRAM數據緩沖區,每個區的容量均為264個字節,當主存儲頁正在編程時,緩沖區可接收外部數據。傳統快閃存儲器往往利用多條地址線和并行接口來實現隨機存取數據,而AT45D041則利用串行接口來實現連續存取數據。簡單的串行接口簡化了硬件電路,使線路板尺寸變小,成本降低,抗干擾能力增強,系統的可靠性得以提高。數據編程寫入時,不需要高編程輸入電壓,只需要單5V(范圍為4.5~5.5V)即可完成數據的寫入及讀出。
AT45D041的封裝及結構圖

AT45D041有PLCC、TSOP、SOIC三種封裝型式,圖1所示為該芯片TSOP封裝圖,圖2為其內部結構圖。由圖可知,該芯片實際上只有9個引腳有用,各引腳功能如表1所示。
AT45D041的使用方法
通過單片機的控制可完成對AT45D041中數據的讀出及寫入操作,各數據的讀出及寫入操作的命令碼如表2和表3所示。數據的讀寫時序如圖3、圖4所示,由圖可知,當芯片使能腳為低電平時,在時鐘輸入腳(SCK)的控制下,通過串行數據輸入腳(SI),便可將命令碼、主存儲頁或緩沖區地址碼串行輸入給該芯片,然后即可讀或寫入數據。需注意的是,所有的命令碼、地址、數據串行輸入時,均是高位在前,低位在后。下面具體介紹數據的讀寫方法。

數據的讀出 數據的讀出包括主存儲頁直接讀出、從主存儲頁讀取數據至緩沖區、從緩沖區讀數據、讀狀態寄存器等四種,除命令碼不同外,讀取的方法均大同小異,參見圖3所示時序波形圖,下面只介紹主存儲頁直接讀取數據的方法。主存儲頁讀允許用戶從2048主存儲頁的任一頁中讀取數據,如表2所示,在SCK時鐘脈沖的控制下,先串行輸入命令碼(52H)、緊接著是4個保留位、然后是20個地址位(即11個頁地址位和9個頁中數據起始地址位)、最后是32個無關位。4個保留位是用于將來擴展該芯片的容量而設置的,對于AT45D041可輸入4個0,32個無關位用于初始化讀操作。數據通過SO腳串行輸出,在數據的讀出過程中,芯片使能腳必須保持低電平,當一頁數據的最后一個字節讀完后,會從該頁的第一個字節開始繼續讀取數據。當芯片使能腳(CS)由低電平變為高電平時,將終止數據的讀取,SO腳保持高阻態。

數據的寫入數據的寫入包括將數據直接寫入主存儲器頁、寫入緩沖區、通過緩沖區將數據寫入主存儲頁(帶內置擦除功能)、通過緩沖區將數據寫入主存儲頁(不帶內置擦除功能)、主存儲頁自動重寫等五種。除命令碼不同外,數據寫入的方法均大同小異,參見圖4所示時序波形圖,下面只介紹將數據直接寫入主存儲頁的方法。要寫入的數據須事先寫入緩沖區1或緩沖區2,然后再利用帶內置擦除功能的緩沖區至主存儲頁寫入功能將數據寫入至指定的主存儲頁。如表3所示,在SCK時鐘脈沖的控制下,先串行輸入命令碼(82H或85H)、緊接著是4個保留位、然后是11個頁地址位(表示數據要寫入的指定主存儲頁)、最后是9個數據起始地址位(表示緩沖區第一個字節的起始地址)。當所有的地址位均串行輸入后,芯片通過SI腳開始接收數據并存儲在緩沖區1或緩沖區2中,當緩沖區存滿后,將從緩沖區的第一個字節處開始存儲數據。當芯片使能腳CS由低電平變為高電平時,芯片將首先擦除指定的主存儲頁,然后再將存儲在緩沖區中的數據寫入指定的主存儲頁。
狀態寄存器

如表3所示,利用命令碼57H可讀取狀態寄存器數據,第7位(最高位)表示空閑/忙,當該位為1時,表示AT45D041處于空閑狀態,可接收下一個命令,如該位為0,則該芯片處于忙的狀態,不能接收別的命令;狀態寄存器的第6位表示主存儲頁與緩沖區的比較結果,如果該位為0,則表示主存儲頁的數據與緩沖區相同,如該位為1,則表示主存儲頁的數據與緩沖區相比至少有一位不同;狀態寄存器的第5、4、3位表示器件的存儲容量,對AT45D041而言,這三位的數據分別是0、1、1;狀態寄存器的第2、1、0位為無關位。
硬件寫保護及復位功能

當寫保護腳(WP)為低電平時,主存儲頁的前256頁不能寫入數據。
當復位腳(RESET)變為低電平時,將中斷所有正在進行的讀操作,并將內部置成空閑狀態。一旦該腳變為高電平,即可對芯片進行正常的讀寫操作。
AT45D041的典型應用
由于AT45D041的存儲容量大,且接口簡單,軟件編程方便,因而其應用非常廣泛。它可用于各種單片機應用系統中,也可用于數據采集系統中。圖5所示為其與AT89C51單片機的典型接口應用電路圖。