利用Arduino IDE对ATMEGA8等单片机编程

本文档介绍了如何在ArduinoIDE中添加ATmega8的支持,利用ArduinoNano作为ISP下载Bootloader,并通过USB-TTLUART模块进行编程。详细步骤包括安装MiniCore软件包,配置开发板,下载Bootloader,以及建立UART-TTL转接电路进行程序下载和验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简 介: 根据 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 的软件开发过程。


■ 相关文献链接:

● 相关图表链接:

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值