这一类的器件一般将振荡器校准字存储在测试存储器的地址0x2008处,尽管这些值是存在测试存储器的位置,而且与FLASH的编程时序没有关系,但是,仍然会出现丢失和损坏的现象。根据经验,我们列出了下面的可能的原因的清单,以及采取什么样的步骤来防止以后再发生类似的事情。
① 糟糕的连接: 弹簧顶针、编程插座以及编程连接器的连接不可靠。糟糕的连接或者电源中断会导致编程指令被错误执行或者被跳过。错误地读取指针或者编程顺序可能会导致将编程矢量指向测试存储器。
----检视和清理编程连接。这一类型的错误往往发生于生产进行了一段时间之后。
② 糟糕的编程器电源:如果在编程的过程中编程器的电源出现中断的话,编程器在器件被擦除后会丢失校准字数据。
----修理编程器的电源。
③ 电缆信号完整性: 如果编程波形变形的话,这些命令就会被错误执行或者跳过,这将会导致校准字被损坏。
----缩短或者重新走线编程电缆。这种问题往往伴随着比较高的校验错误率。
④ 编程中断:如果在片擦除的过程中出现编程器中断的话,校准字就会丢失。这可能是由电源导致,也可能以为连接或者操作失误。
----验证完整的编程时序。
⑤ 过时的固件:对于保存正确的校准字数据,过时的编程器版本所使用的方法的可靠性会更差一些
----更新固件。
⑥ 并行编程:有些客户会使用不支持多器件编程的编程器来对多个器件同时编程,另外,即使使用了多个单独的编程器或者是多器件编程器.......不能对多个器件共享使用同一个编程连接器。
----验证编程工序。
⑦ 编程硬件:编程硬件有可能没有使用正确的器件编程规范。
----验证编程器是否功能正常,使用从可靠供应商处获得的编程器来验证根本原因
⑧ Vdd上的大电容:有些应用可能需要在Vdd上加大电容,由于这些电容的存在,在加上比较短的Vdd关闭时间,这可能导致器件在编程阶段之间,器件有可能没有能够正常复位。
----在编程时在Vdd上加放电电路,或者增加Vdd关闭时间,以保证完全放电。或者干脆减小Vdd上的电容。