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