CH32V307小批量试产后,发现有些CH32V307烧录到flash的程序丢失, 这是一般是什么原因引起的呢?
程序丢失也没有什么规律,运行后,断电后,放那一段时间,时间也不确定,再上电就不运行了,然后重新烧录就正常,感觉向 ch32v307的flash中的程序意外丢失了一样
CH32V307小批量试产后,发现有些CH32V307烧录到flash的程序丢失, 这是一般是什么原因引起的呢?
程序丢失也没有什么规律,运行后,断电后,放那一段时间,时间也不确定,再上电就不运行了,然后重新烧录就正常,感觉向 ch32v307的flash中的程序意外丢失了一样
再上电不运行可能不一定是flash丢失导致的,可以通过isp工具校验代码的完整性。将ch32v307的boot0接vcc,然后可以通过usb连接电脑,点击isp工具上的校验功能,可以校验是否代码丢失(注意代码中不要开启读保护)。
另外可以检查一下时钟,如果是外部晶振,也有可能是晶振没有起震导致代码不运行。以及监控一下hardfault中断,是不是进了异常中断。
如果还有疑问,可以邮箱联系我:wangyy@wch.cn
按照你的建议,我拿了一块上电不运行的板子进行了代码校验,发现校验失败,那确认是程序丢失或损坏了。 我现在用同一块板子重新烧录一下程序,就恢复正常了。我现在再观察一下看看,什么时候程序会丢失?
昨天我们发现有一块板子程序运行也正常,然后我们拿下来换了一下阻容复位电路的电容,将1uf的电容改为0.1uf, 再上电运行的时候,发现程序也丢掉了。 不停的断电,上电出现的概率比较大
校验代码时注意芯片读保护不要开启,否则肯定会校验失败的。这个需要确认。
另外请问一下代码中有擦写flash的操作吗?比如IAP升级操作,有没有可能误触发进入到了IAP升级操作。可以看一下IAP升级的条件是什么?另外电源供电是多少?
我的微信号是18951773083,建议可以加一下我的微信,保证更有效快速的沟通。
你好,我们也遇到了这个问题,你们是怎么解决的啊,能分享一下吗?
你好,麻烦问一下,你们是怎么解决的啊
您好,可以参考一下2楼、4楼的方法检查测试一下,后续若有问题,可将问题发至我的邮箱沟通一下(lzs@wch.cn)。
问一下后续解决了吗,是什么问题?方便回答一下吗,不明不白的话不敢上项目了
你好,若出现上电功能运行异常情况,可以优先看一下电源以及时钟。电源是否稳定,晶振是否起震。若以上都排除,可以再用我们的ISP工具校验芯片程序,注意校验这个环节一定是在芯片读保护没有开启的情况下。若校验不成功的话,就需要看一下是不是代码里面存在flash擦除函数,执行擦除函数的条件是什么?是不是有可能误触发条件执行flash擦除了。理论上执行擦除函数的条件一定是尽可能的严苛和复杂的,就是为了避免这种误擦除的情况。
问题没有解决,目前用到咱家芯片的几个项目均出现这种问题,已经造成巨大损失,麻烦咱们单位这方面的专家出面解决一下
我电话17745117321
首先确保硬件没什么问题, 尤其注意供电电压, 不要有任何过压的情况,即使时间很短也要尤为注意.
其次就是一些通用的可能引发该现象的情况:
1,比如看看自己的代码,有没有擦写codeflash的地方, 比如做了自己的bootloader,这种情况的下, 注意自己的代码有没有问题, 避免一些程序上的处理意外,导致自己擦写了运行区的代码.
2,擦写codeflash时候注意电压监控, 当处于临界状态的情况,可能会引起一些意外情况.
3,还有就是当供电比较临界时候,极端情况下代码可能出现跑飞了的情况, 这时候如果跑到了代码擦写的地方,要尽量加以处理:
比如代码擦写通过函数指针从新定义, 擦写函数用之前赋值, 并配合相关的变量保护, 当变量不是期望的值时候, 说明代码可能是异常状态运行, 这时候不能进行flash的擦写.