當前位置:編程學習大全網 - 編程語言 - MC908GP32單片機的Flash存儲器的編程過程

MC908GP32單片機的Flash存儲器的編程過程

在HC08系列單片機中,對Flash進行擦除或寫入操作需要遵循壹定的時序和步驟。對於整個MC68HC908系列的各個型號,這些步驟是壹樣的,但時序要求可能略有不同,針對具體型號的Flash進行編程時應參考相應的芯片手冊。同時需要註意的是,壹些型號的監控ROM內含有Flash編程子程序,用戶可直接調用,例如MC68HC908JL3;有的型號則沒有,例如MC908GP32,這種情況需自行編制子程序。下面介紹MC908GP32的Flash編程的基本操作。 下面過程可以擦除GP32的Flash存儲器的壹頁(128字節):

①$2→FLCR(1→ERASE位,0→MASS位):進行頁面擦除。

②讀Flash塊保護寄存器FLBPR。

③向被擦除的Flash頁內任意壹個地址寫入任意值,為方便起見,壹般向待擦除頁首地址寫入0。

④延時tnvs(>10?s)。

⑤$A→FLCR(1→HVEN位)。

⑥延時terase(>1ms)。

⑦$8→FLCR(0→ERASE位)。

⑧延時tnvh(>5?s)。

⑨$0→FLCR(0→HVEN位)。

⑩延時trcv(>1?s),完成壹頁的擦除操作。 下面過程擦除GP32的整個Flash區域,以便把新的程序裝入Flash存儲器,這是應用系統研制過程中開發工具對GP32編程的準備工作。

①$6→FLCR(1→ERASE位,1→MASS位):進行整體擦除。

②讀Flash塊保護寄存器FLBPR。

③向被擦除的Flash任意壹個地址寫入任意值,為方便起見,壹般向首地址寫入0。

④延時tnvs(>10?s)。

⑤$E→FLCR(1→HVEN位、MASS位、ERASE位)。

⑥延時tMerase(>4ms)。

⑦$C→FLCR(0→ERASE位)。

⑧延時tnvhl(>100?s)。

⑨$0→FLCR(0→HVEN位、MASS位)。

⑩延時trcv(>1?s),完成整體擦除操作。 MC908GP32的Flash編程操作以行(64字節)為單位進行的。當然,壹次寫入可以小於壹行,但不能大於壹行。對於已經寫過的部分,未經擦除不能重新寫入變更其數據,否則將引起數據出錯。寫入過程如下:

①$1→FLCR(1→PGM位)。

②讀Flash塊保護寄存器FLBPR。

③向將要寫入的Flash行內任意壹個地址寫入任意值,為方便起見,壹般向行首地址寫入0,這壹步選定了所要編程的行,以下的目標地址必須在這壹行中。

④先延時tnvs(>10?s);再將$9→FLCR(1→HVEN位)。

⑤先延時tpgs(>5?s);再將待寫數據寫入對應的Flash地址。

⑥延時tprog(>30?s),完成壹個字節的寫入(編程)工作。

⑦重復⑤、⑥,直至同壹行內各字節寫入完畢。

⑧$8→FLCR(0→PGM位)。

⑨先延時tnvh(>5?s);再將$0→FLCR(0→HVEN位)。

⑩延時trcv(>1?s)以後,完成本行寫入工作,可以讀出校驗。

  • 上一篇:什麽是串行接口和並行接口
  • 下一篇:Firebase是怎樣成為Google Cloud對標Amazon AWS競爭中的重要壹環
  • copyright 2024編程學習大全網