造价通

反馈
取消

热门搜词

造价通

取消 发送 反馈意见

MC908GP32单片机编程过程

2018/06/1945 作者:佚名
导读: 在HC08系列单片机中,对Flash进行擦除或写入操作需要遵循一定的时序和步骤。对于整个MC68HC908系列的各个型号,这些步骤是一样的,但时序要求可能略有不同,针对具体型号的Flash进行编程时应参考相应的芯片手册。同时需要注意的是,一些型号的监控ROM内含有Flash编程子程序,用户可直接调用,例如MC68HC908JL3;有的型号则没有,例如MC908GP32,这种情况需自行编制子程

在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)以后,完成本行写入工作,可以读出校验。

*文章为作者独立观点,不代表造价通立场,除来源是“造价通”外。
关注微信公众号造价通(zjtcn_Largedata),获取建设行业第一手资讯

热门推荐

相关阅读