利用Arduino Nano 对于另外的Arduino控制板下载Bootloader
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Arduino Nano 对于另外的Arduino控制板下载Bootloader相关的知识,希望对你有一定的参考价值。
简 介: 测试了利用Nano板对于基于MEGA328的Arduino的Bootloader下载,在此基础之上,利用了FT232TL的USB-TTL UART模块对测试MEGA328下载执行程序。
关键词
: Arduino,Nano,ISP
§01 Arduino 下载Bootloader
根据 如何用Arduino Nano给另外一个Arduino Nano烧录bootloader 中介绍,利用Arduino Nano小板作为AVRISP 对于其它电路板下载对应的Bootloader。
测试所使用的Arduino的IDE按照 Arduino软件开发环境搭建 下载安装的1.8.15版本的IDE。
▲ 图1-1 Arduino IDE的版本
1、下载步骤
(1)第一步:下载ISP程序
将Arduino中的示例程序Arduino ISP
下载到Arduino Nano的开发板中。这个Nano模块可以用作AVR-ISP对于其它开发板下载Bootloader了。
▲ 图1-2 示例程序中的ISP程序
按照 通过CH340G驱动的Nano ATMEAG328P驱动板初步测试 中的方法,将上述Arduino ISP 程序烧录到Arduino Nano开发板。此时该开发板变成了一个AVRISP烧录器。
(2)连接待烧录Nano
根据程序中给出的信息。Nano使用PIN10作为RESET控制端口。因此将ICSP端口的6条引线中,除了RESET之外的其它5条引线分别与待下载程序的开发板ICSP相连。 将PIN10与待下载板的ICSP的RESET引线相连。
// Pin 10 is used to reset the target microcontroller.
//
// By default, the hardware SPI pins MISO, MOSI and SCK are used to communicate
// with the target. On all Arduinos, these pins can be found
// on the ICSP/SPI header:
//
// MISO °. . 5V (!) Avoid this pin on Due, Zero...
// SCK . . MOSI
// . . GND
下图显示了下载引线的连接关系。
▲ 图1-3 使用Arduino Nano为ISP对Arduino下载Bootloader硬件连接
下图显示了利用Arduino Nano对另外Nano下载Bootloader实际连接关系。
▲ 图1-4 使用Arduino Nano对另外Nano下载Bootloader实际连接关系
(3)下载Bootloader
首先选择编程器为:Arduino as ISP
。然后使用 烧录引导程序
命令完成Bootloader程序下载。
▲ 图1-5 利用Arduino IDE 烧录引导程序
在下载之前,需要在工具
中的开发板
选择希望下载之后电路板对应的型号。比如选择Arduino Nano
那么下载之后,则之能使用Arduino Nano完成将来程序下载。 选择 Arduino UNO
则可以利用Arduino UNO完成后面的开发下载。
2、下载结果测试
下载完毕之后,使用Arduino
IDE
对于Nano
重新测试,可以看到它可以完成正常的Bootloader
下载。
现在剩下一个问题:下载Bootloader,是否适合所有的开发板?比如Nano,Uno?
§02 制作MEGA328测试板
下面利用 一分钟制版法 制作MEGA328测试小板,测试上述下载Bootloader过程以及通过 USB转TTL的FT232模块 下载Arduino执行程序。
在 The ATMEGA328P Subsystem Official Schematic 给出了官方的ATMEGA328P子系统电路图设计电路。
▲ Arduino 子系统的参考电路图
1、设计电路1
根据 通过CH340G驱动的Nano ATMEAG328P驱动板初步测试 中给出的Nano原理图,设计测试MEGA328的原理图,如下图所示:
▲ 图2-1 测试MEGA328的原理图
(1)端口定义
- ISP端口的定义为:
</span
PIN1 | PIN2 | PIN3 | PIN4 | PIN5 |
---|---|---|---|---|
MOSI | MISO | SCK | RST | GND |
- 测试PIO端口定义:
PIN1 | PIN2 | PIN3 | PIN4 | PIN5 | PIN6 | PIN7 | PIN8 | PIN9 | PIN10 | PIN11 | PIN12 |
---|---|---|---|---|---|---|---|---|---|---|---|
+5V | GND | RXD | TXD | RST | D2 | D3 | D4 | D5 | D6 | A0 | A1 |
(2)焊接测试电路板
使用快速做板,制作了测试MEGA328 PCB板,经过焊接之后形成测试电路板。
▲ 图2-2 焊接完成的测试MEGA328
2、下载Bootloader
(1)Nano与MEGA328ISP连接关系
根据前面测试ISP
连接关系以及【表2-1
】中对于测试电路板ISP
端口的定义,确定Nano
与测试MEGA328
连接关系。
▲ 图2-3 连接Nano-ISP 到测试MEGA328小板
下表给出了Nano-ICSP与测试MEGA328的ISP端口的关系。
端口 | PIN1 | PIN2 | PIN3 | PIN4 | PIN5 |
---|---|---|---|---|---|
MEGA | MOSI | MISO | SCK | RST | GND |
NANO | PIN4 | PIN1 | PIN3 | D10 | PIN6 |
(2)搭建下载电路
在面包板上搭建下载测试电路。
▲ 图2-4 在面包板上连接Nano-ICSP与MEGA328的ISP
(3)下载Bootloader
利用Arduino IDE中的工具烧录引导程序下载Bootloader。
在第一次下载的时候,发现初夏如下错误:
▲ 图2-5 下载出现错误
经过检查,是测试版上的RESET
引线中间由于快速制版过程中腐蚀过度,引起断裂。使用短接线将RST
线联通之后,便可以烧录成功了。这也说明,下载BOOTLOADER
的接口中必须包括有RST
引线。
下载Bootloader
之后,MEGA328
的工作电流便从原来的3.8mA
上升到12.2mA
。利用示波器测量晶体两端,可以测试到晶体16MHz
的震荡波形。
▲ 图2-6 MEGA328的OSC1的波形
3、测试下载程序
测试下载所使用的USB-UART转接板是从 USB转TTL 支持3.3V 5V FT232RL模块 下载线 mini接口-淘宝网 购买到的,它的外形与接口定义如下:
▲ 图2-7 UAB-TTL UART 转接板管脚功能定义
FT232TL的PIN6的端口定义为:
PIN1 | PIN2 | PIN3 | PIN4 | PIN5 | PIN6 |
---|---|---|---|---|---|
GND | CTS | VCC | TX | RX | DTR |
(1)连接UART模块与MEGA328
将UART-TTL模块的RX,TX分别与MEGA328的TX,RX相连。利用Arduino IDE下载程序。
-
Arduino IDE 下载条件:
-
开发板
:Arduino Nano
处理器
:ATMega328(Old Bootloader)
▲ 图2-8 面包板上搭建的下载连接线图
(2)下载结果
第一次上载程序是成功的。但是后面上载就不成功了。
将DTR通过一个0.1uF的电容连接到 MEGA328RST上,便可以继续成功上载程序了。为什么需要通过0.1uF连接MEGA328的RST呢?这是因为DTR在静态的时候,始终为底电平,所以它需要通过电容来触发RST。
▲ 图2-9下载程序的动态过程
(3)制作下载线
▲ 图2-10 设计从UART-TTL模块到ISP -PIN5 之间的连接关系
端口 | PIN1 | PIN2 | PIN3 | PIN4 | PIN5 |
---|---|---|---|---|---|
ISP端口 | VCC | GND | RXD | TXD | RST |
FT232端口 | VCC | GND | TXD | RXD | DTR |
为了实现DTR与RST之间是通过0.1uF的电容连接,因此在连接线的RST与DTR中间串联了一个0.1uF的瓷片电容。
▲ 图2-11 接口中设置104uF
根据 Arduino UNO Rev3 设计,可以看到对于ATMEGA328的RESET是有电容C5,上拉电阻RN10,二极管D2。
▲ -2-12 Arduino UNO上的编程接口
※ 测试结论 ※
测试了利用Nano板对于基于MEGA328的Arduino的Bootloader下载,在此基础之上,利用了FT232TL的USB-TTL UART模块对测试MEGA328下载执行程序。
■ 相关文献链接:
- 如何用Arduino Nano给另外一个Arduino Nano烧录bootloader
- Arduino软件开发环境搭建
- 通过CH340G驱动的Nano ATMEAG328P驱动板初步测试
- 一分钟制版法
- USB转TTL的FT232模块
- USB转TTL 支持3.3V 5V FT232RL模块 下载线 mini接口-淘宝网
- Arduino UNO Rev3
○ 相关图表链接:
- 图1-1 Arduino IDE的版本
- 图1-2 示例程序中的ISP程序
- 图1-3 使用Arduino Nano为ISP对Arduino下载Bootloader硬件连接
- 图1-4 使用Arduino Nano对另外Nano下载Bootloader实际连接关系
- 图1-5 利用Arduino IDE 烧录引导程序
- 图2-1 测试MEGA328的原理图
- 表2-1 测试电路板上的ISP端口定义
- 表2-2 测试电路板上PIO端口定义
- 图2-2 焊接完成的测试MEGA328
- 图2-3 连接Nano-ISP 到测试MEGA328小板
- 表2-3 Nano ICSP 与MEGA328的ISP端口连接关系
- 图2-4 在面包板上连接Nano-ICSP与MEGA328的ISP
- 图2-5 下载出现错误
- 图2-6 MEGA328的OSC1的波形
- 图2-7 UAB-TTL UART 转接板管脚功能定义
- 表2-4 FT232TL端口功能定义
- 图2-8 面包板上搭建的下载连接线图
- 图2-9下载程序的动态过程
- 图2-10 设计从UART-TTL模块到ISP -PIN5 之间的连接关系
- 表2-5 转接连接线的功能定义
测试MEGA328的工程文件:AD\\Test\\2021\\ZYK\\Test328Nano.SchDoc ↩︎
以上是关于利用Arduino Nano 对于另外的Arduino控制板下载Bootloader的主要内容,如果未能解决你的问题,请参考以下文章
基于ATMEGA8的Arduino Nano(UNO)开发板