×
单片机 > 单片机程序设计 > 详情

Arduino - 最小系统(基于ATMEGA8-16PU)

发布时间:2024-06-17 发布时间:
|

【基础介绍篇】

材料准备:

ATMEGA8-16PU 单片机。

直接通过ISP编程器进行程序下载,所以不需要烧录Bootloader。

(可选)USB ISP 编程器(如果没有编程器,则用Nano制作下载器,并用芯片出厂默认熔丝参数进行编译下载即可)。

(可选)16M晶振一个,22pF陶瓷电容两个(如果使用外部晶振,则9、10针接外部晶振两脚,并各串联22pF电容后接地)。

(可选)0.1uF 去耦电容一个(实际应用中,要在VCC与GND之间加个去耦电容:VCC←→电容←→GND)。

ATMEGA8-16PU 单片机针脚图示

参考资料

/zixunimg/eeworldimg/www.geek-workshop.com/thread-25004-1-1.html

/zixunimg/eeworldimg/aguegu.net/?p=420

/zixunimg/eeworldimg/www.geek-workshop.com/thread-1647-1-1.html

/zixunimg/eeworldimg/blog.csdn.net/ki1381/article/details/53189218

/zixunimg/eeworldimg/www.51hei.com/arduino/4164.html

/zixunimg/eeworldimg/www.guokr.com/post/452562/

/zixunimg/eeworldimg/tieba.baidu.com/p/2426030974

【熔丝烧录篇】

说明

1、如果使用出厂默认设置,则跳过此篇。

2、如果不熔丝,则在程序下载时,要按照出厂默认值设置开发板。

3、关于正确配置AVR熔丝位,参考文章:/zixunimg/eeworldimg/www.eeworld.com.cn/mcu/article_24377.html


ATmega8-16PU 熔丝出厂默认值

ATmega8-16PU熔丝出厂默认值为:低位值E1,高位值D9,扩展位0。


选项如下:


使用内部RC振荡器1MHz ,起动时间6CK+65ms

使能ISP编程

BOOT区大小1024Words

无加密(没有使能存储器保护特性)

SPM和LPM对应用区的访问没有限制

允许SPM/LPM指令访问bootloader区

不启用掉电检测


ISP接线

熔丝烧录

根据ISP接线图,接好单片机和烧录器。

打开PROGISP程序,选择ATmega8。

点击“…”按钮,进入烧录界面。

选择“向导模式”(我个人比较喜欢这个模式,可以直观的调整各个值)。

设置好各选项。

如果使用内部RC振荡器,最佳配置为:低位值E4,高位值DB,扩展位0。选项如下:

使能ISP编程

Boot区大小512Words

内部RC振荡器8MHz;起动时间 6CK+65Ms

无加密(没有使能存储器保护特性)

SPM和LPM对应用区的访问没有限制

允许SPM/LPM指令访问bootloader区

不启用掉电检测

如果使用外部晶振(16M),最佳配置为:低位值DF,高位值CA,扩展位0。

点击“写入”,熔丝烧录完毕。


熔丝烧录注意事项

如果不是直接使用Arduino串口下载程序(我们使用ISP编程器或Nano下载器),就不用烧录bootloader,那么Boot区大小也就无关紧要。

关于CKOPT:

使用外部晶振时:CKOPT控制振荡器电路的震荡幅度为满幅振荡还是半幅震荡。开启时(CKOPT=0)为全幅震荡,此时功耗增加,抗干扰能力增强。不开启时(CKOPT=1),功耗低,抗干扰能力弱。如果不开启,系统时钟频率最高到8M,如果要求系统时钟频率较高(大于8M)或对抗干扰能力要求高,就需要开启。当系统时钟频率低于2M时,建议关闭此项(CKOPT=1),可以减少电流消耗。

使用内部RC振荡器时:CKOPT选项不需要开启。


【程序下载篇】

准备工具

1、开发板管理器中加入对ATmega8单片机的支持

2、下载方法一:Arduino+USB ISP烧写器+PORGISP烧写软件

3、下载方法二:Arduino+使用Nano制作的下载器


开发板管理器中加入ATmega8

1、打开Arduino IDE


2、菜单中选择“文件”→“首选项”,选择“附加开发板管理地址”按钮。

3、添加网址:

/zixunimg/eeworldimg/mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json

4、打开“开发板管理器”,搜索“ATmega8”,选择版本,安装:

5、另一种方法:从网上下载Arduino ATmega8的支持文件,并按提示安装。


下载方法一:Arduino+USB ISP烧写器+PORGISP烧写软件

一、Arduino:

1、菜单“工具 ”→ “开发板”:选择 “ATmega8r”。

2、菜单“工具 ”→ “BOD” :选择 “Disabled”。

3、菜单“工具 ”→ “Clock”:如果使用外部晶振,选择 “16 MHz external”。如果使用内部RC振荡器,选择“8 MHz internal”。如果没有进行熔丝设置,则选择“1 MHz internal”。

4、菜单“工具 ”→ “Compiler LTO” :选择 “Disabled”。

5、菜单“项目 ”→ “导出已编译的二进制文件”。


二、USB ISP烧写器:

正确连接ATmega8单片机(参考熔丝烧录接法),并接入电脑。


三、PORGISP:

1、选择单片机为ATmega8。

2、菜单“文件 ”→ “调入flash”,选择Arduino中导出的二进制文件。

3、菜单“命令”→ “擦除”。

4、菜单“命令”→ “写入flash”。

5、菜单“命令”→ “校验flash”,校验成功后,即可接上设备看看运行效果了。


下载方法二:Arduino+使用Nano制作的下载器

一、使用Nano制作下载器:

1、将Nano接入电脑,打开Arduino,选择开发板为Nano,选择端口号(Nano的端口号,之后作为ISP下载ATmega8程序时也用这个端口号)。


2、打开示例文件:ArduinoISP

3、将示例文件编译上传,下载器制作完毕。


二、将ATmega8单片机连接到Nano下载器:

ATmega8 Pin 1 接 NanoPin 10(作为RESET接口,注意这里接的不是Nano的RST)

ATmega8 Pin 7 接 Nano 5V

ATmega8 Pin 8 接 Nano GND

ATmega8 Pin 17 接 NanoPin 11(作为MOSI接口)

ATmega8 Pin 18 接 NanoPin 12(作为MISO接口)

ATmega8 Pin 19 接 NanoPin 13(作为SCK接口)

三、在Arduino中下载(上传)程序:

1、菜单“工具 ”→ “开发板”:选择 “ATmega8”。

2、菜单“工具 ”→ “BOD” :选择 “Disabled”。

3、菜单“工具 ”→ “Clock”:如果使用外部晶振,选择 “16 MHz external”。如果使用内部RC振荡器,选择“8 MHz internal”。如果没有进行熔丝设置,则选择“1 MHz internal”。

4、菜单“工具 ”→ “Compiler LTO” :选择 “Disabled”。

5、菜单“工具 ”→ “端口” :选择 Nano 所在端口。

6、菜单“工具 ”→ “编程器”:选择“Arduino as ISP”。

7、菜单“项目 ”→“使用编程器上传”

8、下载(上传)完毕,OK,可以在ATmega8上接入设备试试效果了,HoHo~~。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
AVR M16实验之六 DS18B20测温