很多工程师反馈在烧录极海芯片的时候,出现MCU烧录失败的现象,那我们怎么找出烧录失败的原因呢?
一、硬件方面问题
①众所周知,Vcap脚目的是为了保证内部主调压器的电压稳定,如果这个地方不接电容或者参数或位置过于随意,调试、烧录往往会有问题。所以在测试极海APM32F003/APM32F4xx系列的芯片时,务必注意这些引脚接电容接地(一般都是2.2uf电容)。
②一般来讲,我们使用JTAG或者SWD模式下载程序时,就是下载到0×80000000里面,即主闪存存储器(Flash)。所以我们要根据用户手册中,确保BOOT0引脚是低电平(一般是10k电阻接地)。

③剩余就是外部因素,由于J-link、DAP-link、ST-link的差异问题,有时候会出现各种各样的问题,例如能烧这款芯片烧不了另外一款芯片、烧了一次导致芯片进入读保护等等。还有就是烧录接口不良等问题。
二、软件问题
因为每个工程师对编程环境各有喜好,大多数工程师都是用keil、IAR作为编译器,J-Flash作为辅助等等。本篇文章主要讲使用keil5和J-Flash中遇到的一些问题。下面我们一起来看一个案例,在使用APM32F030K6T6的过程中,开发和测试都没有问题,但是实际到了生产的时候,由于是人工顶针式烧录,难免会有异常情况,然后我们对烧录异常的芯片进行一系列分析。
①首先使用keil5看是否能正常识别芯片,先检测一下keil5的配置,确保芯片驱动、J-link正常连接,版本号、SWD、成功识别芯片、下载算法正常。



②如图问题出现了,即使上面的因素都确定了,但是仍然没有办法正常烧录。因为现在用的是4pin烧录线,那么会不会是因为没有接reset脚的原因呢,有时候reset脚没有接也会导致烧录异常问题。接着使用了5pin烧录线,并且换了新的杜邦线,确保烧录线没有问题,结果还是不行。

③紧接着我们换J-flash尝试一下,寻找对应芯片驱动、SWD驱动。


④连接成功后,我们擦除芯片,显示擦除成功。重新尝试一下烧录代码,居然失败了,为什么可以擦除但是不能烧录呢?

⑤最后考虑到有没有可能是因为人工用离线烧录器的问题(或许人工问题,或许是离线烧录器的问题),导致芯片进入了读写保护,从而导致无法二次烧录造成的烧录不良。尝试更换成另外一款离线烧录器配置成选项字节烧录(即解除读写保护)。最终结果确认是可以烧录,并且再使用keil烧录也没有问题了。

三、总结
最后,极海芯片烧录的相关问题总结如下,大家可以根据下面表格进行排查。

