STM32F429ZGT6擦除和程序操作
对于任何闪存程序操作(擦除或程序),CPU时钟频率(HCLK)必须至少为1兆赫。如果在闪存操作期间发生设备重置,则不保证闪存的内容。在STM32F429ZGT6上写入或擦除闪存时,任何读取闪存的尝试都会导致总线停止。一旦程序操作完成,读操作将被正确处理。这意味着在进行写/擦除操作时不能执行代码或数据获取。在STM32F429ZGT6设备上,有两个库可用,允许从一个库读取操作,同时对另一个库执行写/擦除操作。
解锁Flash控制寄存器
在Flash控制寄存器(FLASH_CR)中不允许复位、写入,以保护Flash存储器免受可能的不必要操作,例如,电干扰。以下顺序用于解锁该寄存器:在Flash key寄存器(FLASH_KEYR)2中写入KEY1 = 0x45670123。在FLASH_KEYR中写入KEY2 = 0xCDEF89AB。任何错误的序列将返回总线错误并锁定FLASH_CR寄存器,直到下一次重置。通过在FLASH_CR寄存器中设置LOCK位,FLASH_CR寄存器可以被软件再次锁定。
注意:当FLASH_SRregister中的BSY位被设置时,FLASH_CR寄存器在写模式下是不可访问的。任何使用设置的BSY位写入它的尝试都将导致AHB总线暂停,直到BSY位被清除。
程序/擦除并行性
并行度大小是通过FLASH_CR寄存器中的PSIZE字段配置的。它表示每次对闪存进行写操作时要编程的字节数。PSIZE受电源电压和是否使用外部VPPsupply的限制。因此,在进行任何编程/擦除操作之前,必须在FLASH_CR寄存器中正确配置它。闪存擦除操作只能按扇区、银行或对整个闪存执行(大规模擦除)。擦除时间取决于PSIZE编程值。有关擦除时间的更多细节,请参阅设备数据表的电气特性部分。
注意:在程序并行度/电压范围设置不一致的情况下启动的任何程序或擦除操作都可能导致不可预测的结果。即使后续的读操作表明逻辑值已被有效地写入内存,该值也可能不会保留。要使用VPP,必须在VPPpad上加一个外部高压电源(8 - 9v之间)。外部电源必须能够维持这个电压范围,即使直流消耗超过10ma。建议将VPP的使用限制在工厂线上的初始编程。VPP电源的使用时间不能超过一个小时,否则可能损坏闪存。