设计与开发

程序烧不进单片机 软件工程师在调试STM32电路板时,突然烧录不了了,硬说硬件坏了

小编 2024-10-06 设计与开发 23 0

软件工程师在调试STM32电路板时,突然烧录不了了,硬说硬件坏了

新来的软件工程师在调试一块电路板,电路板上的主控是stm32单片机。软件工程师在调试软件的时候,突然发现stm32单片机烧录程序烧录不了了。刚开始调试时,每次都是能正常烧写程序的。他试了很多方法,都解决不了。先是关掉和重新打开keil编译软件,又把电脑关机又重新开机,最后把调试器的驱动卸载又重新安装,结果都是一样,怎么都烧录不了。但是,找来stm32的开发板,用相同的调试器,烧写相同的程序,却又能成功烧写。

软件工程师无计可施后,就找到了我,跟我说电路板坏了,程序怎么都烧录不成功,但是用开发板却能正常烧录,应该是在调试的过程中,硬件不小心被他弄坏了,叫我重新给他弄一块电路板。

我跟他详细了解了情况后,跟他说硬件应该没有坏。可是他不相信,他说他已经试过很多方法了,都没有解决,程序也证明是没有问题的,因为在开发板上是能正常烧录的,除了硬件出了问题,他实在是想不出来是哪里出了问题。

我微笑着跟他说,等我简单弄一下,电路板你又可以正常烧录了,别担心。他一脸不屑地看着我,根本不相信我说的话,好像是说,你就装吧,一会你就知道错了。

我懒得跟他解释,不慌不忙地打开STM32的烧录软件,连接好调试器和电路板,并给电路板上电,然后进行芯片程序擦除操作。眨眼的功夫,芯片程序擦除成功了。

我把电路板还给他,并跟他说,电路板已经好了,可以正常烧录了,不过不能用他当前的程序烧录,要用他以前烧录成功的程序烧录。

他半信半疑地看着我,然后按照我说的方法去试了。奇迹出现了,他用他以前调试的并且烧录正常的程序烧录,结果烧录正常了,不管烧录多少次,都能正常烧录。

他喜出望外地看着我,一个劲地说我牛,然后又问是怎么回事。我跟他说,电路板的代码不能一字不漏照搬开发板的参考例程,因为两者的原理图不一样,用到哪些就添加哪些,不然很容易出现这个烧录问题。

程序如何下载到单片机中?单片机常用的四种烧写程序方式介绍

单片机是一种可编程控制器,搭好硬件电路后,可以利用程序实现很多非常复杂的逻辑功能,与纯硬件电路相比,简化了硬件外围的设计、方便了逻辑的设计、丰富了逻辑的输出。不同厂家的单片机需要不同编程IDE来实现编程。在学习单片机之前,要先清楚单片机程序是如何烧写到单片机内部的,在烧写的过程中需要用到什么工具?因为不通用的烧写工具可能价格较贵,比如说Micorchip单片机使用的ICD系列编程器,单台价格在600-1000元人民币之间。今天和大学来认识一下单片机最常用的四种烧写方式和所使用到的工具。

1.使用JTAG接口实现

JTAG接口是一种标准的测试协议,可以实现编程时在线调试,利用单步追踪可以很方便的查找代码的Bug,大多数的单片机都支持这种接口。这种接口除了电源线和复位引脚之外,还要用到单片机的四个引脚,分别是:TDI、TMS、TCK、TDO,他们所代表的含义如下所示:

TDI--数据输入 ,所有写入寄存器的数据都是通过TDI接口串行输入的;TMS--模式选择 ,Jlink输出给目标CPU的时钟信号;TCK--时钟信号 ,所有数据的输入输出都是以该时钟信号为基准的;TDO--数据输出 ,所有从寄存器读出的数据都是通过TDO接口串行输出的;

以上这四个引脚都是协议里强制要求的,而且协议建议在设计电路时要选用上拉电阻。JTAG接口有多种形式,常用的20引脚、14引脚和10引脚。以20引脚JTAG为例,所设计的JTAG烧写电路如下图所示:

JTAG接口

上图中JTAG接口都通过电阻上拉了,有的单片机的这几个引脚在内部已经上拉,所以这几个上拉电阻可以省略,减少了成本和PCB空间的占用。

JTAG接口烧录方式常用的工具为J-Link,实物图如下图所示。

Jlink实物图

相信大家都见过或者听过这个烧写工具,这个工具很通用,但是大家在使用的时候一定要注意版权信息,因为这个工具是有版权的,前两年因为版权风波,网购平台还集中整治过一次。

2.SWD接口烧录方式

SWD是一种串行调试接口,与JTAG相比,SWD只需要两根线,分别为:SWCLK和SWDIO。他们的含义如下:

SWDIO --串行数据线,用于数据的读出和写入;SWDCLK --串行时钟线,提供所需要的时钟信号;

一般来说,大多数单片机的JTAG接口和SWDIO接口是复用的,SWD也是用J-Link工具来实现的。所以在使用的时候,只需要在软件界面做一下选择,使用SWD方式还是JTAG方式,硬件上无需改动。除了J-Link外,意法半导体的ST-Link也是支持SWD模式的。

SWD接口

SWD的接口如上图所示,可以看出,SWD和JTAG是相互复用的,由于SWD只需要两根线所以大大减少了对单片机GPIO口的占用,SWD方式也是可以在线调试的。

3.ISP烧写方式,用UART实现

使用过国产51单片机的朋友都清楚这种烧写方式,这种烧写方式是通过单片机的UART串口来实现的,所需要的工具也比较简单-USB/TTL。这个USB/TTL的芯片可以通过MAX232、CH340G等芯片来实现,通过MAX232实现的UART烧写电路如下所示:

UART串口烧写电路

在与单片机连接的时候,一定要注意交叉连接,所谓交叉连接即,单片机的TXD接串口RXD,单片机的RXD接串口TXD,否则数据通信失败。51单片机在使用该方式下载时需要断一下点再上电才能下载。

STM32单片机可以使用UART来实现程序下载,但是需要选择BOOT的模式,现在通过CH340G芯片可以实现自动ISP的下载方式,即不需要手动设置BOOT模式。

4.SWIM单总线下载方式

这种下载方式是针对STM8系列的单片机,这种方式只需要一根线即可实现程序的下载,所使用的工具为ST-Link,如下图所示:

ST-Link

以上为几种常见的烧写方式以及所使用的工具,欢迎大家留言评论,如果转载请注明作者信息和头条出处,感谢支持。

相关问答

单片机 开始可以 烧程序 用了几次就 烧不进去 为什么?-ZOL问答

有可能已经烧坏了,特别是89c52系列更特别是STC品牌的89C52的。很容易坏,你要注意了,你电压可能有问题。还有就是烧程序的时候需要复位,如果以前...

怎么 程序 忽然 烧不进单片机 了???-ZOL问答

7条回答:【推荐答案】这种情况会有很多种可能性:1、单片机已经损坏,楼主换个单片机试试。2、单片机开发板损坏,这个情况基本上不可能发生,但楼主需做好准备。3...

单片机烧不进程序 去了,一直显示请给MCU上电-ZOL问答

不要说小白,任谁都是长期晒黑滴。你别着急,人忙无智,也许问题很简单。如果你的电路板上有大的电解电容器,断电以后,等长一点时间再上电烧录程序,目的是等电容...

单片机程序 不进 是什么情况?

这种问题很常见,建议你尝试以下方法解决1.单击下载按钮,让软件向单片机写入程序,如果出现这个提示无法下载,请在下载状态下关闭单片机电源再重新打开,看烧写...

我有万能板. 单片机 .芯片.台式电脑.不知怎么把那 程序烧 到那单...

1、买你的单片机配套的烧录器以及与你的烧录器配套的数据线。注意有的烧录器是与打印口连接,而新电脑都没有打印口,只有USB口。2、需要你的烧录器软件并且安装...

每个 单片机 都可 程序 吗?

不知道你说的“烧写程序”是什么概念。如果是说单片机内部都有编制好的程序,那是没错的。如果是说自己把程序写进单片机,那不一定。单片机内部程序存储器,如...

为何我的 单片机程序烧 成功了 单片机却没反应-ZOL问答

SST的单片机是不能用STC-ISP软件烧写程序的,因为内部寄存器不一样,烧写程序时ISP软件是要读取单片机的串号信息的,即使是STC的单片机也要选择正确的...

60s2 单片机程序烧录 不进去 -ZOL问答

这要看单片机型号了,要是STC12C5A60S2,用老版的STC-ISP软件还可以,要是STC15F...再烧录就不行了,必须在外部配晶振了。到底是什么情况,都是猜测,因你没有说明...

为何 单片机烧完 程序 好使 重新上电点就不好使-ZOL问答

问题中没说清楚单片机系统是做什么用的,你的单片机系统是不是有外接传感器或者其他设备,烧程序用的是USB供电或者从烧写器给单片机系统供的电,由此我的理解是:...

arm 单片机烧 了可以修么?

先检查下单片机是否烧坏。方法如下:1、单片机是否还能继续写入程序。2、写入程序后,单片机是否能运行。一般来说,单片机接入过高电压,会发热,发热时间太...

猜你喜欢