介绍一种去除芯片写保护的方法

       收到退回的E508RET6故障芯片,把测试过程记录了一下,碰到同样问题可以参考。

  1. 先打开一个E50x的keil5工程,选择芯片E508,选择启动文件startup_GD32E508.s,JLINK连机,弹出下面窗口时,选择Cortex-M33,能找到芯片ID,连机正常。

        

        

     2. 点击download,下载不成功。

            

      3. 点Erase,显示擦除成功,就是下载不进去程序。

        

        

    4. 打开J-Flash,选E508,连机正常。

        

       ①readback-> entire chip,回读显示有数据,说明keil5里面没有擦除成功。

         

         

      ②用Jflash里面的Erase chip擦除试一下,也是显示擦除成功,但是回读仍然有数据,没有变化。

       

      5.尝试用GD32AllInOneProgrammer通过串口看看能不能擦除,显示有写保护。

        

   

6.如何去除写保护呢

①读取选项字节,显示0x1ffff808,0x1ffff80a,0x1ffff80c都是0,即WP[23:0]为0,页擦除/编程保护值的0到23位都是0,的确是保护生效。现在要把00擦除掉,去除写保护。

②根据GD32E50x用户手册描述,选项字节擦除过程如下所示。

a. 确保FMC_CTL寄存器不处于锁定状态;

b.检查FMC_STAT寄存器的BUSY位来判定闪存是否正处于擦写访问状态,若BUSY位为1

则需等待该操作结束,BUSY位变为0

c. 解锁FMC_CTL寄存器的选项字节操作位;

d. 等待FMC_CTL寄存器的OBWEN位置1

e.置位FMC_CTL寄存器的OBER位;

f. 通过将FMC_CTL寄存器的START位置1来发送选项字节擦除命令到FMC

g. 等待擦除指令执行完毕,FMC_STAT寄存器的BUSY位清0

h. 如果需要,读并验证是否擦除成功。

解锁FMC_CTL寄存器的LK位是向FMC_KEY寄 存器写入0x456701230xCDEF89AB,解锁FMC_CTL寄存器的OBPG和OBER位也是向FMC_KEY寄 存器写入0x456701230xCDEF89AB.

 7.反复按上面的操作,选项字节擦除都没有成功,没找到原因,用E507的开发板测试一下。

8.发现开发板选项字节的擦除和写入都没有问题,操作步聚都一样,为什么开发板可以,自己搭的板就不行呢。会不会是开发板连JLINK的排线不一样,把开发板连JLINK的排线换成普通的杜邦线试一下,果然选项字节擦除就不了了,结果如下。

       测试发现,按图1的接线,选项字节擦除不能成功,图2选项字节可以正常擦除,但是图1图2接线jlink仿真调试都没有问题。

   

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值