FLASH單片機在稅控器開(kāi)發(fā)中的應用
AT45DBl61支持SPI系統工作方式,SPI的四種工作方式如圖3所示。
其中支持SPI 0和SPI 3兩種方式的時(shí)序圖分別如圖4和圖5所示。
對于不同的操作模式,即使在執行相同的操作時(shí),其操作碼也可能不同。如讀存儲頁(yè)操作,SPI 0模式下的命令代碼為52H,而SPI 3模式下的命令代碼則為D2H。除讀狀態(tài)寄存器外,所有的命令格均示于圖6圖中的rr:代表保留位,建議清零。
操作時(shí),MCU首先向AT45DBl6l發(fā)送1個(gè)命令字節,其后跟隨24位地址數據(前兩位為保留位,其后12位為頁(yè)地址選擇位,最后10位為頁(yè)內開(kāi)始字節地址),最后根據不同的操作對SI執行不同的處理。如寫(xiě)操作后面緊跟著(zhù)待寫(xiě)入的數據(高位在前),那么,讀存儲頁(yè)就要延遲32個(gè)SCK時(shí)鐘周期以處理讀操作,讀緩沖區則需延遲8個(gè)SCK時(shí)鐘周期。讀狀態(tài)寄存器的時(shí)序(SPI 0)如圖7所示。
讀狀態(tài)寄存器(SCK上升沿寫(xiě)入)時(shí),在寫(xiě)入命令字節(57H)后,如沒(méi)有地址數據,那么,在其后的8個(gè)SCK周期就可以直接從SO讀取STATUS數據,而且可以連續讀取,直到片選信號/CS置高為止。
基于A(yíng)T45DBl61稅控器的存儲電路設計
◇系統硬件設計
圖8所示為AT45DB16l與W78E516B連接示意圖。雖然FLASH的工作電壓和MCU不同,但它們都不需要電平轉換,兩者仍能正常通訊,從而簡(jiǎn)化了電路設計,節約了系統成本。由于WP接高電平,因而去掉了FLASH前256個(gè)字節的寫(xiě)保護功能,并且不會(huì )對系統的安全造成隱患,同時(shí)還節約了單片機的I/O口資源。為了保證對FLASH操作的可靠性,上電后,可對FLASH在操作前復位一次。AT45DB16l的RDY沒(méi)有占用單片機的I/O口,可在軟件處理中通過(guò)讀狀態(tài)寄存器的方法來(lái)確定FLASH內部操作是否處于忙狀態(tài)。
◇系統軟件設計
系統中包含智能卡的讀寫(xiě)、FLASH讀寫(xiě)和串口通訊處理操作,對于智能
FLASH寫(xiě)數據過(guò)程都采用先寫(xiě)入緩沖區,再從緩沖區寫(xiě)入存儲頁(yè)中方法,且數據都是以頁(yè)為單位,每次要寫(xiě)入528個(gè)字節。如果只修改頁(yè)中部分數據,而保留該頁(yè)其他數據,那么,必須先把該頁(yè)數據拷貝到緩沖區中,然后調用寫(xiě)緩沖區操作,再把緩沖區的數據寫(xiě)入該存儲頁(yè)中。
結束語(yǔ)
AT45DBl61串行FLASH存儲芯片在稅控器中的實(shí)際應用效果很好,而且編程也比較簡(jiǎn)單,與其它一些FLASH存儲芯片相比,AT45DB16的突出特點(diǎn)是電路簡(jiǎn)單,存儲容量大,占用系統資源少。
評論