使用 Arduino IDE 编程 ATmega8
组件和用品
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 2 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 12 | |||
![]() |
| × | 4 |
关于这个项目
“我已经为 Arduino UNO 板编写了代码。是否可以将我的草图上传到除 ATmega328 之外的 AVR 微控制器?我认为这是 Arduino 爱好者最常见的问题。这可能有不同的原因,例如:
- 使用更便宜的 AVR 微控制器
- 需要比 ATmega328 引脚更多甚至更少的 AVR 微控制器
- 除了 ATmega328 之外,你有各种各样的 AVR :D
在本教程中,您将学习如何使用 Arduino IDE 对 ATmega8 进行编程。它不仅限于 ATmega8,还可以推广到 MCUDude 的 GitHub 上提供的其他内核。它由两部分组成。在第一部分中,描述了在 ATmega8 上安装 Arduino 引导加载程序。第二部分展示了如何使用 Arduino IDE 和 USB 转 TTL 转换器对 ATmega8 进行编程。
第 1 部分:安装 Arduino Bootloader
在这一部分,我们为 Arduino IDE 添加了对 ATmega8 的支持。然后我们设置面包板并将ATmega8连接到Arduino UNO板。
第一步:使用板管理器为 Arduino IDE 添加 ATmega8 支持
MCUDude 的 GitHub 存储库上提供了不同类型的内核。 MiniCore 用于 ATmega8 微控制器。此内核中支持的微控制器有:
- ATmega8
- ATmega48
- ATmega88
- ATmega168
- ATmega328
按照以下步骤在您的 Arduino IDE 中安装 MiniCore。
- 在文件中 菜单,点击首选项 .
- 现在在附加板管理器 URL , 输入以下网址:
https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
- 转到工具 菜单,然后选择板> 董事会经理
- 在 Boards Manager 窗口中,搜索 MiniCore,然后安装最新版本。
以上步骤以图形方式显示在此处:




ATmega8 引脚如下图所示。

第二步:将 Arduino 编程为 ISP(在系统编程)
要刻录 Arduino 引导加载程序,我们需要将 Arduino UNO 设为 ISP。有一个名为 ArduinoISP 的草图 在 Arduino IDE 的内置示例中。按照以下步骤将您的 Arduino UNO 编程为 ISP。
- 打开文件> 示例> 11.ArduinoISP> ArduinoISP
- 将此草图上传到您的 Arduino UNO。
第三步:烧录Bootloader
- 将 Arduino 连接到 ATmega8,如下所示。
Arduino ----------ATmega8
SCK / 引脚 13 ----------SCK / PB5
MISO / Pin 12 ----------MISO / PB4
MOSI / Pin 11 ----------MOSI / PB3
SSN / Pin 10 ----------重置


- 转到工具> 董事会 并选择 ATmega8 .您还可以在工具中选择您的时钟类型和频率 菜单。
- 在工具中选择程序员类型> 程序员: 作为“Arduino 作为 ISP ”。
- 现在在工具 菜单,点击Burn Bootloader .

如果操作成功,它会显示“Done burn bootloader ”。恭喜!你已经做到了。
第二部分:使用 Arduino IDE 和 USB 转 TTL 转换器对 ATmega8 进行编程
在这里,我们有一个带有 Arduino 引导加载程序的 ATmega8。如您所知,所有 Arduino 板上都有一个 USB 转 TTL 转换器。它充当微控制器和 Arduino IDE 之间的桥梁。我们使用CH340 USB转TTL转换模块将草图上传到ATmega8。
第四步:设置连接
如下图连接组件。
CH340 ---------- ATmega8
VCC ---------- VCC
地线 ---------- 地线
Tx ---------- RX / PD0
Rx ---------- Tx / PD1


第五步:将草图上传到 ATmega8
按住复位按钮。现在点击 IDE 中的上传。按住按钮,直到 IDE 状态栏上显示“正在上传...”。上传过程开始后松开按钮。这是因为在上传过程开始时,微控制器应该处于 RESET 状态。
注意:如果过程不成功,请在微控制器的 Vcc 和 GND 尽可能靠近的地方放置一个 100nF 的电容。
注意:一些 USB 到 TTL 转换器模块有一个名为 DTR 的引脚。如果你的也有这个引脚,你可以把它连接到 ATmega8 的 RESET 引脚,不需要使用按钮手动复位微控制器。
示意图


制造工艺