| 注冊(cè)| 產(chǎn)品展廳| 收藏該商鋪

行業(yè)產(chǎn)品

當(dāng)前位置:
湖南嶸晟時(shí)代自動(dòng)化科技有限公司>>技術(shù)文章>>MC68HC908GP32 MCU的Flash存儲(chǔ)器在線編程技術(shù)

MC68HC908GP32 MCU的Flash存儲(chǔ)器在線編程技術(shù)

閱讀:964        發(fā)布時(shí)間:2021-11-8

MC68HC908GP32 MCU的Flash存儲(chǔ)器在線編程技術(shù)

存儲(chǔ)器技術(shù)的發(fā)展對(duì)計(jì)算機(jī)技術(shù)的發(fā)展起到了極大的推動(dòng)作用。理想的存儲(chǔ)器應(yīng)該具備存取速度快、不易失、存儲(chǔ)密度高、價(jià)格低等特點(diǎn)。一般的存儲(chǔ)器具有這些特點(diǎn)中的一個(gè)或幾個(gè)。

近幾年Flash存儲(chǔ)器(閃速存儲(chǔ)器)技術(shù)趨于成熟,是目前比較理想的存儲(chǔ)器。閃速存儲(chǔ)器具有電可擦除、無(wú)需后備電源來(lái)保護(hù)數(shù)據(jù)、可在線編程、存儲(chǔ)密度高、低功耗、成本較低等特點(diǎn)。而這些特點(diǎn),正式單片機(jī)所期望的,但早期引入片內(nèi)Flash技術(shù)的單片機(jī),在可靠性和穩(wěn)定性方面仍有一些不足。隨著Flash技術(shù)的成熟,目前,許多單片機(jī)內(nèi)部集成了Flash存儲(chǔ)器。Motorola公司在Flash技術(shù)相當(dāng)成熟的時(shí)候推出了片內(nèi)集成Flash存儲(chǔ)器的8位單片機(jī),該單片機(jī)的Flash存儲(chǔ)器具有以下特點(diǎn):

1、編程速度快及可靠性高

Motorola M68HC08系列單片機(jī)的片內(nèi)Flash的整體擦除時(shí)間可以控制在5ms以內(nèi),對(duì)單字節(jié)的編程時(shí)間在40ns以內(nèi)。片內(nèi)Flash的存儲(chǔ)數(shù)據(jù)可以保持10年以上,可擦寫次數(shù)在1萬(wàn)次以上。

2、單一電源電壓供電

一般的Flash存儲(chǔ)器,在正常的只讀情況下,只需要用戶為其提供普通的工作電壓即可,而要對(duì)其寫入(編程),則需要同時(shí)提供高于正常工作電壓的編程電壓。但是,Motorola M68HC08系列單片機(jī)通過(guò)在片內(nèi)集成電荷泵,可由單一工作電壓在片內(nèi)產(chǎn)生出編程電壓。這樣,可實(shí)現(xiàn)單一電源供電的在線編程,而不需要為Flash的編程在目標(biāo)板上增加多余的硬件模塊。正因?yàn)镕lash的讀寫電壓要求不同,一些公司的內(nèi)置Flash存儲(chǔ)器便放棄了在線擦除寫入功能,而僅有通過(guò)編程器的寫入功能。

3、支持在線編程

Motorola M68HC08系列單片機(jī)的片內(nèi)Flash支持在線編程(In-Circuit Program),允許單片機(jī)內(nèi)部運(yùn)行的程序去改寫Flash存儲(chǔ)器內(nèi)容,這樣可以代替外部電可擦除存儲(chǔ)芯片,減少外圍部件,增加了嵌入式系統(tǒng)開(kāi)發(fā)的方便性。
基于這些特點(diǎn),掌握Motorola M68HC08系列單片機(jī)的Flash存儲(chǔ)器的編程技術(shù),充分利用Motorola M68HC08系列單片機(jī)Flash存儲(chǔ)器的功能,對(duì)基于Motorola M68HC08系列單片機(jī)的嵌入式系統(tǒng)的開(kāi)發(fā)是十分必要的。但是,與一般程序相比,F(xiàn)lash存儲(chǔ)器的編程技術(shù)相對(duì)比較復(fù)雜,有一些特殊之處,本文在實(shí)際應(yīng)用基礎(chǔ)上,總結(jié)Motorola的 MC68HC908GP32單片機(jī)的Flash在線編程方法,給出編程實(shí)例,分析其中的技術(shù)難點(diǎn)。

二、MC68HC908GP32閃速存儲(chǔ)器在線編程要點(diǎn)

1、閃速存儲(chǔ)器的編程寄存器與編程步驟概述

在MC68HC908GP32單片機(jī)中,與Flash編程有關(guān)的寄存器有2個(gè),它們是Flash控制寄存器(FLCR)和Flash塊保護(hù)寄存器(FLBPR)。FLCR 高4位未定義,低4位分別為HVEN位-高壓允許位(High-Voltage Enable Bit)、MASS位-整體擦除控制位(Mass -Erase Control Bit)、ERASE位-擦除控制位(Erase Control Bit)、PGM位-編程(寫入)控制位(Program Control Bit)。FLBPR的內(nèi)容為Flash保護(hù)區(qū)域的起始地址的14~7位,保護(hù)區(qū)域的起始地址的最高位始終為1,而保護(hù)區(qū)域的起始地址的低7位(位6~0)始終為0。這兩個(gè)寄存器的具體含義與用法,在參考文獻(xiàn)[1]~[3]均可查到。

在M68HC08系列單片機(jī)中,對(duì)Flash進(jìn)行擦除或?qū)懭氩僮餍枰裱欢ǖ臅r(shí)序和步驟。對(duì)于整個(gè)M68HC908系列的各個(gè)型號(hào),這些步驟是一樣的,但時(shí)序要求可能略有不同,針對(duì)具體型號(hào)的Flash進(jìn)行編程時(shí)應(yīng)參考相應(yīng)的芯片手冊(cè)。同時(shí)需要注意的是,一些型號(hào)的監(jiān)控ROM內(nèi)含有Flash編程子程序,用戶可直接調(diào)用,例如MC68HC908JL3,有的型號(hào)則沒(méi)有,例如MC68HC908GP32,這種情況需自行編制子程序。這里以MC68HC908GP32的擦除一頁(yè)(128B)Flash為例說(shuō)明基本操作過(guò)程。步驟如下:

⑴ $2→FLCR(1→ERASE位,0→MASS位):進(jìn)行頁(yè)面擦除;

⑵ 讀Flash塊保護(hù)寄存器FLBPR;

⑶ 向被擦除的Flash頁(yè)內(nèi)任意一個(gè)地址寫入任意值,為方便起見(jiàn),一般向待擦除頁(yè)首地址寫入0;

⑷ 延時(shí)tnvs(>10μs),;

⑸ $A→FLCR(1→HVEN位);

⑹ 延時(shí)terase(>1ms);

⑺ $8→FLCR(0→ERASE位);

⑻ 延時(shí)tnvh(>5μs);

⑼ $0→FLCR(0→HVEN位);

⑽ 延時(shí)trcv(>1μs),完成一頁(yè)的擦除操作。

另外,F(xiàn)lash編程的基本操作還有“整體擦除操作"、“寫入(編程)操作"。整體擦除操作用于擦除GP32的整個(gè)Flash區(qū)域, 寫入(編程)操作用于以行(64字節(jié))為單位對(duì)擦除過(guò)的Flash區(qū)域進(jìn)行寫入。鑒于Flash編程的兩個(gè)寄存器的具體含義與用法及基本編程步驟在參考文獻(xiàn)[1]~[3]均可查到,限于篇幅,本文略。下面給出可供讀者直接使用的MC68HC908GP32的Flash存儲(chǔ)器編程子程序。


收藏該商鋪

請(qǐng) 登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時(shí)間回復(fù)您~
二維碼 意見(jiàn)反饋
在線留言