- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LPC900系列单片机Flash的字节编程方法
LPC900 系列单片机 Flash 的字节编程方法
一、 概述
LPC900 系列单片机是 PHILIPS 公司推出的一款高速、低功耗的小管脚单片机,包括 P89LPC932 、
P89LPC930/931、P89LPC920/921/922 、P89LPC912/913/914 、P89LPC906/907/908、P89LPC901/902/903,它
们的特性基本一致,只是内部资源、管脚和价格有所不同。LPC932 具有 512 字节的片内 EEPROM,可用
来保存用户的数据,其它芯片没有片内 EEPROM,但是它们的 Flash 具有字节擦除编程特性,可直接用来
保存用户的数据,代替片内 EEPROM 。
二、 字节擦除编程操作方法
LPC900 系列单片机的字节擦除编程特性允许 Flash 程序存储器用作数据存储器,使用 VDD 电压来执
行编程和擦除算法,Flash 编程/擦除操作执行时间小于 2ms 。以下是各芯片的Flash 大小和扇区/页规格:
P89LPC930/931 是 4KB/8KB 的Flash ,Flash 扇区大小为 1K 字节,页为 64 字节;
P89LPC920/921/922是2KB/4KB/8KB 的Flash ,Flash扇区大小为1K字节,页为64字节;
P89LPC912/913/914均为1KB 的Flash ,Flash扇区大小为256字节,页为64字节;
P89LPC906/907/908、P89LPC901/902/903均为1KB 的Flash ,Flash扇区大小为256字节,页为16字节。
字节擦除编程实际是应用固件(IAP-Litie)控制来实现的,即通过使用4个SFR来实现,1个控制/状态寄
存器--FMCON ,1个数据寄存器--FMDATA ,2个地址寄存器--FMADRH 、FMADRL 。
1.IAP-Lite简介
P89LPC900系列单片机(除LPC932)支持IAP-Lite编程和擦除功能,未加密扇区中的任何字节都可通过
MOVC指令访问,因此,未加密扇区可用作非易失性数据存储器。另外,用户还可访问其它flash单元,诸
如UCFG1、引导向量字节、状态字节、加密字节和标识字节。访问上述flash单元的方法与访问用户程序存
储器稍微有些不同。
2.字节擦除编程应用
IAP-Lite提供了一种程序擦除编程功能,通过一次操作完成一页内一个或多个字节的擦除和编程,而
不影响该页的其它字节。IAP-Lite功能在微控制器的固件控制下得以实现,通过使用4个SFR和1个内部16/64
字节页寄存器来完成对未加密扇区的擦除和编程。这些SFR为:
FMCON (Flash控制寄存器),读时用作状态寄存器;写时用作命令寄存器。注:写入命令时
状态位被清零。
FMDATA (Flash数据寄存器),将接收的数据装入页寄存器。
FMADRL ,FMADRH (Flash存储器地址低字节,Flash存储器地址高字节),用来指示页寄存
器的字节地址或用户程序存储器的页。
页寄存器包括16/64个字节,每个字节都有一个更新标志。当将一个LOAD命令写入FMCON 时,页寄
存器和所有更新标志都被清零。当FMDATA被写入数据时,写入的值存放在FMADRL低4/6位指向的页寄
存器单元。同时,相应单元的更新标志置位,FMADRL 自动增加到下一个单元。在页寄存器的最后一个字
节被写入后,FMADRL 重新指向页寄存器的第一个字节,但不影响FMADRL[7:4]/[7:6] 的值。此时,就不
能继续向页寄存器写入数据了。通过在写入FMDATA前改变FMADRL 的内容可将任何字节单元装入页寄存
器,但是,每发布一个LOAD 命令,页寄存器的每个单元只能被写入一次,不要试图对一个页寄存器单元
执行多次写操作。
FMADRH和FMADRL[7:4]/[7:6]用来选择执行擦除编程功能的程序存储器页。当向FMCON写入擦除编
程命令后,页寄存器中被更新单元对应在程序存储器页的单元的所有内容被清除,且相应单元的内容被编
- 1 -
程到程序存储器页中。只有用户程序阵列中装入页寄存器的字节才可被擦除和编程,用户程序存储器的其
它字节不受影响
文档评论(0)