MPC56xx系列器件具有用于代码和数据的内部非易失性闪存存储器。Freescale的MPC56xx设备上实现了两种类型的闪存模块,即C90FL和C90LC。C90FL闪存适用于大容量闪存存储器阵列,而C90LC优化了较小的闪存阵列配置。
闪存存储器设计可实现快速编程,但需要一次擦除整个块。一旦编程完成,闪存存储器在断电时保持其编程状态(非易失性)。在这种技术中,闪存存储器阵列中的每个单元保存一个位的值(已编程为0或擦除为1)。这是一种采用2级NOR闪存实现,并使用单个电压阈值来确定位的高低的技术。这确保了最大的数据保留以满足严苛的汽车要求。为了进一步防止位翻转,该技术实现了纠错编码(ECC),可纠正单位错误并识别ECC码字(64位数据位加8位ECC奇偶校验位)中的任何双位错误。
由于ECC,闪存存储器可能处于ECC位无效的状态。如果擦除操作在完成之前被中断,就可能发生这种情况。如果在C90FL闪存上执行擦除操作时发生断电,正在擦除的闪存块可能会处于不确定状态(ECC值无效)。所谓断电是指意外断电、电源电压下降或意外复位。
本应用笔记描述了如何恢复由于中断的擦除操作而导致C90FL闪存块处于非法状态的过程,如果发生此类断电情况。