利用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 的软件开发过程。

关键词 ArduinoISPATmega8

  为什么希望使用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 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

▲ 图1-1 在附加开发版管理网址中增加MiniCore

  • 选择工具 菜单中 开发板下的开发版管理器菜单命令。
  • 在开发板管理对话框中,搜索 MiniCore ,然后安装最新版本。

▲ 图1-2 安装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程序

▲ 图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 开发板

▲ 图1-3 选择MEGA8 开发板

  下图显示了下载ATmega8 Bootloader过程。

▲ 图1-4 下载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 之间的连接关系

▲ 图2-1 设计从UART-TTL模块到ISP -PIN5 之间的连接关系

【表1 转接连接线的功能定义】

端口PIN1PIN2PIN3PIN4PIN5
ISP端口VCCGNDRXDTXDRST
FT232端口VCCGNDTXDRXDDTR

  为了实现DTR与RST之间是通过0.1uF的电容连接,因此在连接线的RST与DTR中间串联了一个0.1uF的瓷片电容。

▲ 图2-2 接口中设置104uF

▲ 图2-2 接口中设置104uF

2、测试下载程序

  利用Arduino IDE 编写一个小程序,可以完成对于ATmega8 的下载运行。

▲ 图2-3 对于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 的软件开发过程。


■ 相关文献链接:

● 相关图表链接:

以上是关于利用Arduino IDE对ATMEGA8等单片机编程的主要内容,如果未能解决你的问题,请参考以下文章

基于ATMEGA8的Arduino Nano(UNO)开发板

使用Arduino IDE 开发STM32应用程序

利用AVR单片机 专用下载 USBtinyISP对Arduino UNO下载程序

PlatformIO IDE,VS Code与Arduino

Atmega8独立工作必备电路

“Arduino不适合大学生”这种说法对不对?为啥?