历史上的今天
返回首页

历史上的今天

今天是:2025年03月29日(星期六)

2020年03月29日 | 使用ATmega8L-8PU 在面包板上搭建自己的Arduino ,并闪亮一个LED

2020-03-29 来源:eefocus

第一步:硬件准备


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等的原因了。

推荐阅读

史海拾趣

FIDELIX公司的发展小趣事

FIDELIX公司成立于1990年,最初只是一家小型半导体研发公司。在韩国半导体产业蓬勃发展的背景下,FIDELIX凭借其对技术的执着追求和对市场的敏锐洞察,逐渐在NAND FLASH(闪存)和SDR/DDR(单/双数率同步动态存储器)等存储芯片领域取得突破。经过多年的努力,FIDELIX在韩国市场上确立了其存储芯片研发及销售的地位,成为仅次于三星、SK海力士的第三大MEMORY(存储器)生产厂商。

晨晶电子(Chenjing Electronics)公司的发展小趣事

晨晶电子的前身是始建于1958年的国营第七O七厂。作为一家具有深厚历史底蕴的企业,它在中国电子行业的发展历程中扮演了重要角色。然而,随着时代的变迁和市场环境的转变,国营第七O七厂逐渐面临着体制僵化、市场竞争力下降等问题。为了适应现代企业制度的要求,该厂在2000年进行了转制,成立了北京晨晶电子有限公司。这一转制不仅为企业注入了新的活力,也为其后续的发展奠定了坚实基础。

High Tech Chips Inc公司的发展小趣事

在追求经济效益的同时,晨晶电子也积极履行社会责任,致力于绿色环保事业。公司通过了ISO14001环境管理体系认证,严格遵守环保法规,实施清洁生产。同时,晨晶电子还积极推广环保理念,倡导绿色消费,为保护环境、促进可持续发展做出了积极贡献。

这五个故事不仅展示了晨晶电子在电子行业中的发展历程和成就,也体现了其不断创新、追求卓越的企业精神。在未来的发展中,晨晶电子将继续秉承这一精神,努力成为电子行业的佼佼者。

Broadcom(博通)公司的发展小趣事

随着全球化的深入发展,博通积极调整战略,加强全球布局。公司通过设立研发中心、拓展销售网络等方式,不断提升其在全球市场的竞争力。同时,博通还积极与其他行业领军企业开展战略合作,共同推动电子行业的发展和创新。

这些故事展示了博通在电子行业中的发展历程和成就。从初创时期的艰难起步,到困境中的重生,再到并购扩张和技术创新,博通始终保持着坚韧不拔的精神和追求卓越的态度。正是这样的精神和态度,使博通能够在激烈的市场竞争中脱颖而出,成为电子行业的佼佼者。

南晶电子(DGNJDZ)公司的发展小趣事

随着市场竞争的加剧,南晶电子意识到技术创新是企业发展的核心动力。公司投入大量研发资金,与多所高校和科研机构建立合作关系,共同研发新型半导体器件。经过不懈努力,南晶电子成功推出了一系列具有自主知识产权的高性能产品,赢得了市场的广泛认可。

ADDtek公司的发展小趣事

在产品质量和技术水平得到认可后,南晶电子开始积极拓展市场。公司参加了多场国内外电子展会,与众多客户建立了合作关系。同时,南晶电子还加大了营销力度,通过线上线下相结合的方式,提高了品牌知名度和市场占有率。在短短几年内,公司实现了从国内市场到国际市场的跨越式发展。

问答坊 | AI 解惑

模拟电子技术重点难点及典型题精解2

模拟电子技术重点难点及典型题精解2 [ 本帖最后由 linda_xia 于 2010-3-26 11:31 编辑 ]…

查看全部问答>

Keil C编译常见告警与错误信息的解释及排除方法

1. Warning 280:’i’:unreferenced local variable 说明 局部变量 i 在函数中未作任何的存取操作 解决方法 消除函数中 i变量的宣告 2 Warning 206:’Music3’:missing function-prototype 说明 Music3( )函数未作宣告 或未作外部宣告 ...…

查看全部问答>

五种PWM反馈控制模式研究

五种PWM反馈控制模式研究…

查看全部问答>

u-boot LCD显示问题

最近调试u-boot 下 lcd显示,由于原配的lcd为320*240的TFT,现在我要改为640*480,修改参数后发现显示是稳定的,但是显示3块错开的相同的内容(分别在屏幕的上中下的位置),不知是什么原因。有人碰到过吗;请问是什么原因呢?…

查看全部问答>

Bios Boot Loader的错误

按照PB帮助文档作的BLDR,NK.bin也可以通过网络或者在终端运行,PB是5.0的版本. 以下是错误信息: Microsoft Windows CE BIOS Bootloader Version 2.2 (Built Mar 13 2004) WARNING: code=0x7. WARNING: code=0x13. WARNING: code=0x7. WARNING: ...…

查看全部问答>

STM32待机模式IO口问题,请教

我现在程序启动定时器,定时器到达后进入待机模式,主程序在循环将一个LED闪烁。发现进入待机模式后,LED灯是亮的不再闪烁了,功耗确实降了下来。我是IO口接LED接R接地,设置的推挽方式。进入待机模式发现IO还是3.3V的高电平,而不是高阻状态 ...…

查看全部问答>

嵌入式Linux操作系统实时性的分析

一、引言 Linux本身为分时操作系统,其系统目标为较好的平均响应时间和较高的吞吐量,而实时系统则主要考虑任务的按时完成、尽量减少进程运行的不可预测性等。但与商业嵌入式操作系统相比Linux遵循GPL,具有源代码开放、定制方便、支持广泛的计算 ...…

查看全部问答>

CycloneII特殊管脚的使用

1/1.I/O, ASDO 在AS 模式下是专用输出脚,在PS 和JTAG 模式下可以当I/O 脚来用。在AS 模式下,这个脚是CII 向串行配置芯片发送控制信号的脚。也是用来从配置芯片中读配置数据的脚。在AS 模式下,ASDO 有一个内部的上拉电阻,一直有效,配置完成后 ...…

查看全部问答>

山东省电子设计竞赛交流群

本帖最后由 paulhyde 于 2014-9-15 03:46 编辑 qq群,里面有很多大牛耶 121622701  …

查看全部问答>