jackytan1986 发表于 2015-10-22 03:38:59

新手学习自制 ATMEGA8-16PU 最小arduino系统

本帖最后由 jackytan1986 于 2015-10-22 04:06 编辑

新手学习自制ATMEGA8-16PU最小arduino系统
首先感谢极客工坊弘大的基础arduino教程!!我从其中的帖子学会很多技术和例子。今天独立亲手尝试制作一会AVR最小单片机,整套制作系统大约占据了4天的时间,其中很多时候是出现很多错误,寻找错误的解决方法上面。感觉亲自自作arduino单片机的乐趣比起购买成品的模块要来得有成就感,非常适合学生们空余时间学习与制作。所以在这里将结合弘大的技术贴和阿古同学的博客技术文章,重新梳理整齐的制作过程和其中的要点,其中可能有一些步骤存在不错或者错误,希望大家可以指出缺点和不足,谢谢大家!
下面是开始制作的详细步骤:
第一步,准备所需的材料。材料分别为:50V200uF电解电容、7805CV稳压管、28脚IC座、实验板、DC电源座、9V电池盒、CH340USB专TTL模块、ISP读写模块、面包版、轻触开关、10K电阻、排母、排插杜邦线 、22PF瓷片电容2个、16Mhz晶振一个。
https://img.alicdn.com/imgextra/i2/59794286/TB2B1mHgpXXXXXqXXXXXXXXXXXX_!!59794286.jpg
https://img.alicdn.com/imgextra/i4/59794286/TB2NmKqgpXXXXcvXXXXXXXXXXXX_!!59794286.jpg


https://img.alicdn.com/imgextra/i3/59794286/TB2xySdgpXXXXbcXpXXXXXXXXXX_!!59794286.jpg

第二步,焊接好电路板。
https://img.alicdn.com/imgextra/i1/59794286/TB2CaKygpXXXXbmXXXXXXXXXXXX_!!59794286.jpg

https://img.alicdn.com/imgextra/i2/59794286/TB2CyydgpXXXXa2XpXXXXXXXXXX_!!59794286.jpg

https://img.alicdn.com/imgextra/i3/59794286/TB2kPaqgpXXXXcEXXXXXXXXXXXX_!!59794286.jpg

第三步,开始给ATMEGA8刷入bootloader。刷入步骤基本上跟弘大和阿古同学的教程基本一样,这里大家注意一下,要对准ATMEGA8的电路图,以免发生接错插口烧坏芯片。详细步骤大家可以翻阅一下之前的教程地址是:http://www.geek-workshop.com/thread-115-1-1.html http://aguegu.net/?p=291
https://img.alicdn.com/imgextra/i2/59794286/TB24JSugpXXXXbSXXXXXXXXXXXX_!!59794286.jpg

请注意每一种的ISP读写器输出口位置不一样,必须按照正确的接口接对!!
https://img.alicdn.com/imgextra/i1/59794286/TB2wvCDgpXXXXacXXXXXXXXXXXX_!!59794286.jpg

ISP连接电路图:
https://img.alicdn.com/imgextra/i4/59794286/TB2K6evgpXXXXbhXXXXXXXXXXXX_!!59794286.jpg

把插线接好之后,打开PROGISP刷写软件(注意:网上购买的这种单一的atmega8的免驱动ISP模块,只支持PROGISP,暂时发现其他ISP写入软件不支持!)
https://img.alicdn.com/imgextra/i3/59794286/TB28VWsgpXXXXcwXXXXXXXXXXXX_!!59794286.jpg

按RD,看看有没有成功读取Id信息,一般能够读出ID信息成功,就证明了接线正确,如果弹出错误窗口,请重新检查接线,直到接线完全正确为止!
https://img.alicdn.com/imgextra/i3/59794286/TB202CngpXXXXcTXXXXXXXXXXXX_!!59794286.jpg

这些是配置熔丝的窗口,再主窗口里面按 “....”进入,(这里提出的熔丝配置图是配置成使用arduino的IDE写入程序代码的,如果不想使用arduino的工具写入,可以用阿古同学的配置AVR熔丝的配置图,用AVR-GCC写入,AVR的配置图如下图!)
https://img.alicdn.com/imgextra/i2/59794286/TB2TPWogpXXXXcDXXXXXXXXXXXX_!!59794286.jpg

好的,如果上面的步骤没有发生错误的话,应该是能配置好atmega8的熔丝了,接着我们回到主界面,写入arduino的ATmegaBOOT.hex文件,以便能启动arduinoIDE写入!
https://img.alicdn.com/imgextra/i3/59794286/TB28VWsgpXXXXcwXXXXXXXXXXXX_!!59794286.jpg

按右边的“调入flash”之后选择arduino的路径里面\hardware\arduino\bootloaders\atmega8里面的AtmegaBOOT.hex写入!按确定之后选择“自动”按钮,接着进度条完成就OK了!
第四步,接好TTL模块的接线位置。
https://img.alicdn.com/imgextra/i1/59794286/TB2UCCwgpXXXXbmXXXXXXXXXXXX_!!59794286.jpg

请对照好TTL的接线电路图,避免不要插错!
https://img.alicdn.com/imgextra/i4/59794286/TB2jbingpXXXXcKXXXXXXXXXXXX_!!59794286.jpg

第五步,当我们刷写好bootloader和接好TTL模块之后,就可以用串口TTL写入arduino程序代码了!
https://img.alicdn.com/imgextra/i1/59794286/TB2rG1igpXXXXazXpXXXXXXXXXX_!!59794286.jpg

Board的选项里面,选择NG/ATmega8的板子,Port的接口选择,你电脑上模拟串口的号码,例如我的是COM4。详细可以打开“设备管理器”查看COM端口。
https://img.alicdn.com/imgextra/i4/59794286/TB2LNSFgpXXXXXMXXXXXXXXXXXX_!!59794286.jpg

https://img.alicdn.com/imgextra/i1/59794286/TB2zIuygpXXXXbmXXXXXXXXXXXX_!!59794286.jpg

接着写入简单LED点亮代码,详细内容可以查看弘大的帖子,地址是:http://www.geek-workshop.com/forum.php?mod=viewthread&tid=68int ledPin=5; //设定控制LED的数字IO脚
void setup()
{
    pinMode(ledPin,OUTPUT);//设定数字IO口的模式,OUTPUT 为输出
}
void loop()
{
    digitalWrite(ledPin,HIGH); //设定PIN5脚为HIGH = 5V左右
    delay(2000); //设定延时时间,2000 = 2秒
    digitalWrite(ledPin,LOW); //设定PIN5脚为LOW = 0V
    delay(2000); //设定延时时间,2000 = 2秒
}
https://img.alicdn.com/imgextra/i3/59794286/TB2Z1CsgpXXXXcEXXXXXXXXXXXX_!!59794286.jpg

这里当按下“upload”时候,注意按开关的时间,按开关的时间最好是显示“uploading to i/oboard”之后,下面显示 代码的字节数的时候,按下就可以了
https://img.alicdn.com/imgextra/i4/59794286/TB2WUqGgpXXXXXfXXXXXXXXXXXX_!!59794286.jpg

当按之后显示写入代码完成,这样就完成了全部工作了,之后就可以用外部电源启动arduino,来实现你的项目!
https://img.alicdn.com/imgextra/i3/59794286/TB2Z1CsgpXXXXcEXXXXXXXXXXXX_!!59794286.jpg

https://img.alicdn.com/imgextra/i4/59794286/TB2JPWEgpXXXXXUXXXXXXXXXXXX_!!59794286.jpg

附:
ATMEGA8官方原理图 http://yunpan.cn/cFRfKi7nS8TFb (提取码:901f)

progisp2.0 下载 http://yunpan.cn/cFRfwL5NMPpmU (提取码:19ff)

教程全部PDF文件 http://yunpan.cn/cFRfczI7pCMGs (提取码:2e78)

ATmega328芯片引脚与端口的对照图
http://image.geek-workshop.com/forum/201412/04/145215iy66jzz959ysy9m1.jpg

Hackerpro 发表于 2015-10-22 09:03:46

是不是开机要5秒时间

jackytan1986 发表于 2015-10-22 09:12:04

Hackerpro 发表于 2015-10-22 09:03 static/image/common/back.gif
是不是开机要5秒时间

感觉好像是要5秒左右

164335413 发表于 2015-10-23 08:51:08

开机的确有时间,另外arduino连接上USB线后也会有重启的现象。

504835618 发表于 2015-10-23 08:55:18

m8内存太小了,在arduino上 用处不大。

jackytan1986 发表于 2015-10-24 08:55:43

504835618 发表于 2015-10-23 08:55 static/image/common/back.gif
m8内存太小了,在arduino上 用处不大。

其实用328的芯片也是差不多……

迷你强 发表于 2015-10-24 10:29:22

http://www.geek-workshop.com/forum.php?mod=viewthread&tid=7593&highlight=easy

本强甩一个328p最小系统玩法,这才叫最小系统嘛,哈哈

ishenglx 发表于 2017-2-12 19:43:57

usbtinyisp不行,一直读不熔丝位

wyk1237 发表于 2024-11-17 11:40:08

求助!伟纳的SP200se编程器

本帖最后由 wyk1237 于 2024-11-17 11:49 编辑

本人有伟纳的SP200se编程器,请坛友指点,能否直接给ATmega8下载程序,本人小白一个,谢谢
页: [1]
查看完整版本: 新手学习自制 ATMEGA8-16PU 最小arduino系统