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