STM8新打样的板子无法烧写程序解决方法

823 阅读3分钟

这是我参与8月更文挑战的第22天,活动详情查看:8月更文挑战

  前段时间新做了一批STM8的板子,在第一次烧写程序的时候出问题了,程序烧写不进去,不仅仅是一个,是所有的板子都烧不进去程序?难道是图纸设计错了?图纸只是在以前的基本上稍微改了一点,但是改动不大,再说了改动的只是外围电路,单片机部分没有修改?那么难道是PCB加工出了问题?仔细检查了PCB文件和电路板也没有发现啥大的问题?

  那么为什么程序烧写不进去呢?首先使用IAR在线烧写。

image.png

image.png

提示*.out文件丢失,于是将工程生成的所有文件全部删除,然后重新编译,下载调试的时候,依然是这个错误。

  于是改用STVP软件下载

image.png

结果提示无法连接到芯片,检查了一下烧写器的驱动正常。

image.png

找了一块以前的板子可以正常烧写,然后一测试新做的板子,就是连接不上单片机。怀疑这次的单片机有问题,于是将这批采购的单片机焊接到以前的旧板子上,可以正常烧写。将旧板子的单片机换到新板子上,依然不能烧写。那么基本可以确定是这批电路板出了问题?

  那么电路板到底是哪里出问题了?器件的焊接,过孔,焊盘等等会出现的问题挨个检查了一遍,都没有发现可以的迹象。那么连接不上单片机,很可能就是烧写SWIM线路有问题,或者时单片机上电后没有正常工作。

  于是测量了一下单片机的复位引脚,发现新焊接的板子单片机复位引脚一直都是低电平,也就是单片机上电后,一直处于复位状态,没有工作。检查了一下复位引脚的电容和电阻,值都是正常的,焊接也正常。那么单片机没有工作,这就只有一个原因了,就是晶振没有起震。板子用的是STM8的内部晶振,外部只有一个电容,难道是电容的容量有问题?于是换了好几种电容测试,烧写器依然不能连接到单片机。

  接下来看芯片手册,查资料,经过一番折腾后,终于找到了原因,那就是单片机引脚的这个VCAP电容在PCB布线的时候,一定要靠近单片机的IO引脚,否则这个单片机内部的震荡电路就不能正常工作,也就是单片机内部的晶振么有起震。

  接下来手动飞线将单片机8脚的电容向引脚方向移动了一点,然后用烧写器烧写。此时可以正常烧写了。看来果然是这个VCAP电容距离太远导致的。

  这次新打板的时候,为了美观一点,将VCAP电容挪动了一个位置,结果就导致了这个结果。这里又是一个大坑,看来以后PCB布局时,一定要注意这一点。

单片机正常工作时,上电复位引脚电平变化如下图所示

1.jpg

复位引脚电平会从0V上升到4V

2.jpg

VCAP引脚的电平会从0V上升到1.8V

单片机出现连接不上,烧写不了程序,通过这两个引脚的电平就可以判断出来,单片机是否正常工作了。