产品选型

avr单片机烧录 如何给AVR单片机烧录程序

小编 2024-10-12 产品选型 23 0

如何给AVR单片机烧录程序

之前做项目有碰到过因为AVR单片机下载程序出错而导致程序无法正常执行。下面就教各位使用正确的方法来完整的烧录程序到单片机当中。注意此次选用的单片机是非常经典的Atmega328p,该单片机广泛用于各类项目中,同时也是开源平台Arduino的其中一款核心主控。

Arduino Nano

工具材料

USB ISP下载器

Win10/Win7 PC一台

下载软件Progisp

USB ISP

1. 将下载器接入电脑,另一端接入到板子的下载口。请注意,下载器的引脚一定要和板子上的引脚一一对应。

板子ISP接线图

2. 打开PROGISP文件夹,然后双击“progisp.exe”。

Progisp软件

软件界面

3. 芯片选择“ATmega328p”,单击右上侧“调入Flash”。

4. 弹出的对话框中选中已生成的.hex文件,再点击打开。

选中Hex文件

5. 此时下载软件中的编程方框按照下图的方式选择。

下载前设置

6. 接下来单击右下角的方框,会弹出一个新的窗口。

点击设置熔丝位

熔丝位配置选项

7. 按照下图的方式将每个框都勾选正确,然后点击右上角X退出即可。(注意,不同的单片机型号对应的熔丝位配置是不一样的,具体的配置请见具体的数据手册。)

Atmega328P的熔丝位设置

8. 然后点击软件上的“自动”按钮,下方信息框会显示正在上传程序。

烧录进行中

9. 待上传完成,本次程序烧录完成。

怎么使用Arduino给AVR(ATmege328p)单片机烧写bootloader

还是来说ATmege328p芯片相关的,都是arduino把它带火的。先看一个例子,在硬件上,假如想自己做一块arduino板或者想将ATmege328p嵌入到其它PCB项目里,在软件上,直接使用arduino ide 肯定是做好的选择了,开源的库很多嘛。那么问题来了,才买回来的ATmege328p最小系统,你是不能直接使用arduino ide 来烧写arduino程序的,那怎么才能烧写进去呢?这就是这个教程要解决的问题了。

Arduino Bootloader的作用

bootloader一般情况下微处理器写入程序时都通过专门的编程器进行烧写,但是也可以通过在MCU中预先写入一些程序来实现某些基本功能,这些预先写入的程序代码就是bootloader。这样每次复位时MCU就不是从程序存储器起始位置开始读取命令,而是先加载bootloader,实现一些设置和功能,再开始执行代码。 arduino通过预先写入的bootloader,每次通过串口给arduino板下载程序时,首先会令arduino板复位一次,这样就先进入了bootloader,接着向arduino板发送特定的下载指令,bootloader识别到这些指令后就会紧接着开始接收剩下的新的程序代码写入到内部flash中,如果没有进行下载,bootloader没有识别到下载指令,那么它就会跳转到程序区正常工作。简而言之,Arduino上的bootloader就是能让你用一根usb线就可以愉快下载程序的原因所在。

准备工作

arduino uno 板子一个ATmege328p 最小系统一个arduino usb 下载线一根杜邦线6根arduino ide

Arduino 的ICSP

烧写bootloader本质上只是使用编程器烧写一段特殊的程序到单片机中,因此其方法与使用编程器烧写程序是一样的,avr芯片来说,烧写程序是通过ICSP(in-circuit serial programmming)硬件接口来实现的 。

ICSP接口有6个引脚,分别是:

SPI接口 MISO、 MOSI、 SCK电源 VCC、 GND复位 Reset

对于arduino来说,管脚的对应关系是这样的:

MISO<------->12MOSI<------->11SCK <------->13

硬件连线

为了叙述的方便,我们把arduino板子称为ISP板,把ATmege328p最小系统板为目标板。

软件烧写步骤

在这里,我们直接使用arduino ide 来烧写。

按照前面的方式连接好ISP板和目标板后,将ISP板连接到电脑上。

1.打开arduino IDE的Tools -> Programmer下显示了所有支持的编程器列表,这里使用Arduino as ISP方式。

Arduino as ISP简单来说就是用另一块arduino板,给它用普通方式下载一段 专门的程序,将其变为一个ISP下载器,再将其相应引脚与待烧写bootloader的板子相连,再通过arduino IDE来控制进行bootloader烧写。

2.打开IDE,Files -> Examples -> ArduinoISP -> ArduinoISP,使用这个程序下载到ISP板子中。

3.打开IDE,然后点击Tools -> Boards选择目标板的类型。然后在Tools -> Programmer中选择Arduino as ISP,最后点击Tools -> 烧录引导程序,此时会开始进行烧写,需要耐心等待一会就成功了。

测试是否对目标板烧写成功bootloader

使用arduino ide 直接对目标板烧写随便一个arduino程序,成功烧写,对目标板烧写bootloader成功。

这种方式应该是最简单的了,不过对于AVR单片机还有很多的方法,后续我会陆续的介绍怎么使用USPASP或者USBISP来直接配置熔丝位,来自己烧写一个特定的bootloader,这个就更通用了。

喜欢我文章的朋友,欢迎关注、点赞、评论、交流。版权个人所有,转载请注明出处。

相关问答

我在 烧录avr单片机 的时候烧录不了-ZOL问答

单片机配置写入是你对这片芯片下次再写或程序上电启动时的要求,数据校验是你这片芯片写完后是否还要校验一次(这提高了可靠性可要多花时间)9条回答:【推荐答案...

单片机 为什么能直接 烧录 程序?

我刚开始学习单片机的时候也有和题主类似的困惑。当时是在大二,刚申请了个淘宝账号不久,刚看了下我的淘宝已购物品,第五件东西买的就是51单片机开发板,前几件...

单片机 怎么烧入程序?-ZOL问答

那要看你用什么单片机,比如STC的单片机,直接搞个串口,在搞个STCISP就能把程序烧进去,AVR的用专门的下载器,MSP430一般用JLINK烧写能否换个同型号的下载工具试试...

关于 单片机 ATMEL 芯片烧写程序需要什么软件!请各位大神指导;...

编程可以用keil34都行烧写程序可以用stc公司的一个软件好像叫stc-isp百度51单片机烧写软件肯定可以找到买板子的时候卖家一般不是提供这些东西的吗你不...

atmegal128 单片机 如何用 avr isp 烧写程序?我们在conect时总...

只要管脚正确,单片机型号选对了就没问题,还有就是芯片没有被锁定,即时钟配置正确。祝你好运!建议你使用第三方软件,编译环境中的那个不太好用!ATMEGA128的I...

iar avr V5.XX full怎么破解

选自AVR研讨会演讲提纲!双龙老耿(1)为什么选用AVR单片机?Flash程序存储器可擦写1000次以上,不再有报废品产生。PIC有的是OTP,只能烧录一次。A...

MAC电脑能搞 单片机 吗?

能。Mac开发单片机是肯定可以的,AVR单片机:sublime编辑代码、avr-gcc编译源代码、avrdude(开源软件)烧写hex文件这样就可以开发。STM32单片机:网上有eclip.....

新手如何学习 单片机 ,用那些软件模拟比较好?

你可以看看《如何学好单片机?》这个问答,里面有关于怎么学习的详细解读。今天重点说说你的第二个问题:用那些软件模拟比较好?一、单片...关于如何学习单片机,...

无刷发电机烧 AVR 是什么原因?

无刷发电机AvR烧坏了,发电机不能发电是什么原因?原因有:内部可控硅开路,发动机就发不出电。内部控制电路失控了,发电机发出的电压就升高。内部检测比较控制电...

arduino的程序如何下载到51 单片机 吗?

这应该不能下吧,ardiino和51单片机的硬件结构都一样,arduino程序虽然能转成hex文件,但烧写给51单片机,应该用不了,或者达不到程序想要的结果,ardnuio使用的...

猜你喜欢