电子说
FLASH的页擦除
FLASH由一系列的页组成,每页512字节。FLASHCON寄存器设置为0x20,FLASHDAT寄存器设置为0xA5,FLASHADR寄存器可以设置为要擦除的页内的任何一个地址。
如果FLASHADR被设置为锁定字节地址中的任何一个(0x7DFE或0x7DFF),则该擦除操作将擦除整个FLASH存储器,位于0x7E00和0x7FFF之间的保留区除外。
与读和写操作不同,在擦除操作完成后FLASHADR并不自动加1。
读操作启动一次从由DRAdress选择的寄存器中读取数据的过程。该过程可以通过向间接寄存器移入两位来启动。在读操作被启动后,可以通过查询Busy位来确定操作何时完成和何时可以读取数据。
写操作启动一次向由DRAddress选择的寄存器内写数据的过程。可以写长度不大于18位的任意长度的寄存器。如果待写寄存器的长度小于18位,写数据(WriteData)应左对齐(MSB占据位17)。在启动一个写操作之后,应查询“Busy”位来确定该操作何时完成。
FLASHSCL是一个8位寄存器,用它设置FLASH操作时序所需要的预分频值。当使用内部的2MHz系统时钟时,该寄存器应配置如下:
FLASHCON是一个8位寄存器,它控制FLASH逻辑如何响应对FLASHDAT寄存器的读和写操作。FLASHCON寄存器包含一个读方式设置和一个写方式设置。
FLASHDAT是一个10位的寄存器,它包含8位数据,一个FLFail位和一个FLBusy位,如图所示:
写FLASHDAT只需要8位,因为最后一个被锁存的位处于MSB位置。
读FLASHDAT只需要11个DR_SHIFT周期(8个用于FLData,一个用于FLFail,一个用于FLBusy)。
查询FLBusy至少需要2个DR_SHIFT周期,一个用于FLBusy,一个用于Busy。
FLASHADR是一个16位寄存器,它包含待读或待写的FLASH字节的地址。
在对FLASH进行烧录之前,需要对器件复位并禁止看门狗。否则,看门狗定时器可能在FLASH操作期间启动系统复位,导致预想不到的后果!
全部0条评论
快来发表一下你的评论吧 !