第一步:硬件准备

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-r2\hardware\arduino\bootloaders\atmega8目录,文件名为ATmegaBOOT-prod-firmware-2009-11-07.hex

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

4.选中编程熔丝选框

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


第五步:在Arduino的IDE下建立闪亮LED的代码
/*BlinkTurns 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 seconddigitalWrite(led, LOW);    // turn the LED off by making the voltage LOWdelay(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-r2\hardware\arduino 下 有一个板子类型配置文件boards.txt。其中有部分配置代码如下
##############################################################atmega8.name=Arduino NG or older w/ ATmega8atmega8.upload.protocol=arduino
atmega8.upload.maximum_size=7168
atmega8.upload.speed=19200atmega8.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=0x0Fatmega8.build.mcu=atmega8
atmega8.build.f_cpu=16000000L
atmega8.build.core=arduino
atmega8.build.variant=standard##############################################################
在这里可以看到熔丝位的配置,晶振频率,以及指定的bootloader的HEX文件等信息,这也是为什么 在第四步中熔丝位那样配置,晶振非要选择16M等的原因了。



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

  1. 《动手玩转Arduino》——11.1 作品37:在面包板上做自己的Arduino

    本节书摘来异步社区<动手玩转Arduino>一书中的第11章,第11.1节,作者:[澳]John Boxall,更多章节内容可以访问云栖社区"异步社区"公众号查看 11 ...

  2. 什么电线适合在面包板上布线?

    简 介: 对于面包板布线所使用的导线种类.颜色.长度以及耐用性进行讨论.也许没有一个十全十美的选择方案,需要根据情况而定.对于学生来讲,由于电路内容需要经常更换,所以使用双公头的杜邦线比较适合完成实验 ...

  3. 面包板上的电子管 6J1

    真空三极管6J1 真空电子管 目 录 Contents 前言 初步测试 功率放大 总 结 测量6J1电子管的一些基本特性 电子管:6J1基本特性文献调研 01 真空电子管 一.前言   这是一个按照在 ...

  4. 面包板上的高频放大电路

    01 高频放大电路 在 基于uPC1677C射频功率放大 中使用单片吗印刷电路板调试了基于9018晶体管以及uPC1677的射频(FM)信号的功率放大实验.但是后来经过实际距离测试,发现耦合到天线上的 ...

  5. 51单片机STC89C52RC进阶 – 在面包板上构建51单片机最小系统

    电子元件准备 STC 89C52RC 单片机芯片(40Pin 直插式DIP封装) x 1 10uF铝电解电容 x 1 10K直插式电阻 x 2 11.0592MHz晶振 x 1 30pF瓷片电容 x ...

  6. 《树莓派实战秘籍》——1.15 技巧15连接GPIO脚到面包板上

    本节书摘来异步社区<树莓派实战秘籍>一书中的第1章,第1.15节,作者:[美]Ruth Suehle ,Tom Callaway,更多章节内容可以访问云栖社区"异步社区" ...

  7. 用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。

    一.通过STMcube创建项目 1.配置引脚 2.配置exit 3.配置sys 4.配置gpio 5.创建项目生成代码 点击右上角GENERAT CODE 二.通过keil5编辑并修改部分代码 在打开 ...

  8. 实验报告:面包板搭建实际电路

    实验人员:田少军   韦其优 实验目的: 通过搭建面包板实际电路,了解电路的基本组成部分,学会使用电路元器件,并能够熟练运用基本电路组合方法进行电路设计与搭建,准确测量电路参数,掌握电路分析方法. 实 ...

  9. 为什么面包板不能够做射频电路实验?

    01为什么在面包板上玩射频? 方便,当然还是方便.面包板是进行一些电子线路实验构建电路方便的平台. 比如下面 B站的录像 一个小伙子就在面包板上搭建了一个调频发射实验电路并进行了实验. ▲ 通过面包板 ...

最新文章

  1. Manifest值冲突解决方法
  2. 我的技术家园,吸取精神食粮的天堂
  3. 一个生产的shell脚本
  4. prima evb_用Priam设置Cassandra
  5. ASP.NET 2.0中实现模板中的数据绑定
  6. HDU2206 IP的计算【文本处理】
  7. 长春去哪辅导高二理综好?高中生数理化培优补差辅导
  8. Elasticsearch入门四:Elasticsearch-搜索、过滤、聚合
  9. sql 50道 练习题
  10. python端口扫描
  11. springboot 整合 ftps
  12. python 网盘多帐号_教你怎么拥有(很多)百度网盘2T账号
  13. ccs定义的函数不变色_ccs使用问题及解决办法
  14. js-实现数组翻转(倒序)
  15. 在vue项目中使用supermap,基于 SuperMap iClient 8C(2017) for JavaScript,底图为天地图
  16. win10系统设置选择电源键按钮功能设置步骤
  17. 华为智选 720 全效空气净化器 评测
  18. HTTP/HTTPS账号密码获取
  19. OpenGL 入门 17:立方体贴图
  20. 网络中的计算机如果加入家庭组,win7如何加入家庭组

热门文章

  1. 一键复制php代码,PHP_php下批量挂马和批量清马代码,复制代码 代码如下:?php funct - phpStudy...
  2. Java + Selenium 完成简单滑块验证学习之路(selenium的使用)(二)
  3. 链接生成-链接生成器-免费批量在线链接生成器
  4. 微信O2O,卡在了“连接一切”的迷信上
  5. 手臂疼,竟是它惹的祸?这些征兆你想都想不到
  6. 彩虹易支付新增短信宝短信接口
  7. 2005年十大手机代表机型ZZ
  8. carx2服务器维护不足什么问题,carx2赛车漂移
  9. 基于视觉信息的网页分块算法(VIPS) - yysdsyl的专栏 - 博客频道 - CSDN.NET
  10. A Transformer-based Approach for Source code Summarization 翻译