HelloMCU! https://bbs.21ic.com/?206952 [收藏] [复制] [RSS]

日志

AT91SAM7X的FLASH锁死及解决!

已有 2366 次阅读2007-12-7 15:54 |系统分类:ARM| ARM

公司最近的一批产品中使用了AT91SAM7X256,在下程序的时候发现一部分片子下不进程序,现象是这样的,在HJTAG下能通过WIGLER检测到ARM核,如图


然后进入HFLASHER,但Check不到型号,显示Error:Can't

halt target and make it enter DEBUG state.如图


有些板子换了单片机后能用了,有的还是不行.感觉单片机是加在板子上才出的问题,于是怀疑是电路上的问题,但是各部分的电压都正常.在21IC的网友指点下,我通过ERASE脚加高电平50MS以上,擦除全部FLASH,并解除FLASH锁.再次上电后重新Check,OK,下载OK!!!!!.

 

     困扰的问题解决了,我思考原因,注意到在写程序的时候外部看门狗给单片机复位了,有些单片机在写程序时复位了就再不能写了,问题和上面提到的一样!我查了Datasheet注意到了:

 

     AT91SAM7X256有一个安全位。它是一个特殊的NVM位。当安全位使能时,对Flash的所
有访问,包括通过ICE接口或快速Flash编程接口,都被禁止。从而 保护了Flash的内容。
这个安全位只能通过EFC 用户接口的“ 设置安全位” 命令来使能。而禁止安全位只能通
过将ERASE引脚拉高,将整个flash 全部擦除。在安全位为禁止状态的情况下,对 flash
的所有操作都可以进行。很重要的一点是,拉高ERASE 引脚的时间必须大于50 ms。
由于ERASE集成了下拉电阻, 在正常工作模式下这个引脚可以悬空。不过将它直接连接到GND 也是安全的。很重要的一点是,拉高ERASE 引脚的时间必须大于50 ms。
 

    我认为是在复位的时候 将Flash锁了.  其它的原因暂时还没想到! 欢迎大家提出自己的见解!

 

 

 

 

路过

鸡蛋

鲜花

握手

雷人

全部作者的其他最新日志

发表评论 评论 (4 个评论)

访客Jne5HT 2008-6-20 11:13
注意了! AT91的芯片的复位引脚默认都是不接受外部复位信号的!如果要接受外部复位芯片,首先需要配置复位控制器!
访客Jne5HT 2008-6-20 11:15
另外,请问你的H-JTAG多少版本? 另外,请问你有没有用ULINK2,JLINK等第三方商用级别的工具测试过?
回复 lyhstudio 2008-6-29 12:23
请问你的H-JTAG多少版本? H-JTAG版本应该是V0.4.1~V0.5.0,因为我的HJTAG是一直更新的! 另外,请问你有没有用ULINK2,JLINK等第三方商用级别的工具测试过? 手边没有这样的工具,没有测试!
回复 lyhstudio 2008-6-29 12:30
AT91的芯片的复位引脚默认都是不接受外部复位信号的!如果要接受外部复位芯片,首先需要配置复位控制器! 这是一个问题,我再没写程序的时候复位应该是没有效果的, 那么芯片锁死由于复位是有问题的! 我再分析分析! 谢谢Jne5HT