为ATMega328pb芯片烧录Arduino bootloader

  • 摘要
  • 烧录Bootloader的作用
  • 烧录方式
  • 操作过程
    • 准备工作
    • 将arduino切换至ISP模式
    • 接线
    • 添加三方库
    • 设置参数
    • 烧录引导程序
    • 烧录正式程序
  • 需要注意的几个事项
  • 参考文献

摘要

通过将一块Arduino Uno设置成ISP模式,从而实现为空白的ATMega328Pb芯片烧录bootlaoder。烧录了bootlaoder的芯片可以用usb-ttl转换器进行简单快捷的程序下载。


烧录Bootloader的作用

新买的芯片是空白的,需要通过专门的烧录器进行烧录,麻烦且不稳定。通过Bootloader可以让自己设计的程序下载像市售模块一样简单,通过一根串口线即可搞定。

一般情况下微处理器写入程序时都通过专门的编程器进行烧写,但是也可以通过在MCU中预先写入一些程序来实现某些基本功能,这些预先写入的程序代码就是bootloader。这样每次复位时MCU就不是从程序存储器起始位置开始读取命令,而是先加载bootloader,实现一些设置和功能,再开始执行代码。

arduino通过预先写入的bootloader,每次通过串口给arduino板下载程序时,首先会令arduino板复位一次,这样就先进入了bootloader,接着向arduino板发送特定的下载指令,bootloader识别到这些指令后就会紧接着开始接收剩下的新的程序代码写入到内部flash中,如果没有进行下载,bootloader没有识别到下载指令,那么它就会跳转到程序区正常工作。


烧录方式

查阅资料,常见的烧写方式有三种

  1. 使用USBtinyISP编程器烧录
  2. AVR USB编程器烧录
  3. 使用Arduino 作为ISP烧录

这里仅介绍最简单直观的Arduino 作为ISP烧录方式


操作过程

准备工作

需要用到的东西有:

  • 一块arduino开发板(本文使用uno)
  • USB type B线缆(给uno)
  • 自己画的板子
  • usb-ttl转接线
  • 杜邦线若干

将arduino切换至ISP模式

将红框中例程烧录至Arduino UNO

接线

一共五根线: VCC GND MOSI MISO SCK 注意线序(这里的图片主要说明接线顺序,你得找到自己新板子对应的位置)

添加三方库

对328p的bootloader烧录可以直接百度到教程,因为这是和uno同款芯片只是封装不同
对于328PB,参考github中minicore教程:

  1. 安装新的开发板(对应328pb芯片的开发板)

*请使用 Arduino IDE 1.6.4 或以上版本。
打开 “文件 > 首选项” 菜单,在 “附加开发板管理器网址” 中添加以下URL

https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json

打开 “工具 > 开发板 > 开发板管理器” 窗口,在列表中找到 “MiniCore”, 选中并安装

稍等片刻,下载安装完成后即可关闭“开发板管理”窗口

Note: If you plan to use the *PB series, you need the latest version of the Arduino toolchain. This toolchain is available through IDE 1.8.6 or newer. Here’s how you install/enable the toolchain:

Open the Tools > Board > Boards Manager… menu item.

Wait for the platform indexes to finish downloading.

The top is named Arduino AVR boards. Click on this item.

Make sure the latest version is installed and selected

Close the Boards Manager window.

设置参数

根据实际情况设置参数,本文中使用16MHz晶振,对应输入电压为5V

烧录引导程序

点击“烧录引导程序”,一切顺利的话几秒钟就全部完成,arduino IDE显示烧录引导程序完成,uno板子上L指示灯闪烁

烧录正式程序

拆除之前接线,按照上图中“Bootloader:“Yes,UART0””将328PB的VCC、GND、UART0tx\rx连接到usb-ttl,注意本次选用的16MHz晶振要用5V,修改端口至ttl对应串口,编译下载即可。

注意ide提示上传中时需要手动按reset


需要注意的几个事项

  • 晶振的选择与电压有关,16Mhz需要5V,8MHz需要3.3V,板子上空间实在不足可以用内部晶振不过不推荐
  • 板子在设计时要注意留好烧录管脚
  • 仔细阅读github文档,除了没提要先把arduino烧成isp模式外非常详细
  • 刷好bootloader后第一次烧程序可能不需要按reset,后面的都需要
  • 有在usb-ttl芯片RST管脚和329RESET管脚见连一个100nf电容实现自动reset的记载未经核实仅供参考

参考文献

基本上看前三个就够

GitHub - MCUdude/MiniCore: Arduino hardware package for ATmega8, ATmega48, ATmega88, ATmega168, ATmega328 and ATmega328PB

https://blog.csdn.net/feiduoxuetang/article/details/122264992

https://www.jianshu.com/p/2f274f8b3dab

https://www.cyqsd.cn/8770.html、

https://www.basemu.com/comparison-of-three-methods-of-bootloader-for-atmega328p.html

https://blog.csdn.net/qq_42731705/article/details/115741187 作者:苏格兰曲协


本文转载自:https://www.bilibili.com/read/cv20992270

为ATMega328pb芯片烧录Arduino bootloader相关推荐

  1. 非标准USBasp下载线烧录Arduino BootLoader的参数设置

    本文仅适用于BootLoader损坏且买到国产"免驱USBasp下载线"导致Arduino IDE无法识别从而不能烧写的情况.是一种略显非主流的操作方式. 因为Arduino的ID ...

  2. [Arduino]烧写Arduino BootLoader的几种方法

    [Arduino]烧写Arduino BootLoader的几种方法 身为Arduino 电子工程师,很多时候都会涉及到自制各种功能的Arduino 电路板(亦或者说是功能扩展板),但是从网上或者其他 ...

  3. Mega2560(Arduino)Bootloader烧录指南

    AVR系列单片机ATmega2560(Arduino)Bootloader烧录指南 Arduino系列单片机的开发与应用可以说是相当方便,Arduino IDE也是相当简洁明了,目前甚至有些STM32 ...

  4. Arduino BootLoader 烧录总结

    经实验,Arduino nano板可以烧录Arduino uno的BootLoader.上传blink 点led程序,成功点亮. 需要2块arduino板子,型号可以不同,接线参考https://bl ...

  5. 使用Arduino烧写 Arduino BootLoader

    文章目录 1.连接方式 2.烧写ArduinoISP固件 3.BootLoader烧写 1.连接方式 作为烧写器的Arduino UNO 板 待烧写单片机芯片/电路板 D10 RESET D11 D1 ...

  6. USBISP/USBasp编程器给Atmega32U4下载Arduino bootloader引导程序

    用USBISP/USBasp编程器给ATmega32U4下载Arduino bootloader引导程序 ATmega32U4 bootloader引导程序是什么 引导程序下载接口与连接 配置熔丝位与 ...

  7. 基于USBASP给AVR单片机烧写Arduino bootloader和application固件

    基于USBASP给AVR单片机烧写Arduino bootloader和application固件 Arduino 微控制器的数字端口和模拟端口与 ATMEGA 328 芯片引脚的对应关系图如下.其中 ...

  8. STM32芯片烧录的三种方式介绍,串口、STM32 ST-LINK Utility以及STM32CubeProgrammer

    STM32芯片烧录的三种方式介绍,串口.STM32 ST-LINK Utility以及STM32CubeProgrammer 1 概述 1.1资源概述 1.2 STM32串口烧录方式 2.KEIL软件 ...

  9. 使用手机软件Bluino Loader通过蓝牙编程、烧录Arduino

    前言 一些小伙伴或许因为没有电脑又想学习Arduino而犯愁,但是在这片文章中我将会带领大家来完美解决这个问题,我们将使用手机软件Bluino Loader通过蓝牙编程.烧录Arduino 材料 硬件 ...

最新文章

  1. js空对象undefined测试
  2. 【 MATLAB 】模拟信号采样及离散时间傅里叶变换(DTFT)案例分析
  3. bootstrap34-带有导航栏的字体图标
  4. logstic 回归文章链接
  5. 【BZOJ2553】禁忌,AC自动机+期望DP+矩乘
  6. python 图片相似度算法比较_python 比较2张图片的相似度的方法示例
  7. 编写python程序、找出100_100+ Python挑战性编程练习(1)
  8. 指纹识别算法的matlab实现
  9. Canal.deployer 启动报错说CHARACTER SET 'utf8' COLLATE 'utf8_unico', expect null,rkdown编辑器
  10. VMware虚拟机优化,提高虚拟机运行速度的方法?
  11. idear——文件的刷新,清理和打包
  12. linux 下oracle11g卸载干净,linux系统Oracle11g R2完整卸载教程
  13. Go 并发 | 数据竞争及竞争条件
  14. 关闭linux防火墙永久
  15. free ***是什么
  16. 高盛:Juniper市场表现将超过Cisco、Arista
  17. 国内做数据可视化大屏哪家强?这5款产品你必须了解
  18. BUAA(2021春)小型图书管理系统
  19. 有关微型计算机系统总线描述正确的是(),【大学信息技术考试试题(附答案)】第一至三章练习...
  20. Java通过ssh连接服务器

热门文章

  1. 中国信息化系统集成行业协会:计算机系统集成行业还有发展空间么?
  2. 环旭拟约4.5亿美元收购欧洲第二大EMS公司
  3. 静电等级管理中的HBM CDM MM
  4. Gephi实战,从零开始
  5. 如何用 Excel 做出专业的甘特图?详细来了!
  6. vb6 access数据库死机
  7. 计算机 vfp表间关系有,VFP表间连接和VFP表的更新操作
  8. 如何在CSND上传本地图片
  9. 微信H5支付功能小结
  10. 【七-2】终身学习 Life Long Learning - catasrophic forgetting