arduino烧录引导程序(BootLoader)方法及出错点

news2024/11/23 23:39:34

文章目录

  • 一、硬件电路准备
    • 1、328P的管脚图
    • 2、电路连接图
      • (1)连接图
      • (2) ISP连接及端口介绍
      • (3)管脚连接对应表
    • 1、准备ArduinoISP
    • 2、使用Arduino as ISP烧录设置Arduino板为烧写器
    • 3、烧录及错误
    • 4、为新烧录328p下载测试程序
    • 5、效果
  • 三、另一种烧录方法
    • 1、准备好编程器文件及上传
    • 2、上传测试程序
  • 四、直接用USB转TTL上传程序
  • 五、制作自己的烧写器

文章原出处: https://haigear.blog.csdn.net/article/details/129203322
烧录arduino引导程序是我们抛开UNO板做项目必经的过程。这里我们提供两种方法来实现烧录。第一种,利用实例程序中的ArduinoISP完成,第二种,利用开源项目,但他们的电路都是一模一样的。所以我们从电路开始。

一、硬件电路准备

1、328P的管脚图

这里提供一张328P与UNO板的管脚的对应图,有了它我们就可以准确无误的连接UNO板了,如下:

2、电路连接图

(1)连接图

这里的电路是最小化的电路图,如果你还想加点别的,比如复位电路,或者ISP管脚连接也可以,不过烧录的时候最好简单一些,避免出错后检查起来麻烦。
在这里插入图片描述
当然,如果你从uno板上引入电源的正极和负极,你完全可以把这个电容直接接在uno板的两个引入电极脚上(GND和5V脚),有人就这么干的,其实原理一样,就这么简单。

(2) ISP连接及端口介绍

首先我们看看板子上的ISP的pin口,其实如果是有两块板子,直接对等连接即可。
在这里插入图片描述
在这里插入图片描述

对等连接如下:
在这里插入图片描述

(3)管脚连接对应表

一般情况下,我们都不是给一块现成的板子烧录,而是一个裸芯片328P或者168P,给他们烧写你除了接好最小系统外,还需要将16,17,18,19和uno板的对应10,11,12,13脚接好。关键管角连接对应的端口,我列表如下:

328管脚l连接目标
9PINcrystal
10PINcrystal
20PIN+5V
22PINGND
17PINuno-11pin
18PINuno-12pin
19PINuno-13pin
1PINuno-10pin

##二、烧写程序

1、准备ArduinoISP

我们打开实例文件的ArduinoISP,直接用上传的方式上传给uno板即可。
在这里插入图片描述

2、使用Arduino as ISP烧录设置Arduino板为烧写器

在保持开发板为arduino uno 的同时,选择编程器为Arduino as ISP即可。
在这里插入图片描述

3、烧录及错误

如果你的元器件和线都么有接错的话,应是很顺利就可以烧录完毕,但也许你会遇到下面的错误。
在这里插入图片描述
svrdude: Tiken! Inyalid device signature.
如果你的上传时总是上面的错误,那很可能是你使用的晶振的电容数值不对,换掉它就可以啦,我们这里的电容用15-25pf都可以,数量级对了一般都是可以正常起震的,也就是可以正常下载,当然我这里还是强烈推荐能够找到20pf的就用20pf,或者22pf,这两种比较容易找到。
在这里插入图片描述
如果你看到了这个提示,说明你真的已经烧录成功了,不信,你可以把你的芯片放到原来的uno板上测试一番。当然,这要求你烧录的是直插式的Atmega328,你的uno板子也是直插式的(相比贴片式,网上买这样的板子稍微贵一些)。

4、为新烧录328p下载测试程序

上面的方法直接验证我们新烧写的328P是否成功,无非就是利用原有板子的电路,直接下载一个测试程序,比如blink程序,看看13号脚的灯闪不闪。其实,我们还有一种方法验证,那就是通过我们前面制作成为arduinoISP的uno板(将它视作编程器)直接通过“使用编程器上传”来给我们的新328P上传验证测试程序blink。
上传成功后,给新烧好的芯片下载程序,那就用它了–使用编程器上传,其他的步骤和普通的UNO板子没有差别。
在这里插入图片描述

5、效果

效果这里不便展示,除非拍个视频,无非如果验证成功的效果是blink闪烁的13号灯。这里就不展示了。
前面的方法是最典型的烧录方法,其实我们还有两种方法,后面我们介绍两种新方法。

三、另一种烧录方法

1、准备好编程器文件及上传

电路和前面的一样,关键是烧写器的准备有不同,我们必须到GitHub上下载一个项目,利用这个项目来使我们的UNO板编程烧写器。arduino_sketches项目下载
把整个项目下下来,解压或直接打开Atmega_board_Programmer.ino,也可以成功的将我们的uno板变成一个编程器。
在这里插入图片描述
将上述的Atmega_board_Programmer的代码编译后上传到uno板,即可。程序烧写完成后,设置好选项
在这里插入图片描述

我们打开串口监视器,如下图:
在这里插入图片描述
如果,你遇到上图所示的错误,说明你的接线错了,说明reset和uno的pin10没有连接好。连接好线后,我们继续:
在这里插入图片描述
如果你看到了上述画面那就说明你成功了,只要你的设置是对的,一般都会成功,当然,偶尔错了按一下uno板上的reset键,再执行一次就成功了。

2、上传测试程序

这时,我们拆除reset连接到uno板10脚的线,采用下面的设置,就可以下载程序了。
在这里插入图片描述
注意,这里也需要短接reset和短接一下,类似DRT的作用。

四、直接用USB转TTL上传程序

这里说的上传程序,特指我们已经烧好BootLoader的328P。我们不可能每次都用一个老的UNO板来上传程序,看起来不太优雅而且不方便,毕竟要连接这么多的线和器件。这里我们还是可以直接使用USB转TTL来上传的。
错误来了:
avrdude: stk500_recv(): programmer is not responding
在这里插入图片描述
如果你的USB转TTL上有DTR,那可以恭喜你,你这个东东很高级,烧录时就不需要短接Reset和GND了。不过需要注意,我们最好在DTR和Reset脚之间接一个104的电容。
市面上出售的CH340等模块均未引出DTR或RTS引脚(当然,有几个型号的ch340是没有DTR引脚的,比如ch340N,ch340E),所以均需要手动复位,然后arduino给328P的复位时间极短。
在这里插入图片描述
那如果TTL模块没有DTR引脚要怎么烧录呢?那就和我的一样了。我的就没有DTR引脚,这样的话就需要你在IDE开始上传的一瞬间(差不多就行)短接Reset和GND即可上传成功。(有人说有时也不需要短接,或许那得看你人设吧)

五、制作自己的烧写器

关于下载器,其实自己做一个是非常必要的。用一个ATTiny85外加一个ch340制作一个也是一个不错的选择。这个我们放在下一篇博文介绍。
在这里插入图片描述
码字不易,转载请注明出处:https://haigear.blog.csdn.net/article/details/129203322

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/384231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无代码开发浅谈

前 言互联网共享软件工厂KAPT无代码开发平台,提供了可视化编程方法,经过拖拽组件,就像做ppt一样,快速的就能搭建一个软件应用,更高效的构建业务应用程序。以前开发软件大多只能编写代码完成,所以有软件开发…

Mit6.S081-实验1-Xv6 and Unix utilities-pingpong问题

Mit6.S081-实验1-Xv6 and Unix utilities-pingpong问题在进行pingpong实验的时候遇到了许多问题在这里记录一下。 1.输出乱序问题 出现这个问题主要是因为没有弄懂wait(0)的作用, wait(0)暂时停止目前进程的执行,直到信号来到或子进程结束,…

如何让自动化测试框架更自动化?

一、引言 ​对于大厂的同学来说,接口自动化是个老生常谈的话题了,毕竟每年的MTSC大会议题都已经能佐证了,不是大数据测试,就是AI测试等等(越来越高大上了)。不可否认这些专项的方向是质量智能化发展的方向…

csgo搬砖项目,真的能月入6k?

01 相信很多粉丝都知道steam这个平台,steam是一个游戏平台,这里面的游戏都是要通过去充值购买才能去玩,有的是买游戏的账号,有的是买这个游戏的使用权,买了之后安装到手机上或者电脑上我们才能去畅玩游戏,…

【人工智能 Open AI 】我们程序员真的要下岗了- 全能写Go / C / Java / C++ / Python / JS 人工智能机器人

文章目录[toc]人工智能 AI Code 写代码测试用golang实现冒泡排序用golang实现计算环比函数goroutine and channel用golang实现二叉树遍历代码用golang实现线程安全的HashMap操作代码using C programming language write a tiny Operation Systemuse C language write a tiny co…

【9】SCI易中期刊推荐——工程技术-计算机:软件工程(中科院4区)

🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…

电脑C盘满了,怎么清理c盘空间?

电脑的C盘是系统盘,存储着操作系统和软件等关键文件,因此当C盘空间不足时,电脑的性能和稳定性都会受到影响。 真实案例:c盘空间莫名其妙变小? “C盘快满了不敢乱删,请问该如何清理?” “求大佬…

八股文(一)

一、箭头函数和普通函数有什么区别 (1)箭头函数比普通函数更加简洁 (2)箭头函数没有自己的this 箭头函数不同于传统JavaScript中的函数,箭头函数并没有属于⾃⼰的this,它所谓的this是捕获其所在上下⽂的 this 值,作为⾃⼰的 this 值&#…

希赛PMP模拟题2022(第9套)

希赛PMP模拟题2022(第9套) 22 需求和范围 区别 21 什么阶段? 在开发过程中不断衡量 价值 和优先级关系排序20 产品路线图 回顾 团队沟通方式 无法面对面沟通时候 其他人参与 了解项目 需求发布计划 风险 排序发表计划 vs 评审会议 老母鸡 是…

ESP-C3入门14. 实现基本的web server

ESP-C3入门14. 实现基本的web server一、ESP32 IDF创建WEB SERVER的流程1. 配置web服务器2. 注册 URI处理器3. 实现 URI处理器函数4. 处理HTTP请求5. 处理web socket连接6. 注册 URI 处理函数7. 启动HTTP服务器8. 发送响应9. 关闭 http 服务二、本要主要使用API的说明1. httpd_…

编码器的作用和功能有哪些

编码器的作用和功能有哪些 最近很多咨询编码器的作用的,小编结合一下线上和线下的资料,总结了一下,供大家参考。 要说编码器,它的作用很多,主要是用来测量机械运动的速度、位置、角度、距离或计数的,编码器…

SkyWalking使用案例-2

文章目录SkyWalking实现基于容器环境Dubbo微服务链路跟踪部署Dubbo Provider构建Dubbo Provider镜像运行dubbo-provider部署Dubbo Consumer构建Dubbo Consumer镜像运行dubbo-consumer验证SkyWalking收集python项目数据Skywalking告警Skywalking指标Skywalking告警规则SkyWalkin…

62. 不同路径

62. 不同路径 一个机器人位于一个 m∗nm * nm∗n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路…

virtualbox7虚拟机中安装苹果macOS big sur系统详细教程

第1步,在 Windows 10/11 PC 上启用虚拟化。 现在的电脑一般都默认开启虚拟化技术了。 如果你遇到一些报错,比如收到错误消息“无法在虚拟机上打开会话”,可以查看 如果没有遇到问题,可以直接进入到第二步。 第2步,在…

【Spark分布式内存计算框架——Spark Streaming】12. 偏移量管理(上)代码重构与Checkpoint 恢复

6. 偏移量管理 针对前面实现【百度热搜排行榜Top10】实时状态统计应用来说,当应用关闭以后,再次启动(Restart)执行,并没有继续从上次消费偏移量读取数据和获取以前状态信息,而是从最新偏移量(L…

JVM 不同垃圾回收器的日志格式分析

1、GC日志采集 在服务器上我们需要配置一些参数才能采集到历史的GC日志信息,这些参数通常在项目启动的时候就需要指定, 如果你项目是jar包,可以按照下面方式指定这些GC参数即可。 下面这些参数意思是把GC日志记录到/opt/app/abc-user/ard-…

蓝桥杯备赛——Echarts学习

文章目录前言学习 ECharts 的方法快速上手基础知识option 配置选项可选配置title 标题组件tooltip 提示框组件axisPointer 坐标轴指示器legend 图例组件toolbox 工具栏坐标轴xAxis和yAxisseries ([ ]用数组表示,数组里是一个个数据对象)饼状图散点图交互…

盘点代码情诗集合❤,程序员表白的巅峰之作,特此奉献

程序员怎么表白?写代码啊!每到情人节,程序员们就纷纷出动,各种别出心裁的表白代码倾囊相送。我曾被大批表白代码砸晕,沉浸在“虚拟的”幸福感中不能自拔。我在众多代码中精选了以下几十条,每一条都是文学素…

Python中的遍历字典的键和值

一、Python的字典在项目的开发过程中,如果遇到有映射关系的内容可以考虑使用Python中的字典进行存储数据,字典中冒号前的数据称为【键】、冒号后的数据称为【值】。二、Python字典的用法2.1、Python的定义#Python字典的定义 字典名称{键1:值1,键2:值2,键…

JavaScript Date 日期对象

文章目录JavaScript Date 日期对象Date 对象Date 对象属性Date 对象方法创建日期设置日期两个日期比较JavaScript Date 日期对象 日期对象用于处理日期和时间。 Date 对象 Date 对象用于处理日期与实际。 创建 Date 对象: new Date(). 以上四种方法同样可以创建…