使用Arduino Uno作为烧录器为Atmega328PB芯片直接烧录程序

摘要

通过将一块Arduino Uno设置成ISP模式作为烧录器,从而实现为Arduino Pro Mini空白的ATMega328PB芯片直接烧录程序。

烧录方式

查阅相关资料,常见的烧写方式有4种:

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

我对第4种烧录方式进行了实验,使用了Arduino IDE和Ardudess这2种软件,均可实现程序正常运行。

操作过程

准备工作

需要用到的东西包括一块Arduino uno开发板、一根USB数据线、目标开发板、杜邦线若干,你的电脑要提前安装好Arduino IDE和Ardudess这2款软件。

将Arduino uno设置为烧录器

我使用的是第4种烧录方式,即将Arduino uno作为烧录器。首先设置好开发板参数,当然每台电脑端口都不一样,具体看你连接后电脑提示的是哪了个端口,我的电脑如图:在这里插入图片描述
打开官方示例程序Arduino ISP,将程序上传至开发板,如图:
在这里插入图片描述
在这里插入图片描述

烧录器和目标板电路连接

主要采用SPI连接方式,接线原理如下:

Uno数字接口序号目标板
VCCVCC
GNDGND
SS10RESET
MOSI11MOSI
MISO12MISO
SCK13SCK

因为烧录器是Arduino uno开发板,所以大家知道引脚序号,目标板型号太多,需要具体型号具体确定引脚序号,我使用的是Arduino Pro Mini开发板,其使用的MCU是Atmega328PB,与Arduino uno使用的Atmega328P没有太大的区别,引脚序号可以延用。
网上别人的连接图1是这样的:
在这里插入图片描述

我的连接图是这样的:
在这里插入图片描述
^_^
开玩笑,实际上是这样的2
在这里插入图片描述

添加第三方库

请参阅博主唐唐爸爸为ATMega328pb芯片烧录Arduino bootloader

设置参数

我买的Arduino Pro Mini板是3.3V8MHz的版本,采用Atmega328PB芯片,实物如图:
在这里插入图片描述
相应的设置参数如图:
在这里插入图片描述
解释一下,COM3端口是刚才Arduino Uno的端口,因为目标板是通过SPI方式与Arduino Uno板连接的,实际上与电脑连接的就只有Arduino Uno板。波特率随便选。BOD(Brown out detection)因为使用的是3.3V工作电压,所以设置成2.7V低电压保护。Bootloader可以选择不使用,这样每次都需要烧写板进行程序烧写,但我选的是使用UART0口,主要还是考虑后续可以直接用Arduino Pro Mini板连接电脑下载程序。晶振使用的是3.3V外源8MHz。Variant应设置成328PB,这很重要,必须要根板子上的芯片型号一致,否则后续可能程序烧写成功,但就是会出现各种各样意外的错误。

程序烧写

关于这一部分,我使用了2种方法。

使用Arduino IDE进行烧写

在这里插入图片描述

使用Ardudess进行烧写

首先导出程序的Hex文件:
在这里插入图片描述
而后使用Ardudess加载并点击Go按钮写入:
在这里插入图片描述

以上部分,虽然看似2种方法,归根结底还属于1种,无论是Arduino IDE,还是Ardudess,它们的底层都是调用的Avrdude程序。
在这里插入图片描述
但是还是建议使用Arduino IDE进行烧写,因为空白的芯片在正式烧程序前要先烧录熔丝位和加密位。
在这里插入图片描述

成果展示

在这里插入图片描述


  1. 为ATMega328pb芯片烧录Arduino bootloader ↩︎

  2. Fritzing连接图 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值