Arduino在电子爱好者和设计师中的影响力极其深远,或许不亚于早年个人电脑(如家庭电脑俱乐部等)带来的影响力。市场上有数以百万计的Arduino,如果算上衍生产品中的Arduino,预计数量会更多。据预测,在未来5到10年内,Arduino将在学校中用于教授电子学和交互系统原理。
Arduino封装了很多功能。以前非常复杂的函数现在可以用一个简单的函数来解决。特别适合没有太多专业知识但热爱DIY的朋友。
Arduino板虽然价格不高,但忠于DIY精神,双手优先。费用约为10元。
与常规的最小系统不同,这次我使用的是Arduino 1.0,并使用“Upload using Programmer”功能,直接使用USBtinyISP下载程序,省去了USB转串口下载器,也避免了很多麻烦。
材料准备:
1. ATmega 8(可以是“ATmega 8A-PU”、“ATmega 8PU-8PU”或“ATmega 8-16PU”,具体区别将在下面讨论)
2. 两个22pF陶瓷电容
3. 1个晶振(“ATmega 8A-PU”和“ATmega 8PU-8PU”为8M,“ATmega 8-16PU”为16M)
4.USBtinyISP 1个
先看Atmega8引脚图
电路分为两部分
1、振荡电路:
晶振连接到Atmega8的pin9(PB6)和pin10(PB7),各连接一个22pF的电容,最后一个电容接地。
2、程序下载及供电部分:
ICSP引脚连接图:
+5V引脚7(VCC)
接地 ping22(接地)
D11 引脚17 (PB3)
D12 引脚18 (PB4)
D13 引脚19 (PB5)
复位 引脚1(复位)
这是连接的板:
添加了红色LED 电源指示
现在是时候下载Atmega8 的引导加载程序了。现在有两种情况:
1、如果是“ATmega 8A-PU”和“ATmega 8PU-8PU”,由于IDE中没有直接支持8M板子,需要自行修改:
下载以下文件,解压后放入hardwarearduinoootloadersoptiboot目录下,并在hardwarearduinoooards.txt中添加以下信息:
01.################################################## ############
02.
03.atmega8_8M.name=ATmega8_8MHz
04.
05.atmega8_8M.upload.协议=arduino
06.atmega8_8M.upload.maximum_size=7168
07.atmega8_8M.upload.speed=115200
08.
09.atmega8_8M.bootloader.low_fuses=0xa4
10.atmega8_8M.bootloader.high_fuses=0xdc
11.atmega8_8M.bootloader.path=optiboot
12.atmega8_8M.bootloader.file=optiboot_atmega8_8M.hex
13.atmega8_8M.bootloader.unlock_bits=0x3F
14.atmega8_8M.bootloader.lock_bits=0x0F
15.
16.atmega8_8M.build.mcu=atmega8
17.atmega8_8M.build.f_cpu=8000000L
18.atmega8_8M.build.core=arduino
19.atmega8_8M.build.variant=标准
当您启动IDE时,您将在开发板上看到“Atmega8_8M”。只需选择它即可。
2.如果是ATmega 8-16PU,选择板子时选择“arduino NG or w/ATmega 8”即可。
选择板子后,使用USBtinyISP下载bootloader。当看到下图时就说明下载成功了。
好吧,从这里开始就是它与其他最小系统不同的地方了。通常我们使用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;
无效设置()
{
pinMode(led, 输出);
}
无效循环()
{
digitalWrite(led, 高);
延迟(1000);
digitalWrite(led,低);
延迟(1000);
}
写完后点击最左边的勾(编译)。
最后一步是下载。你可以看一下。工具下有一个新的“程序员”。点击后,选择USBtinyISP。串口不需要选择。
最后,打开“文件”,可以看到“使用程序员上传”。单击后,程序将开始下载。
这是程序下载后的图片。如果图片可以移动,您可以看到绿色LED 闪烁。
总结:如果按照前面的方法创建一个最小系统,则需要使用两组电路来下载引导加载程序和程序。而且,下载程序时,TX和DX对下载线要求较高,需要连接复位电路。使用Upload using Programmer下载程序只需要一组电路,简化了连接电路带来的不便。不需要转换器或复位电路。最大程度的避免了很多麻烦。
有兴趣的同学可以过来尝试一下。
这是后来在穿孔板上焊接的最小的系统,效果还不错~