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

发布者:王岚枫最新更新时间:2020-03-29 来源: eefocus关键字:ATmega8L-8PU  Arduino  LED 手机看文章 扫描二维码
随时随地手机看文章

第一步:硬件准备


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  LED 引用地址:使用ATmega8L-8PU 在面包板上搭建自己的Arduino ,并闪亮一个LED

上一篇:基于atmega8的arduino最小系统制作(arduino uno作为下载器)
下一篇:Arduino - 最小系统(基于ATMEGA8-16PU)

推荐阅读最新更新时间:2024-11-20 17:42

采用LT3486的汽车LED驱动器电路图
  LED应用于汽车的中央高位刹车灯(CHMSL)时所具有的优点有:能更快达到设定亮度,有更高的效率、更长的使用寿命,且其很细小的红光LED阵列更易于设计和安装;LED在低于1ms的时间内就可达到设定亮度,从而使后面汽车的驾驶员能够更快地看到刹车灯,因此可以减少追尾事故。相比之下,传统灯泡要花高达200ms的时间才能达到设定亮度。与白炽灯相比,LED灯的功耗可降低高达 80%,从而降低了汽车的燃料消耗。   为了最太限度地提高刹车LED应用的性能并延长其使用寿命,应结合汽车刹车系统的要求,优化“红光LED串”驱动器的设计。凌特公司的LT3486是专门为此类汽车的应用而开发的。LT3486是一种双升压DC/DC变换器,由其构成的LE
[电源管理]
采用LT3486的汽车<font color='red'>LED</font>驱动器电路图
单片机8x8LED点阵屏显示数字
硬件连接: 程序: #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int uchar code Table_OF_Digits = { 0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00, 0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00, 0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00, 0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00, 0x0
[单片机]
单片机8x8<font color='red'>LED</font>点阵屏显示数字
一种全彩LED驱动电路的设计方案
发光二极管(Light Emitting Diode,led)是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光,随着LED的应用越来越广,对于其驱动电路要求也越来越高。现在大多数场合需要采用恒流输出的开关电源,对于全彩LED灯而言,采用传统的RGB分别驱动在面对既要调色温又要调节亮度时候会有明显的缺陷,基于这点,通过改良HSI模型,设计了这款适合与全彩LED的驱动电路。传统的RGB模型需要R,G,B分别调节,而HSI模型主要将亮度和色度分开,通过H,S,I三个参数分别调节,H(色度),S(饱和度),I(亮度)。HIS模型下的驱动电路通过单片机控制总线驱动电流来限定I参数(亮度),通过R,G,B三端反馈调节
[电源管理]
一种全彩<font color='red'>LED</font>驱动电路的设计方案
LED设计中驱动器拓扑结构的选择
过去几年来,高亮度发光二极管(HB- LED )在每封装流明输出和光效(单位为l m/w)方面的性能快速提升。商用的1W LED已提供有冷色温LED(色温5000K)的每封装流明输出超过1001m,光效达1001m/W ,而相同功率等级的暖色温白光LED(色温3000~3500K)也超过了70~801m。与两年前相比,这些性能等级提高了30%~40%。有了这样的性能,LED如今正逐步发展成为众多高性能应用中传统白炽灯、卤素灯和荧光灯的切实可行的替代光源。因此,固态照明(ssL)相当多地渗入到了汽车、商业和景观照明,以及城市街道照明之中。LED还能用于新应用,如基于实际太阳能板的远程照明,因为这很容易借可充电电池产生LED所要求的直
[电源管理]
基于LT3486升压型转换器驱动16个白光LED方案
Linear Technology公司提供的双通道升压LT3486,可以以恒定电流 驱动 16只 白光LED (每通道8只串行 LED ),它除了可提供 PWM 调光外,亦可保持LED的固定发光颜色。它适合 便携式 电子设备与汽车的 显示屏 幕背光等应用场合。 LT3486的特点 • 宽(1000:1)调光范围 • LED 驱动器的独立调光和关断控制 • 从单节锂离子电池以 25mA 电流(每驱动器 8 个)驱动高达 16 个白光 LED • 从 12V 电源 以 100mA (每个驱动器 8 个)驱动多达 16 个白光 LED • ±3% LED 电流编程准确度 •
[电源管理]
基于LT3486升压型转换器驱动16个白光<font color='red'>LED</font>方案
安森美半导体低压便携及中等电压LED通用照明方案
发光二极管(LED)光输出持续提升,彩色及白光高亮度LED应用已扩展至全新的市场领域。LED已开始替代白炽灯、荧光灯,用于汽车、涵盖智能手机到液晶电视的消费电子、建筑物照明及通用照明等应用。未来,LED将继续以其可编程能力和灵活性及创新的固态照明(SSL)方案改变照明市场。 LED是低压器件,根据色彩及电流不同,LED正向电压可介于2V至4.5V之间,并以恒定电流驱动,以确保所要求光强度和色彩。这要求电源转换及控制方案连接不同电源,甚至是电池。安森美半导体分别为低压便携式和中压LED通用照明提供优化的驱动器方案,以满足不同应用的照明需求。 低压便携LED驱动器拓扑及安森美半导体解决方案 小型彩色LCD面板、键盘及
[电源管理]
安森美半导体低压便携及中等电压<font color='red'>LED</font>通用照明方案
51学习之LED闪烁
void Main() { while(1) { Speak1 =0; Delay_xMs(50000); Speak1 =1; Delay_xMs(50000); } } 想控制灯闪,结果发现灯常亮。以为是自己写的延时有问题,可是查到网上都是这么写的。后来参考了下人家的原程序,发现人家置1后,又写了个延时。加上一试,OK了。 想了想明白了,因为 while(1)程序一直在循环,如果没有延时,置1只是一下又闪过了,又变0了。
[单片机]
27.点亮led的操作
Led可以作为我调试程序的工具:在嵌入式系统软件,例如Bootloader和kernel,在开发初期,由于串口等硬件尚未被初始化,因此调试手段相当有限,这时候可以采用Led来作为调试手段。 OK6410有关led的原理图: 从上图知道,要让led发光二极管,就是从右到左导通,右边是高电平,所以左边给低电平,二极管就会导通,发光了。 知道原理后,看看OK6410的核心板原理图,查看NLED1-4应该接到核心板的哪些引脚:led的部分截图: 我们从上面的原理图知道,led1-4对应的是GPM0-3.对应NLED1-4. 2.GPIO GPIO是General-Purpose Input/Output Ports:通用
[单片机]
27.点亮<font color='red'>led</font>的操作
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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