英飞凌
直播中

李波

7年用户 1447经验值
私信 关注

使用jtag擦除TC277的Pflash并进行编程,出现PROER错误的原因?

我们的项目使用 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 注册表,发生错误,检查繁忙超时。
此时,芯片出现异常。 手动重置芯片后,芯片恢复正常。
造成这种情况的原因是密码错误还是其他原因。

                                                                                                                                                                                                                                                                                                                                                                                                        
                                                        

回帖(1)

李平

2024-7-5 17:26:04
在您的项目中,使用 JTAG 对 TC277-C-step 的 Pflash 进行擦除和编程时遇到了 PROER 错误。根据您提供的尝试过程,我将分析可能的原因并提供一些建议。

1. 确保 JTAG 连接正确:首先,请确保 JTAG 连接正确,包括 TC277 芯片和 JTAG 编程器之间的连接。如果连接不稳定或接触不良,可能导致通信错误。

2. 检查 JTAG 编程器设置:请确保 JTAG 编程器的设置正确,包括时钟频率、电压等。错误的设置可能导致通信问题。

3. 检查命令序列:在您的尝试过程中,您使用了以下命令序列:
   - 清除状态:ST 0x5554,0xFA
   - 擦除逻辑扇区范围:ST 0xAA50、0xA0000000 ST 0xAA58、0x0x01 ST 0xAAA8、0x80 ST 0xAAA8、0x50

   请确保这些命令序列与 TC277 芯片的文档一致。如果命令序列有误,可能导致 PROER 错误。

4. 检查擦除和编程过程:在您的尝试过程中,您在擦除逻辑扇区范围后等待了 3ms 并读取 FSR 注册。请确保等待时间足够,以便擦除过程完成。如果擦除过程未完成,可能导致编程错误。

5. 检查 FSR 寄存器值:在您的尝试过程中,您读取了 FSR 寄存器的值。请确保 FSR 寄存器的值正确,以反映擦除和编程过程的状态。如果 FSR 寄存器的值不正确,可能导致 PROER 错误。

6. 检查 TC277 芯片的固件版本:请确保 TC277 芯片的固件版本与您的项目需求一致。如果固件版本不兼容,可能导致 PROER 错误。

7. 尝试其他擦除和编程方法:如果以上建议都无法解决问题,您可以尝试使用其他擦除和编程方法,例如使用 TC277 芯片的 ISP(In-System Programming)功能。

总之,要解决 PROER 错误,您需要检查 JTAG 连接、编程器设置、命令序列、擦除和编程过程、FSR 寄存器值以及 TC277 芯片的固件版本。希望这些建议能帮助您解决问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分