我们的项目使用 jtag 接口对 TC277-C-step 的 Pflash 进行擦除和编程,遇到了一些问题,需要您的帮助。在项目中,我们进行了以下尝试。我们进行了第一次尝试:
1.读取 FSR 注册表,读取值=0x01002000。
2. "清除状态 "命令序列(ST 0x5554,0xFA)。
3.Read FSR reg,read value=0x01000000,this means that it has been cleared flags successfully.
4. "擦除逻辑扇区范围 "命令序列(ST 0xAA50、0xA0000000 ST 0xAA58、0x01 ST 0xAAA8、0x80 ST 0xAAA8、0x50)。
5.等待 3ms,读取 FSR 注册(读取 500 次),读取值=0x01002000,擦除失败。
我们发现 FSR PROER=1,这导致擦除失败,我们推测是由于擦除/写入受保护扇区造成的。因此我们进行了第二次尝试:
1.读取 FSR 注册,读取值=0x01002000。
2. "清除状态 "命令序列(ST 0x5554,0xFA)。
3.Read FSR reg,read value=0x01000000, this means that it has been cleared flags successfully.
4. "擦除逻辑扇区范围 "命令序列(ST 0xAA50、0xA0000000 ST 0xAA58、0x01 ST 0xAAA8、0x80 ST 0xAAA8、0x50)。
5.Wait 3ms.Read FPRO reg, value=0x004000A0.Read PROCONP0 reg, value=0.Read FSR reg(read 500
times),read value=0x01002000,ererase fail.
第二次尝试发现,不是因为对受保护扇区进行擦除/写入。我们推测是由于在激活安全ENDINIT 保护的情况下,对目标 PFlash 进行编程或擦除。因此我们进行了第三次尝试:
1.读取 FSR 注册,读取值=0x01002000。
2.Read WDTSCON0 reg,read value=0xFFFC000F, get password = 0x03 rel = 0xFFFC lck = 1 ENDINIT = 1(最终密码=0x3C)。
3. "清除状态 "命令序列(ST 0x5554,0xFA)。
4.Wait 3ms, Write WDTSCON0 reg,wdata=0xFFFC003D(password = 0x3C rel = 0xFFFC lck = 0 ENDINIT = 1).
5.读取 WDTSCON0 注册表,发生错误,检查繁忙超时。
此时,芯片出现异常。 手动重置芯片后,芯片恢复正常。
造成这种情况的原因是密码错误还是其他原因。