1、硬件方面问题 a、众所周知,Vcap脚目的是为了保证内部主调压器的电压稳定,如果这个地方不接电容或者参数或位置过于随意,调试、烧录往往会有问题。所以在测试APM32F003&APM32F4系列的芯片,务必注意这些引脚接电容接地(一般都是2.2uf电容)。
b、一般来讲,我们使用JTAG或者SWD模式下载程序时,就是下载到0x8000 0000里面。也就是主闪存存储器 (Flash)。所以我们要根据用户手册中,确保BOOT0引脚是低电平(一般是10k电阻接地)。 c、剩下的就是外部因素了,由于J-link、DAP-link、ST-link的差异问题(你懂的),有时候会出现各种各样的问题,例如能烧这款芯片烧不了另外一款芯片、烧了一次导致芯片进入读保护等等。还有就是烧录接口不良等问题。
2、软件问题 因为每个人对编程环境各有喜好,一般都是用keil、IAR作为开发平台,J-Flash作为辅助等等。我这里主要是讲我个人在使用keil5和J-Flash中遇到的一些问题。下面,我们来看一个例子,我在使用APM32F030K6T6的过程中,开发和测试都没有问题,但是实际到了生产的时候,由于是人工顶针式烧录,难免会有异常情况,然后我对烧录异常的芯片进行分析。
a、首先我们使用keil5看是否能正常识别芯片,先检测一下keil5的配置,确保芯片驱动、j-link正常连接,版本号、SWD、成功识别芯片、下载算法正常。
b、问题出现了,即使上面的因素都确定了,但是没有办法正常烧录。因为我现在用的是4pin烧录线,会不会是因为没有接reset脚的原因呢,有时候reset脚没有接确实会存在烧录异常问题。然后我使用了5pin烧录线,然后又换了新的杜邦线,确保烧录线没有问题,结果还是不行。 c、我们换J-flask尝试一下,寻找对应芯片驱动、SWD驱动。 d、连接成功后,我们擦除一下芯片,显示擦除成功。那么我们再尝试一下烧录代码,居然失败了,有点奇怪,为什么可以擦除但是不能烧录呢? e、然后我**一闪,有没有可能是因为人工用离线烧录器的问题(可能是因为人工问题,或者是离线烧录器的问题),导致了芯片进入了读写保护,从而导致无法二次烧录造成的烧录不良。然后我尝试用另外一款离线烧录器(晓北科技的XL_01)配置成选项字节烧录(即解除读写保护)。居然可以烧录,然后再使用keil烧录也没有问题了。
|