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

    xiaoxiao2021-03-25  90


    【基础介绍篇】


    材料准备:

    ATMEGA8-16PU 单片机。直接通过ISP编程器进行程序下载,所以不需要烧录Bootloader。(可选)USB ISP 编程器(如果没有编程器,则用Nano制作下载器,并用芯片出厂默认熔丝参数进行编译下载即可)。(可选)16M晶振一个,22pF陶瓷电容两个(如果使用外部晶振,则9、10针接外部晶振两脚,并各串联22pF电容后接地)。(可选)0.1uF 去耦电容一个(实际应用中,要在VCC与GND之间加个去耦电容:VCC←→电容←→GND)。

    ATMEGA8-16PU 单片机针脚图示

    参考资料

    http://www.geek-workshop.com/thread-25004-1-1.htmlhttp://aguegu.net/?p=420http://www.geek-workshop.com/thread-1647-1-1.htmlhttp://blog.csdn.net/ki1381/article/details/53189218http://www.51hei.com/arduino/4164.htmlhttp://www.guokr.com/post/452562/http://tieba.baidu.com/p/2426030974

    【熔丝烧录篇】


    说明

    1、如果使用出厂默认设置,则跳过此篇。 2、如果不熔丝,则在程序下载时,要按照出厂默认值设置开发板。 3、关于正确配置AVR熔丝位,参考文章:http://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接线

    USB-ISP针脚ATMega8针脚1 MOSI17 PB3(MOSI)2 VCC7 VCC5 RST1 RESET7 SCK19 SCK9 MISO18 PB4 (MISO)4 (或 6、8、10) GND8(或 22) GND如果使用外部晶振:9、10 接16M外部晶振两脚,并各串联22pF电容后接地,如下图

    熔丝烧录

    根据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、添加网址:

    https://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 5VATmega8 Pin 8 接 Nano GNDATmega8 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~~。

    转载请注明原文地址: https://ju.6miu.com/read-32181.html

    最新回复(0)