Arduino 1.0——让最小系统更简单

前不久看了弘毅大哥的《arduino学习笔记19 - Atmega8制作最小arduino系统》,就一直想自己做个最小系统。但在做的过程中坎坷极多,在弘毅大哥的耐心指导下,最终还是搞定了……(弘毅大哥,好人哪!!!!!)和以往不同,这次用的是Arduino1.0,并且使用了“Upload using Programmer”功能,直接使用USBtinyISP下载程序,省去了usb转串口的下载器,同时也最大限度的避免了许多麻烦,下面就和大家分享一下我的制作过程。



材料准备:

1、ATmega 8(可以是“ATmega 8A-PU”、“ATmega 8PU-8PU”或“ATmega 8-16PU”,具体的差别下面会说)

2、22pF陶瓷电容两个

3、晶振一个(“ATmega 8A-PU”、“ATmega 8PU-8PU”用8M,“ATmega 8-16PU”用16M)

4、USBtinyISP一个



一些基础的东西就不多说了,大家可以参考《arduino学习笔记19 - Atmega8制作最小arduino系统》



先看Atmega8引脚示意图:

1505063jm2j94ys42173hj.jpg

2012-5-19 13:35 上传
(148.11 KB)





电路一共分两个部分:

1、震荡电路:

1514177nlu8znvkh8bbn5v.jpg

2012-5-19 13:38 上传
(31.92 KB)



晶振连接Atmega8的pin9(PB6)、pin10(PB7),在分别连接连个22pF的电容,最后让一只电容接地。



2、程序下载以及供电部分:

ICSP引脚连接图:

150506xa55qvslqlzzqqqg.jpg

2012-5-19 13:35 上传
(45.5 KB)



+5V → pin7(VCC)

GND → ping22(GND)

D11 → pin17(PB3)

D12 → pin18(PB4)

D13 → pin19(PB5)

reset → pin1(reset)





这是我连接好的照片:

照片 033_调整大小.jpg

2012-5-22 14:01 上传
(224.44 KB)





我还加了一个红色的LED做电源指示,如果有对电路连接不清楚的同学,可以去看看弘毅大哥的文章,连接方式是完全相同的。



下面就该给Atmega8下载bootloader了,现在就有两种情况:



1、如果是“ATmega 8A-PU”和“ATmega 8PU-8PU”,因为IDE里没有直接支持8M的板子,所以要自己改造一下:

下载下面的文件,解压后放在hardware\arduino\bootloaders\optiboot目录下,并在hardware\arduino\boards.txt里添加如下信息:##############################################################

atmega8_8M.name=ATmega8_8MHz

atmega8_8M.upload.protocol=arduino
atmega8_8M.upload.maximum_size=7168
atmega8_8M.upload.speed=115200

atmega8_8M.bootloader.low_fuses=0xa4
atmega8_8M.bootloader.high_fuses=0xdc
atmega8_8M.bootloader.path=optiboot
atmega8_8M.bootloader.file=optiboot_atmega8_8M.hex
atmega8_8M.bootloader.unlock_bits=0x3F
atmega8_8M.bootloader.lock_bits=0x0F

atmega8_8M.build.mcu=atmega8
atmega8_8M.build.f_cpu=8000000L
atmega8_8M.build.core=arduino
atmega8_8M.build.variant=standard复制代码

optiboot.rar

(6.27 KB, 下载次数: 597)

2012-9-1 22:08 上传
点击文件名下载附件





这时启动IDE,你就能在board里看到“Atmega8_8M”,选择他就对了。

2.png

2012-5-19 13:35 上传
(32.33 KB)





2、如果是ATmega 8-16PU,在选板子时直接选择“arduino NG or w / ATmega 8"就可以了。



选好板子后,使用USBtinyISP下载bootloader,当看到如下图片是,就说明下载成功了。

1.png

2012-5-19 13:35 上传
(13.35 KB)







好了,从这里开始就是和其他最小系统不同的地方了,通常我们会使用一个USB转TTL的下载器来下载程序,但因为种种原因,很多时候会出错。所以今天我们使用Arduino 1.0的“Upload using Programmer”功能来下载程序。



首先电路连接不变,还是使用下载bootloader的线路。然后确保你使用的IDE是Arduino 1.0(在Arduino的官网,一进下载软件页面的就看得见了),然后选择板子,还是和上面一样,ATmega 8-16PU可以直接用;“ATmega 8A-PU”和“ATmega 8PU-8PU”请先改造程序,然后写代码(我写了一个LED闪烁的程序来测试)int led = 12;

void setup()
{
pinMode(led,OUTPUT);
}

void loop()
{
digitalWrite(led,HIGH);
delay(1000);
digitalWrite(led,LOW);
delay(1000);
}复制代码写好后点击最左边的那个钩(编译)。

0.png

2012-5-19 14:31 上传
(18.3 KB)





最后是下载,大家可以看一下,在tools下新增加了一个“Programmer”,点开后选择USBtinyISP,Serial Port就不用选择了。

9.png

2012-5-19 14:34 上传
(12.47 KB)





最后打开“File”,你可以看到"Upload using Programmer",点击后程序就开始下载了。

8.png

2012-5-19 14:36 上传
(6.29 KB)





这是程序下载完后的照片,如果图片能动,你就能看见绿色的LED在闪烁。

照片 041_调整大小.jpg

2012-5-22 14:01 上传
(239.44 KB)







总结:如果按照以前的方法制作最小系统,下载bootloader和程序要使用两套电路。而且在下载程序时,TX和DX对下载线路的要求很高,还需要连接复位电路。而使用Upload using Programmer下载程序,仅需使用一套电路,简化了连接电路带来的不便,不需要转换器、不需要复位电路。最大限度地避免了许多麻烦。



有兴趣的同学可以来试试。



这是之后焊在洞洞板上的最小系统,效果还不错~

IMG_0304.JPG

2012-5-20 14:28 上传
(333.92 KB)





因为是第一次使用洞洞板,所以焊的水平还有望提高!

IMG_0306.JPG

2012-5-20 14:31 上传
(319.54 KB)





[attachimg]4559[/attachimg]

最小系统和arduino和比较~~
via - 极客工坊

标签: Arduino教程