• STM8S芯片问题,批量生产时,板子烧录完程序,放置半个月,1%的板子就开不开机了或者1秒开关机一次,300次内板子必死机


    系列文章目录

    1.元件基础
    2.电路设计
    3.PCB设计
    4.元件焊接
    5.板子调试
    6.程序设计
    7.算法学习
    8.编写exe
    9.检测标准
    10.项目举例
    11.职业规划


    亲身经历,特记录下来,分享经验

    一、问题描述

    本人使用的是STM8S103F3主芯片。板子研发初期没发现问题,量产后,产线反应,有极个别板子会开不开机,就和没烧程序一样。

    起初每当回事,以为是忘了烧程序(所有板子程序都是自己手动烧录的),重新烧录了程序就好了。可是一段时间过后,每批板子里都会有那么几块开不开机,甚至还找到了开不开机的规律:板子烧完程序后,放在仓库半个月,有1%的板子就开不开机了。这就引起了我的重视,决心搞一下。

    拿了10块板子(都是产线退回来说开不开机的),烧完程序,每天抽空开关机一次,看看程序能不能正常启动。两周过去了,一切都是好的。

    于是,这件事又搁置了。。。。。。。。。。。

    一次偶然的机会,想到对板子开关机测试,开半秒,关半秒(供电电源和开关键一起狂点),没想到还真坏了;又对剩下9块板子进行开关机测试,300次内必坏。

    能浮现问题了,超开心!!

    二、寻找问题源头

    接下来就是找问题源头。首先,1%的概率会出问题,那么硬件的可能性极大(工艺造成硬件的参差不齐)
    找一块没坏过的板子和一块退回来的板子,烧一样的程序,一个点一个点的测量。结果还都一致,电压,电流都正常。

    最离谱的是,坏的板子用STVP读内部数据,一切还都在,与好板子数据对比,也是一致。
    请添加图片描述

    于是,这件事又搁置了。。。。。。。。。。。

    测量按坏的板子,看看为什么不能正常工作。
    刚测第一个复位脚,我就蒙了,原来复位脚一直在复位,芯片才不工作啊
    请添加图片描述
    于是开始上网查为什么会复位
    在这里插入图片描述
    一个个查下来,都不应该会发生,都正常啊。

    于是去查软件,先写一个简单的闪灯程序,测试开关300下。正常没问题。
    然后,烧总程序,又浮现问题了。
    所以大概率判断是程序问题。

    一个模块,一个模块的打开。
    测试300次开关机。

    当打开FLASH模块的时候,板子开始有所异常,那大概率判断是FLASH模块的问题。

    这段时间,产线又退板子来了,正想往里面烧程序的时候,发现我之前忽略了一点。
    在用IAR烧程序的时候,信息栏提示选项字节读取异常。请添加图片描述
    我一想,我的选项字节配置是由软件编写配置的,并且还是在FLASH模块里配置的
    请添加图片描述
    把这几行代码屏蔽掉,一切都好了。
    不过。。。。。
    配置选项字节的方法就两种:
    在这里插入图片描述
    如果每烧录一块板子,就打开IAR操作一通
    在这里插入图片描述
    不仅效率低,自己也会搞晕了。
    那咋弄。

    三、鱼与熊掌不可兼得

    上网查找,发现STVP也可以生成选项字节配置文件。
    可是,问题又来了。。。。。。。。。。
    我用到的是AFR0和AFR2…
    请添加图片描述

    请添加图片描述
    可是STVP,AFR2是保留,啥也没有,没法选,那也不行啊。

    我软件写,就不用麻烦手去来回操作了,可是会概率死机;
    我下程序的时候,多操作两步,几块板子还好,批量的话,身体吃不消;

    哎!!!!!!就没有省时又省力的法子吗?

    鱼与熊掌,不可兼得啊。。。。。。。。。

    四、解决问题

    此处不是做广告推销啊,这个是真的好用。
    在这里插入图片描述

    请添加图片描述
    这个烧录器的上位机有选项字节选项,直接可以写入
    请添加图片描述
    再把准备好的烧录软件加进去
    请添加图片描述
    点击同步到下载器,然后再批量下载到板子。
    问题完美解决!!!!

  • 相关阅读:
    LeetCode-剑指43-1-n整数中出现1的次数
    VMware17Pro虚拟机安装macOS教程(超详细)
    广和通5G模组FM650助力阿里云打造无影魔方Pro
    Openssl数据安全传输平台007:共享内存及代码的实现 ——待完善项目具体代码和逻辑
    根据先序遍历和中序遍历生成后序遍历
    【杂记】Ubuntu20.04装系统,安装CUDA等
    Java 解析线程的几种状态详解
    arthas实用梳理篇
    ESP8266-Arduino编程实例-RPI-1031倾斜传感器驱动
    JavaScript | 1000个判断条件难道要写了1000个 if ? 一文教你如何实现分支优化
  • 原文地址:https://blog.csdn.net/weixin_44407238/article/details/125621935