使用ATmega8L-8PU 在面包板上搭建自己的Arduino ,并闪亮一个LED

发布者:sheng44最新更新时间:2020-04-28 来源: eefocus关键字:ATmega8L-8PU  Arduino  闪亮 手机看文章 扫描二维码
随时随地手机看文章

第一步:硬件准备


1.ATMEGA8L-8PU avr单片机(图1)

图1


2.USBasp(用于烧写bootloader的工具)(图2上)


3.USB转TTL串口线(我用的是FT232芯片的,稳定性比较好,用于在arduino下装载程序)(图二下)

图2


4. 16M晶振,面包板,发光二极管等,及若干杜邦线


这里可能有疑问:ATMEGA8L-8PU为什么配了16M晶振?


原因是这样的:原则上ATMEGA8L-8PU最高用的是8M晶振,但Arduino 中的所用M8平台的bootloader是基于ATMEGA8编译的,并且使用的是16M晶振;而我手头没有ATMEGA8的芯片(注意我用的芯片后面带个“L”),又不会重新编译bootloader,只好把现有ATMEGA8L配上16M。虽然“超频”了,但目前试验中尚未发现问题。


第二步:软件准备(下载找度娘吧)


1.arduino的IDE:arduino-1.0.5-r2


2.USB asp的驱动以及串口线的驱动(这个注意要下载自己串口线对应芯片的驱动)


3.progisp(这个是用来烧写bootloader的软件)


注意事项:在安装完USB asp后,必须 要将驱动程序目录下的  libusb0.dll,libusb0.sys这两个文件复制到 烧写工具progisp.exe所在目录。特别的,在USBasp的驱动文件目录下,有多组 libusb0.dll,libusb0.sys文件,必须要选择与自己电脑系统对应的文件。


例如 图3是x64位的驱动目录,我的电脑是AMD CPU的x64win7,我所复制的那两个文件是在amd64下面。当然intel CPU 的电脑用ia64文件夹里的两个文件。

图3


否则烧写程序时就可能出现如下问题:

图4


第三步:在面包板上搭建最小系统

如图5所示接线

图5

实物示例图6:

图6

第四步:用usbasp烧写bootloader

安装并连接好USBasp驱动后,打开progisp软件如图7

                       

图7


1.选择芯片为ATmega8


2.打开bootloader的HEX文件,位于Arduino IDE软件的arduino-1.0.5-r2hardwarearduinobootloadersatmega8目录,文件名为ATmegaBOOT-prod-firmware-2009-11-07.hex


3.配置熔丝位为0xCADF,注意熔丝位配置错误可能会将芯片锁定。


4.选中编程熔丝选框


5.单击 自动 按钮,开始对芯片编程,编程完成后软件左下角框框会出现successfully字样。


第五步:在Arduino的IDE下建立闪亮LED的代码

/*

  Blink

  Turns on an LED on for one second, then off for one second, repeatedly.

 

  This example code is in the public domain.

 */

 

// Pin 13 has an LED connected on most Arduino boards.

// give it a name:

int led = 13;


// the setup routine runs once when you press reset:

void setup() {                

  // initialize the digital pin as an output.

  pinMode(led, OUTPUT);     

}


// the loop routine runs over and over again forever:

void loop() {

  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)

  delay(1000);               // wait for a second

  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW

  delay(1000);               // wait for a second

}

图8

输入代码后单击图8所示IDE中第一个的形如 "对号"的按钮编译。


第六步:在Arduino的IDE下装载编译后的程序到Atmega8芯片中

1.断开USBasp与面包板的任何连接(这个重要,否则会下载失败,当然bootloader如果下载正确了,以后可以用USB to TTL下载Arduino程序了,USBasp也用不上了)。

2.将USB to TTL的VCC,GND连接到Atmega8L芯片的相应引脚。USB to TTL的TXD连接到ATmega8L的RXD,USB to TTL 的RXD连接到ATmega8L的TXD,参考图6。

3 在面包板上接一个发光二极管:发光发光二极管正极接ATmega8L的PB5(第19个引脚),负极通过一个限流电阻(500欧姆左右吧)接到GND。(参考图10,图10中未接限流电阻)

4.将USB to TTL连接到PC。然后在Arduino的IDE下单击选择菜单 Tool->Board->Arduino NG or older /W ATmega8,再选择Tool->Board->Serial Port下选择USB to TTL在你的电脑上对应的COM口。如图9。

图9

图10

5.最后单击Ardunio IDE上的“→”按钮,开始装载程序,同时在面包板上用杜邦线将Atmega8L的RST(第一个引脚)与GND短接一下,进行复位(当然接个按钮最方便),然后等待下载完成。

6.下载完成后:就可以看到实验效果   LED小灯亮一秒,灭一秒,如此往复。如果这里成果,则说明bootloader正确的引导了程序的下载与运行,并且Ardunio程序本身也是正确的。

                                          

图11

至此,一个最小的Arduino开发板制作完成,并运行了第一个Arduino入门程序,后续Arduino 程序的实现和系统扩展由大家发挥。

附图:Arduino中的PIN引脚与Atmega8L芯片管脚的对应关系。

附加说明:

在Ardunio IDE的安装目录 arduino-1.0.5-r2hardwarearduino 下 有一个板子类型配置文件boards.txt。其中有部分配置代码如下

##############################################################


atmega8.name=Arduino NG or older w/ ATmega8


atmega8.upload.protocol=arduino

atmega8.upload.maximum_size=7168

atmega8.upload.speed=19200


atmega8.bootloader.low_fuses=0xdf

atmega8.bootloader.high_fuses=0xca

atmega8.bootloader.path=atmega8

atmega8.bootloader.file=ATmegaBOOT-prod-firmware-2009-11-07.hex

atmega8.bootloader.unlock_bits=0x3F

atmega8.bootloader.lock_bits=0x0F


atmega8.build.mcu=atmega8

atmega8.build.f_cpu=16000000L

atmega8.build.core=arduino

atmega8.build.variant=standard


##############################################################


在这里可以看到熔丝位的配置,晶振频率,以及指定的bootloader的HEX文件等信息,这也是为什么 在第四步中熔丝位那样配置,晶振非要选择16M等的原因了。

关键字:ATmega8L-8PU  Arduino  闪亮 引用地址:使用ATmega8L-8PU 在面包板上搭建自己的Arduino ,并闪亮一个LED

上一篇:ATMega328P-PU芯片Arduino最小系统实验
下一篇:AVR C语言宏定义技巧(常用宏定义)

推荐阅读最新更新时间:2024-11-10 16:45

基于Arduino的超声测距系统的设计
一、“电子积木”Arduino 近几年,欧美大学皆相当流行应用Arduino作为基础的技术,在国内使用Arduino的人也越来越多。 Arduino为什么会这样流行?首先因为它是一个基于开放源代码的硬件项目平台: 1.硬件平台是开放的,任何人都可以在Arduino官方网站上下载最新的PCB设计进行复制,硬件平台包括基于AVR ATmega128微控制器的主控制电路板,以及大量的各式输入/输出电子模块。输入/输出模块包括开关输入模块、温度压力传感器输入模块、超声测距传感器输入模块、各类显示输出模块、电机控制模块等,甚至还有以太网接入模块。这些模块与主控制电路板的连接,不需焊接,只要像积木一样拼在一起即可。因此,Arduino也被称为
[电源管理]
基于<font color='red'>Arduino</font>的超声测距系统的设计
基于Arduino构建一个智能吸尘机器人
在当今的情况下,我们都忙于工作,没有时间正确打扫房子。这个问题的解决方法很简单,你只需要买一个家用吸尘器机器人,比如irobot roomba,它会通过按下一个按钮来清洁你的房子。但是这些商业产品有一个共同的问题,那就是成本。所以今天,我们决定做一个简单的扫地机器人, 与市面上的商业产品相比,它不仅制作简单,而且成本非常低。经常阅读的读者可能还记得我们很久以前制造的Arduino 吸尘机器人,但那个机器人非常笨重,需要一个大的铅酸电池才能移动。新的Arduino 吸尘器 我们将在这里建造将更紧凑,更实用。最重要的是,该机器人将配备超声波传感器和红外接近传感器。超声波传感器将允许机器人避开障碍物,以便它可以自由移动,直到房间被正确清
[嵌入式]
基于<font color='red'>Arduino</font>构建一个智能吸尘机器人
Arduino vs BeagleBone vs Raspberry Pi对比
本文对比了三款比较流行的,也是比较具代表意义的开源硬件平台Arduino Uno、BeagleBone和Raspberry Pi。从性能以及可扩展性等方面对它们进行对比,帮助开发者了解如何选择适合自己的开源硬件平台。 软硬件整合是今年一再被提及的话题,如今我们也可以看到不少硬件创业的成功案例,比如Jawbone Up、Pebble手表等可穿戴设备,它们可与用户的手机同步,实现软件与硬件的结合。通过硬件创新与软件整合的概念还有许多。但是如何将创意变为现实,是一个难题。许多大公司均选择硬件闭源,从而形成的技术壁垒与专利版权,阻碍着小规模创新者的发展。而开源硬件,让创业者可以更轻松地将创意转化为现实。 这篇文章由Roger Me
[嵌入式]
使用AVR-GCC编程Arduino
Arduino是IDE和硬件平台,IDE以Java编写,并使用Processing语言。 这对新手是个好主意,因为简化了开发,但是也比C要弱: C有准确的执行时间,没有隐藏代码,写什么就执行什么 C更容易访问硬件和中断 便于在多种MCU之间移植 本文编译和上传一个简单的纯C程序(使用avr-libc),而不用Arduino IDE。只需要终端、文本编辑器、AVR-GCC工具链。 1 闪耀LED例子 从让Arduino引脚13的LED闪耀开始(实际是闪耀PORTB的所有位)。创建个文件夹来存放项目,并创建文件 blink.c #include avr/io.h #include util/delay.h in
[单片机]
Proteus与Arduino的整合在单片机系统开发中的应用
  1.引言   Arduino是一款便捷灵活、方便上手的开源电子原型平台,具有接口丰富、编程环境简便、自由度大与可拓展性强等优点.它基于AVR平台,对AVR库进行了二次编译封装,将复杂的单片机底层代码封装成简单实用的函数,使使用者不用关心单片机编程繁琐的细节,如寄存器、地址指针等基本不用管,从而大大降低了单片机系统开发难度,特别适合老师、学生和一些业余爱好者使用。   由于Arduino使用者一般都是那些对电路知识、电子技术及单片机技术等了解不深入的初学者,如何在Arduino开发过程中快速有效的提高他们的单片机系统开发能力及电子电路设计能力是一个需要迫切解决的问题。   Proteus的引入较好的解决了存在的问题。  
[单片机]
Proteus与<font color='red'>Arduino</font>的整合在单片机系统开发中的应用
助力汽车产业升级,贸泽技术创新主题周直播课闪亮登场
专注于引入新品推动行业创新的电子元器件分销商贸泽电子 (Mouser Electronics) 宣布将于7月15-17日举办贸泽电子技术创新主题周第三期的线上直播系列课程。本期主题将全面聚焦汽车电子领域,特邀ADI、Amphenol、Molex、ON Semiconductor等原厂专家,及浙江大学陈敏副教授和王正仕副教授,在这三天下午的14:10-14:50和15:00-15:40两个时间段,为大家详细解读汽车电子前沿技术应用、技术趋势及常见问题。 汽车产业的创新与发展受到国家的高度重视,未来3-5年将形成百亿汽车电子产业基地。近些年,汽车电子的开发主要覆盖车辆感知、计算、执行等层面,对车辆状态进行检测和控制,按应用领
[汽车电子]
助力汽车产业升级,贸泽技术创新主题周直播课<font color='red'>闪亮</font>登场
如何使用Arduino制作一个交流电压测量设备
在这个项目中,我们将 使用Arduino制作一个交流电压测量设备, 该设备将测量我们家中交流电源的电压。我们将在Arduino IDE的串行监视器上打印该电压,并在万用表上显示。 制作数字电压表比制作模拟电压表容易得多,因为在模拟电压表的情况下,您必须对扭矩、摩擦损耗等物理参数有很好的了解,而在数字电压表的情况下,您只需使用 LCD 或 LED 矩阵甚至您的笔记本电脑(如本例)为您打印电压值。 所需组件: 一台 12-0-12 变压器 1N4007二极管 1uf电容器 电阻 10k;4.7k。 齐纳二极管(5V) Arduino UNO 连接线 Arduino电压表电路图: 此Arduino电压表的电路图如上所示。
[测试测量]
如何使用<font color='red'>Arduino</font>制作一个交流电压测量设备
Arduino和Atmel发布Arduino Zero开发板
Arduino Zero开发板由Atmel和Arduino联合开发,并由Arduino发布;该板是一个32位演进版本,可促进新一代物联网设备的发展。 中国,北京,2014年5月16日---- 在创客及教育领域领先的开源硬件平台提供商Arduino有限公司和全球微控制器(MCU)及触摸技术解决方案领域的领导者Atmel公司日前联合发布最新款开发板-Arduino Zero。 Arduino Zero是一个由Arduino UNO开发板平台而来的简约大方且功能强大的32位扩展版本。Zero开发板旨在让那些富有创造力的人们为智能物联网设备、可穿戴技术、高科技自动化、机器人技术以及众多尚在酝酿中的项目提供实现创意的平台。该
[嵌入式]
<font color='red'>Arduino</font>和Atmel发布<font color='red'>Arduino</font> Zero开发板
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved