利用Arduino IDE对ATMEGA8等单片机编程
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Arduino IDE对ATMEGA8等单片机编程相关的知识,希望对你有一定的参考价值。
简 介: 根据 Programming ATmega8 Using Arduino IDE - Arduino Project Hub 所描述的方法,测试了在Arduino IDE中增加对于ATmega8的支持软件包,并利用Arduino Nano作为ISP模块对于ATmega8下载Bootloader。最后利用了一块USB-TTL UART模块测试了Arduino IDE对于ATmega8 的软件开发过程。
关键词
: Arduino,ISP,ATmega8
为什么希望使用Arduino IDE 对于ATMEGA8进行编程?也许下面三个理由中都可能打动你:
- Using a cheaper AVR microcontroller
- Require an AVR microcontroller with more or even less pins than ATmega328
- You have all kinds of AVR except ATmega328 😄
§01 安装Arduino MEGA8 Bootloader
在 基于ATMEGA8的Arduino Nano(UNO)开发板 对于直接使用Arduino IDE对于ATMEGA8进行编程测试,发现出现了问题:
- 无法使用Arduino对于ATMEGA8进行下载Bootloader;
- 生成的HEX文件通过其他Bootloader烧录到ATMEGA无法运行;
根据 Programming ATmega8 Using Arduino IDE - Arduino Project Hub 中的介绍,给出了在Arduino IDE中对于 ATMEGA8 编程的具体设置步骤。
▲ 图1 ATmega8 DIP-28 管教分布图
步骤1:安装ATmega8支持软件包
在MCUDude的Github上,给出了可以支持的多种ATMEGA MCU的软件包,它们包括:
- ATmega8
- ATmega88
- ATmega168
- ATmega328
安装支持软件包的具体步骤:
- 在文件菜单中,选择首选项命令;
- 在弹出的对话框中附加开发板管理网址中,输入下面的 URL:
https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
▲ 图1-1 在附加开发版管理网址中增加MiniCore
- 选择工具 菜单中 开发板下的开发版管理器菜单命令。
- 在开发板管理对话框中,搜索
MiniCore
,然后安装最新版本。
▲ 图1-2 安装MiniCore开发板
2、下载ATMega Bootloader
在Programming ATmega8 Using Arduino IDE - Arduino Project Hub的第二部分叙述了利用Arduino UNO对于ATmega8进行编程的过程。在 利用Arduino Nano 对于另外的Arduino控制板下载Bootloader 描述了利用Arduino Nano对别的ATMega MCU 下载Bootloader的过程。下面就利用在前面制作Arduino Nano作为ISP对于ATmega8下载对应的Bootloader。
(1)将Arduino Nano下载 ISP程序
将Arduino中的示例程序Arduino ISP
下载到Arduino Nano的开发板中。这个Nano模块可以用作AVR-ISP对于其它开发板下载Bootloader了。
▲ 图1-2 示例程序中的ISP程序
按照 通过CH340G驱动的Nano ATMEAG328P驱动板初步测试 中的方法,将上述Arduino ISP 程序烧录到Arduino Nano开发板。此时该开发板变成了一个AVRISP烧录器。
(2)连接下载ATmega8
将Arduino Nano中的D10,MISO,MOSI,SCK分别连接到ATmega8的 RESET,MISO,MOSI, SCK上。
(3)下载ATmega8 Bootloader
- 首先通过工具中的开发板选择MiniCore中的ATmega8.
- 然后通过工具中的编程器,选择Arduino as ISP(MiniCore)
- 最后通过工具中的烧录引导程序,对ATmega8进行下载烧录程序。
▲ 图1-3 选择MEGA8 开发板
下图显示了下载ATmega8 Bootloader过程。
▲ 图1-4 下载ATmega8 Bootloader过程
§02 测试对ATmega8编程
利用在 利用Arduino Nano 对于另外的Arduino控制板下载Bootloader 中对于Arduino UNO(Nano)编程的接口来对于ATmega8进行编程。
1、下载接口
下面是利用一块UART-TTL转换模块,来形成对ATmega8进行下载的电路。
▲ 图2-1 设计从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-2 接口中设置104uF
2、测试下载程序
利用Arduino IDE 编写一个小程序,可以完成对于ATmega8 的下载运行。
▲ 图2-3 对于ATmega8进行下载之后程序运行情况
测试程序代码:
/*
**==============================================================================
** TEST1.C: -- by Dr. ZhuoQing, 2021-05-30
**
**==============================================================================
*/
#define ON(pin) digitalWrite(pin, HIGH)
#define OFF(pin) digitalWrite(pin, LOW)
#define VAL(pin) digitalRead(pin)
#define IN(pin) pinMode(pin, INPUT)
#define INP(pin) pinMode(pin, INPUT_PULLUP)
#define OUT(pin) pinMode(pin, OUTPUT)
const int led = 10;
//------------------------------------------------------------------------------
void setup(void) {
OUT(led);
}
//------------------------------------------------------------------------------
void loop(void) {
ON(led);
delay(100);
OFF(led);
delay(100);
}
//==============================================================================
// END OF FILE : TEST1.C
//------------------------------------------------------------------------------
※ 讨论总结 ※
根据 Programming ATmega8 Using Arduino IDE - Arduino Project Hub 所描述的方法,测试了在Arduino IDE中增加对于ATmega8的支持软件包,并利用Arduino Nano作为ISP模块对于ATmega8下载Bootloader。最后利用了一块USB-TTL UART模块测试了Arduino IDE对于ATmega8 的软件开发过程。
■ 相关文献链接:
- Programming ATmega8 Using Arduino IDE - Arduino Project Hub
- 基于ATMEGA8的Arduino Nano(UNO)开发板
- 利用Arduino Nano 对于另外的Arduino控制板下载Bootloader
- 通过CH340G驱动的Nano ATMEAG328P驱动板初步测试
● 相关图表链接:
以上是关于利用Arduino IDE对ATMEGA8等单片机编程的主要内容,如果未能解决你的问题,请参考以下文章
基于ATMEGA8的Arduino Nano(UNO)开发板
利用AVR单片机 专用下载 USBtinyISP对Arduino UNO下载程序