基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

简 介: 测试是否可以应用Arduino对其进行编程开发。实验证明,利用Arduino的 IDE无法对于MEGA进行ISP下载Bootloader。同时在后面的测试中,也没有能够利用原来的Bootloader完成对MEGA8的程序下载。具体原因不详。

后来经过对原来的MEGA328 Bootloader程序进行改进,可以进行正常的下载程序了。

关键词 MEGA8ArduinoISP

  为什么想使用Arduino IDE对于ATMEGA8进行编程,在 Programming ATmega8 Using Arduino IDE – Arduino Project Hub 给出了如下的理由:

  • 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 😄

  需要说明的是,本文下面虽然没有能够直接利用Arduino对MEGA8进行编程,但在上面的网文中给出了正确的设置方式。

 

§01 计 Arduino实验板


   从0 开始 DIY你的Arduino UNO 测试了基于ATMEGA328制作的ARduino UNO开发板的过程。手边有比较多的ATMEGA8的芯片,下面通过实验过程验证:

  • 是否可以使用相同的方式获得基于MEGA8的Arduino UNO,或者Nano的开发板;
  • 是否运用Arduino所产生的HEX,通过传统的下载程序完成对于ATMEGA8程序的更新预下载。

基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

▲ 图0-1 Arduino管脚功能定义

1、实验电路设计1

(1)管脚功能定义

  下图是在 Grove Beginner Kits基础实验 Arduino 给出的关于Arduino UNO的数字与模拟接口定义。设计ATMEGA8测试板,也根据下面这种定义协议安排对应的管脚输出。

基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

▲ 图1-1 Arduino 数字接口管脚定义



基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网
▲ 图1-2 Arduino模拟接口关键;yi560

(2)设计原理图

基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

▲ 图1-3 测试板的原理图设计

【表1 测试板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

(3)制作PCB

基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

▲ 图1-4 快速制版铺设的PCB以及焊接后的PCB

2、初步调试

  由于焊接的是已经设置了Bootloader的ATMEGA8,所以焊接之后,它便可以在16MHz工作了。

工作测试:

工作电压:+5V
工作电流:20.3mA
晶振频率:16MHz

基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

▲ 图1-5 测量OSC1的波形

3、下载Bootloader

基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

▲ 图1-6 利用Arduino IDE 下载Bootloader

基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

▲ 图1-7 下载过程中出现的错误提示

  通过上面的测试,可以看到利用Arduino IDE下载Bootloader是无法进行的

 

§02 用MAX232下载程序


  接利用已经上载的MEGA8的自行设计的Bootloader,使用普通的のMAX3232接口即可。

1、下载接口定义

【表2 下载MAX3232与MEGA8测试版连接】

管脚 PIN1 PIN2 PIN3 PIN4 PIN5
MAX3232 VCC 11 12 9 GND
功能定义 VCC T1IN R1OUT T2IN GND
连接MEGA8 VCC TXD RXD RST GND
测试电路 PIN1 PIN4 PIN3 PIN5 PIN2

基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

▲ 图2-1 下载MAX232接口

2、连接MAX3232与测试MEGA8

  在面包板上连接下载模块与测试MEGA8电路板。

基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

▲ 图2-2 在面包板上连接下载模块与测试MEGA8电路板

3、下载结果

  使用上述电路,利用MEGA328BOOTLOADER无法下载。经过更换MEGA8MCU,也无法下载程序。

基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

▲ 图2-2 下载程序出现错误

 

§03 ATMEGA8 DIP-28


   ATMEGA8 DIP-28面包板实验 给出了在面包板上搭建基于ATMEGA8-DIP28的实验电路。

基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

▲ 图3-1 ATMEGA8DIP-28管脚功能定义

1、搭建实验电路板

  参考下面的连接方式在面包板上搭建实验电路板。

基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

▲ 图3-2 识别ATMEGA8管脚对其的标志点

2、下载结果

  很可惜,在面包板上搭建的MEGA8依然无法下载。

基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

▲ 图3-3 搭建的MEGA8的实验电路板

 

验总结 ※


  知道为什么,这次实验中,搭建的电路板、面包板各种版本都没有能够完成下载程序。

  这样对于利用有Arduino生成的HEX进而进行对MEGA8编程的测试也就无法进行测试了。

※ 补充说明

  对于MEGA328Bootloader进行调试,将MEGA8BL.CPP中 BLEnterBootloader(void)中的最后进行修改。将如来的BLReceChar() 修改成 ReceCharL()便课程正常下载了。

    if(ReceCharL(&ucChar, PORT1, 10)) {return 1;}
//    if(BLReceChar(&ucChar)) {
//        return 1;
//    }

基于ATMEGA8的Arduino Nano(UNO)开发板-编程知识网

▲ 图3-4 正常下载的过程

D:\zhuoqing\window\cb\MegaBL\M328_BL

  测试了对于Arduino编译出的HEX文件,但是MEGA8中运行不正确。

※ 补充说明1:

  在博文 利用Arduino IDE对ATMEGA8等单片机编程 实验中,经过参考网络上的给出的说明已经能够正确安装Arduino IDE中的软件包并进行正确的下载程序了。


■ 相关文献链接:

  • 从0 开始 DIY你的Arduino UNO
  • Grove Beginner Kits基础实验 Arduino
  • ATMEGA8 DIP-28面包板实验

● 相关图表链接:

  • 图0-1 Arduino管脚功能定义
  • 图1-1 Arduino 数字接口管脚定义
  • 图1-2 Arduino模拟接口关键;yi560
  • 图1-3 测试板的原理图设计
  • 表1 测试板PIO功能定义
  • 图1-4 快速制版铺设的PCB以及焊接后的PCB
  • 图1-5 测量OSC1的波形
  • 图1-6 利用Arduino IDE 下载Bootloader
  • 图1-7 下载过程中出现的错误提示
  • 表2 下载MAX3232与MEGA8测试版连接
  • 图2-1 下载MAX232接口
  • 图2-2 在面包板上连接下载模块与测试MEGA8测试版
  • 图2-2 下载程序出现错误
  • 图3-1 ATMEGA8 DIP-28管脚功能定义
  • 图3-2 识别ATMEGA8 管脚对其的标志点
  • 图3-3 搭建的MEGA8的实验电路板

  1. 基于MEGA8的Arduno的测试版的AD工程文件:AD\Test\2021\ZYK\TestMega8Nano.SchDoc ↩︎