打印

cy7c63813芯片程序被意外擦除

[复制链接]
2927|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我最近在使用cy7c63813这款芯片,在反复加电断电数次后,芯片就不工作了,重新烧录又可以工作,问题芯片用PSoC Programmer读取checksum发现和写入的不一致了,去掉保护位,发现程序被部分擦除,不知是哪里设计有问题导致这种现象,有遇到类似现象的传授一下解决方法,小弟不胜感激。也可以QQ联系,我的QQ是1297342840
沙发
飞翔的控制器| | 2015-7-22 16:02 | 只看该作者
你的程序里是否有写单片机Flash的部分,如果有,检查这部分程序

使用特权

评论回复
板凳
kejian2000| | 2015-7-22 16:07 | 只看该作者
芯片有个寄存器可以设置掉电保护,把这个值设到最高的保护电压,比如4.9V

使用特权

评论回复
地板
haichao52_ic|  楼主 | 2015-7-22 16:36 | 只看该作者
kejian2000 发表于 2015-7-22 16:07
芯片有个寄存器可以设置掉电保护,把这个值设到最高的保护电压,比如4.9V

您是指的这个吧
Low-voltage Control Register (LVDCR) [0x1E3] [R/W]
我去试试

使用特权

评论回复
5
haichao52_ic|  楼主 | 2015-7-23 13:36 | 只看该作者
kejian2000 发表于 2015-7-22 16:07
芯片有个寄存器可以设置掉电保护,把这个值设到最高的保护电压,比如4.9V

试过了,问题依旧……

使用特权

评论回复
6
kejian2000| | 2015-7-23 15:33 | 只看该作者
haichao52_ic 发表于 2015-7-23 13:36
试过了,问题依旧……

Low-voltage Control Register (LVDCR) 中
PORLEV = 10b
VM = 111b

使用特权

评论回复
7
飞翔的控制器| | 2015-7-24 08:19 | 只看该作者
换个芯片试下

使用特权

评论回复
8
haichao52_ic|  楼主 | 2015-7-24 09:35 | 只看该作者
kejian2000 发表于 2015-7-23 15:33
Low-voltage Control Register (LVDCR) 中
PORLEV = 10b
VM = 111b

按您说的参数值修改程序后一直在试验,目前还没试出问题。

使用特权

评论回复
9
haichao52_ic|  楼主 | 2015-7-24 09:37 | 只看该作者

我是一次同时测试16片,出问题的芯片随机,所以应该不是某个芯片的问题。

使用特权

评论回复
10
kejian2000| | 2015-7-24 11:43 | 只看该作者
haichao52_ic 发表于 2015-7-24 09:35
按您说的参数值修改程序后一直在试验,目前还没试出问题。

呵呵,这个问题我是遇到过的,曾导致客户那里出问题
这个是M8C核的缺陷,我专门联系过美国CY的技术支持,M8C核在电压低时会失步,导致执行的指令错乱,从而执行了SSC  00 之类的内部FLASH操作,导致程序丢失;将掉电保护电压设置高点后,反复上电掉电测试就没问题了。。。

这绝对是M8C核的一个大坑,且手册中连警告都没有。。。




使用特权

评论回复
11
haichao52_ic|  楼主 | 2015-7-24 14:32 | 只看该作者
我最初将LVDCR设置的14h,即PORLEV = 01b,VM = 100b,不行;
后来改成17h,即PORLEV = 01b,VM = 111b,出现问题的概率小了,但还是会出;
最后按您说的改成27h,即PORLEV = 10b,VM = 111b,就好了。

使用特权

评论回复
12
kejian2000| | 2015-7-24 15:24 | 只看该作者
haichao52_ic 发表于 2015-7-24 14:32
我最初将LVDCR设置的14h,即PORLEV = 01b,VM = 100b,不行;
后来改成17h,即PORLEV = 01b,VM = 111b,出 ...

我专门看了你这个芯片的手册,里面提到当CPU运行于12M以上时,必须PORLEV = 01b,
但我看了以前我用的那个芯片,没有这个提示。。。

使用特权

评论回复
13
haichao52_ic|  楼主 | 2015-7-24 17:25 | 只看该作者
kejian2000 发表于 2015-7-24 15:24
我专门看了你这个芯片的手册,里面提到当CPU运行于12M以上时,必须PORLEV = 01b,
但我看了以前我用的那 ...

我现在用的是内部24M,您看到当CPU运行于12M以上时,必须PORLEV = 01b,应该指的外部晶振吧

使用特权

评论回复
14
历史暴君| | 2015-7-24 17:37 | 只看该作者
呃。。。
这个真是有点坑人啊

使用特权

评论回复
15
kejian2000| | 2015-7-24 18:19 | 只看该作者
本帖最后由 kejian2000 于 2015-7-24 18:21 编辑
haichao52_ic 发表于 2015-7-24 17:25
我现在用的是内部24M,您看到当CPU运行于12M以上时,必须PORLEV = 01b,应该指的外部晶振吧 ...

手册没具体写,应该指无论外部还是内部,百度你这个芯片,有两个版本。。。。



但是下面这个就没提到,都是你说的这个芯片手册,真是坑啊。。。。
不过也提到一句关键,哈哈看到了吧,这就是问题所在!!:This field controls the level below which the low-voltage-detect trips—possibly generating an interrupt and the level at which the Flash is enabled for operation.


使用特权

评论回复
16
zheng522| | 2015-7-26 19:11 | 只看该作者
这个不错,要顶一下

使用特权

评论回复
17
没有六一了| | 2015-7-26 19:12 | 只看该作者
谢谢分享,把问题找到了,解决办法也找到,芯片本身的问题,确实有时候很难查

使用特权

评论回复
18
lyttly| | 2015-8-7 17:55 | 只看该作者
我也遇上这问题,我是电脑usb口通过二极管起电过来,只有4.4V左右,又需要24MHZ,这下该怎么是好。LVDCR设置成27h,即PORLEV = 10b,VM = 111b。 才4.4V就无法工作了。

使用特权

评论回复
19
大秦正声| | 2015-8-8 12:27 | 只看该作者
不错

使用特权

评论回复
20
afei8856| | 2017-4-27 14:18 | 只看该作者
没有六一了 发表于 2015-7-26 19:12
谢谢分享,把问题找到了,解决办法也找到,芯片本身的问题,确实有时候很难查 ...

你们是怎么解决的这个问题?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

7

帖子

0

粉丝