认识众多玩家高手/拆客/DIYer,查阅更多资源,一起学习技术知识

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

Arduino是开源的,这很好。想当年在学校时,每当考试时,同学们在考场上都不开源给我,所以学了BASIC、汇编、FOXBASIC、VB都跟没有学似的,看到满屏的字母只能笑。

这几天忽然对atmega328P的了兴趣,有位坛友也发了不少Arduino实验的贴子,但新买来的atmega328P大部分是没有引导程序BOOT LOADER的,必须进行烧写。

下面说说如何烧写。

一、初识atmega328P集成IC

新买来的328P不做特别说明的一般都是没有引导程序BootLoader的,这就要先对328P进行Boot Loader的烧写。下面就如何烧写进行说明。

(一)328P两种封装的脚位对应情况

atmega328P-AU封装脚位

001 atmega328AU封装脚位.png (289.71 KB, 下载次数: 4)

2019-6-11 19:20 上传

atmega328P—PU封装脚位

002 atmega328PU封装脚位.png (302.22 KB, 下载次数: 4)

2019-6-11 19:20 上传

ARDUINO 与两种封装脚位对应关系

003 脚位对应1.jpg (32.33 KB, 下载次数: 0)

2019-6-11 19:21 上传

要注意Arduino PIN和集成块的PIN是不同的。

(二)制作一个最小系统

以AU为例参考图

004 328P AU 最小系统.jpg (58.28 KB, 下载次数: 1)

2019-6-11 19:21 上传

atmega328P-PU的最小系统情况

005 PU最小系统.jpg (107.1 KB, 下载次数: 0)

2019-6-11 19:21 上传

atmega328P-AU封装的使用转接板接出引脚

006 328P001.jpg (42.63 KB, 下载次数: 0)

2019-6-11 19:21 上传

007 328P002.jpg (118.69 KB, 下载次数: 0)

2019-6-11 19:21 上传

008 328P003.jpg (108.2 KB, 下载次数: 0)

2019-6-11 19:21 上传

009 328P004.jpg (112 KB, 下载次数: 0)

2019-6-11 19:21 上传

这时开始的棚搭

328 AU取小系统.jpg (117.7 KB, 下载次数: 0)

2019-6-11 19:20 上传

后来用面包板了

328AU的最小系统情况参考:

010 AU最小系统.jpg (99.45 KB, 下载次数: 2)

2019-6-11 19:21 上传

二、使用USB编程器

关键是设置熔丝位(FUSE)和找对相应的HEX文件。

这里使用的是51单片机的下载器

011 ATMEL-ISP 0.jpg (69.64 KB, 下载次数: 0)

2019-6-11 19:22 上传

安装好驱动

012 驱动.JPG (44.23 KB, 下载次数: 0)

2019-6-11 19:22 上传

与ARDUINO的接线关系

013 下载线接口脚位.jpg (9.92 KB, 下载次数: 0)

2019-6-11 19:22 上传

014 下载线脚位.JPG (17.27 KB, 下载次数: 0)

2019-6-11 19:22 上传

熔丝位和HEX文件的设置在IDE的安装目录中的boards.txt文件中可以找到。

015 BOARDS.JPG (78.13 KB, 下载次数: 0)

2019-6-11 19:22 上传

1.找到相应的熔丝位016 boards.JPG (92.03 KB, 下载次数: 0)

2019-6-11 19:22 上传

在IDE安装目录中..\arduino-nightly\hardware\arduino\avr找到boards.txt文件

这个文件用写字板打开,在“##”后可以找要烧写的“开发板”型号,下面就可以看到低位熔丝、高位熔丝、扩展位、加密位及bootloader.file(HEX文件)。

这是Nano Old Bootloader 的情况:

nano.menu.cpu.atmega328old=ATmega328P (Old Bootloader)

nano.menu.cpu.atmega328old.upload.maximum_size=30720

nano.menu.cpu.atmega328old.upload.maximum_data_size=2048

nano.menu.cpu.atmega328old.upload.speed=57600

nano.menu.cpu.atmega328old.bootloader.low_fuses=0xFF

nano.menu.cpu.atmega328old.bootloader.high_fuses=0xDA

nano.menu.cpu.atmega328old.bootloader.extended_fuses=0xFD

nano.menu.cpu.atmega328old.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex

nano.menu.cpu.atmega328old.build.mcu=atmega328p

2.连接好ISP线,插好USB下载器,打开progisp,017 PORGISP界面说明.jpg (79.11 KB, 下载次数: 0)

2019-6-11 19:22 上传

每项操作,下面的白色窗口都有反馈的,最后的操作在最上现一行显示。

选好片

017 PRO002.JPG (77.24 KB, 下载次数: 0)

2019-6-11 19:22 上传

3.Fuse设置好要点“写入”,然后点“读出”,确保与写入的一样才算写入了

018 fuse.JPG (36.17 KB, 下载次数: 0)

2019-6-11 19:22 上传

4.调入Flash文件。根据

nano.menu.cpu.atmega328old.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex

对应的bootloader文件在IDE的安装目录中可以找到:019 Nano.JPG (34.41 KB, 下载次数: 0)

2019-6-11 19:22 上传

..\arduino-nightly\hardware\arduino\avr\bootloaders\atmega

020 调入FLASH.JPG (73.7 KB, 下载次数: 0)

2019-6-11 19:22 上传

5.检查无误后,点“自动”,窗口最下面的“状态”有提示的

021 下载1.JPG (72.12 KB, 下载次数: 0)

2019-6-11 19:22 上传

022 下载2.JPG (72.22 KB, 下载次数: 0)

2019-6-11 19:22 上传

当下载好后,如果在D13上接有LED,LED会闪的。(只有Nano ATmega328P (old bootloader)会闪,UNO和Nano ATmega328P是不会闪的)

三、使用arduino as ISP方式

如果手上没有下载器,可以使用正常的Arduino UNO开发板作为烧写器给单片机芯片烧写BootLoader。

在这里采用一块Arduino UNO板作为烧写器,讲一下对328P进行Arduino BootLoader 的烧写。

(一)将Arduino UNO板(上位机)变成个ISP设备。

1.将作为烧写器的ArduinoUNO板通过USB线连接到电脑,打开ArduinoIDE 。

2.选择并设置好开发板型号、处理器及COM口。(注意要选择的型号为作为上位机的Arduino 型号)023 ideISP.JPG (60.91 KB, 下载次数: 0)

2019-6-11 19:22 上传

3.在工具栏选择 —〉文件->示例—〉11.Arduino ISP —〉ArduinoISP,打开ArduinoISP程序,编译(验证)、下载到UNO开发板中。

4.在工具栏选择—〉工具—〉编程器—〉Arduino as ISP。

024 as ISP.JPG (89.66 KB, 下载次数: 0)

2019-6-11 19:22 上传

到此,上位机就成了一个ISP下载器了。

(二)连接线路

连接好上位机与下位机的线,下位机的电源和地要与上位机连接。

在ArduinoISP 程序的73、85、86、87行给出了UNO板作为ISP的接线:

D10—〉RESET

D11—〉MOSI

D12—〉MISO

D13—〉SCK

对应接线情况:

025 Arduino as ISP接线.jpg (16.22 KB, 下载次数: 0)

2019-6-11 19:22 上传

如果上位机是Nano则在reset与地接一个10UF的电容(我试过4.7-100uF都可以)。网上说UNO接这个电容,其实UNO不用接的。

(三)进行烧写

在工具栏选择—〉工具—〉烧录引导程序。

026 ISP烧录.JPG (67.87 KB, 下载次数: 0)

2019-6-11 19:22 上传

6.等待完成

027 烧录完成.JPG (61.46 KB, 下载次数: 0)

2019-6-11 19:22 上传

如果是Nano ATmega328P (oldbootloader)D13上接有LED,LED会闪的。

四、验证

(一)使用CH340等,通过TX、RX下载程序进行验证

1.电路连接:

029 TTL下载接线.JPG (19.54 KB, 下载次数: 0)

2019-6-11 19:22 上传

目标板上的RESET通过1K电阻上拉到VCC(5V)。RESET串10UF电容,接到CH340的DTR或RTS,可以自动下载。我接的是220UF的,稳定下载

如果没有串电容,等IDE提示“上传”时,RESET对地短路一下也可。就是按一下复位键。隔壁的图

028 ch340.png (22.35 KB, 下载次数: 0)

2019-6-11 19:22 上传

2.选择并设置好开发板型号、处理器及COM口。(注意要选择的型号为刚烧写的Arduino 型号)为了区别示例的Blink,下载了一个“SOS”

(二)使用Arduino作为ISP上传

保持上面Arduino作为ISP设备的姿势(接线不要动)。

打开验证程序

030 SOS.JPG (61.72 KB, 下载次数: 0)

2019-6-11 19:22 上传

在工具栏选择—〉项目—〉使用编程器上传。031 as ISP y.JPG (63.21 KB, 下载次数: 0)

2019-6-11 19:22 上传

也可以按着shift键,用鼠标点上传图标(右箭头)031 SOS.JPG (62.2 KB, 下载次数: 0)

2019-6-11 19:22 上传

下载成功后观察。

当然可能用下图这个验证

032.jpg (443.14 KB, 下载次数: 0)

2019-6-11 19:22 上传

下面这个是双灯。一个是SOS,一个是呼吸灯,同时闪

044.jpg (97.72 KB, 下载次数: 0)

2019-6-11 19:24 上传

费心作了两个板子进行实验

055.jpg (128.5 KB, 下载次数: 0)

2019-6-11 19:24 上传

下面这个上位机是NANO,所以在RESET与GND之间接了一个电容,

066.jpg (85.58 KB, 下载次数: 0)

2019-6-11 19:24 上传

楼下对熔丝配置的说明,网上收集的

next

atmega168p与328p_atmega328P 写入 Boot Loader的那点事相关推荐

  1. 嵌入式系统 Boot Loader 技术内幕-目前看到介绍Boot loader最通俗明了的文章

    1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行.一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序.包括固化在固件(firmware) ...

  2. 嵌入式系统 Boot Loader 技术内幕

    转载:http://www.ibm.com/developerworks/cn/linux/l-btloader/index.html 1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统已经 ...

  3. 如何通过网络将文件传输到嵌入式设备_嵌入式系统 Boot Loader技术内幕,带你完全了解Boot Loader...

    一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:1. 引导加载程序.包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分.2. Linu ...

  4. scanf 在uefi中调用_BIOS、UEFI、Boot Loader都是些什么

    什么是BIOS Basic Input Output System (基本输入输出系统) 其实就是一组保存着计算机最重要的 基本输入输出的程序 . 开机后自检程序 . 系统自启动程序 , 并固化到计算 ...

  5. Boot Loader 的设计与实现

    <script type="text/javascript"></script> 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行.一个嵌 ...

  6. Linux学习-Boot Loader: Grub2

    boot loader 的两个 stage 在 BIOS 读完信息后,接下来就是会到第一个开机装置 的 MBR 去读取 boot loader 了.这个 boot loader 可以具有选单功能.直接 ...

  7. BIOS、UEFI、Boot Loader都是些什么

    BIOS.UEFI.Boot Loader都是些什么 文章目录 BIOS.UEFI.Boot Loader都是些什么 什么是BIOS 基本的输入输出是什么 自检程序"检"了什么 系 ...

  8. 嵌入式系统 Boot Loader 技术

    文章目录 1. 引言 2. Boot Loader 的概念 2.1 Boot Loader所支持的CPU与嵌入式开发板 2.2 Boot Loader的安装媒介(Installation Medium ...

  9. Boot Loader

    什么是Boot loader? Boot loader(系统引导程序),操作系统内核运行之前运行的一段程序.它首先完成系统硬件的初始化,包括时钟的设置.存储区的映射等,设置堆栈指针等:然后把操作系统内 ...

  10. boot loader:Grub

    boot loader是载入内核的重要工具,没有boot loader的话,kernel根本没办法被内核加载的 MBR是整个硬盘的第一个sector内的一个块,大小只有446bytes.但loader ...

最新文章

  1. 腾讯布局移动应用商店 总下载量累计达40亿次
  2. 90 后利用平台漏洞薅羊毛,获利 45 万被抓捕!网友们却争论不休……
  3. android DataBind LiveData ViewModel 使用详解
  4. 程序员提升编程效率的十五点建议!
  5. idea的2020.2版本
  6. VC2008中处理CStatic控件的单击STN_CLICKED消息
  7. html video显示进度条_使用 tqdm 在 Python 应用中显示进度 | Linux 中国
  8. 好用的python学习软件_5种好用的Python工具!Python学习分析
  9. 基于visual Studio2013解决C语言竞赛题之1083人机博弈
  10. eclipse svn插件安装_PHP 安装
  11. 解决cmd命令行窗口和 powershell 汉字显示乱码问题
  12. DevOps使用教程 华为云(1)用Scrum框架 新建项目
  13. mysql数据库自动添加编号_mysql数据库自动添加编号
  14. 冒泡排序(C语言代码介绍)
  15. 【Mimics】基于心脏ct影像重建3d模型 孔洞修复平滑处理 及 合并导出
  16. oracle cude报错,【案例】Oracle报错PLS-00597 PLS-00635原因和解决办法笔记
  17. 阵列卡服务器装linux,Linux网卡阵列卡安装
  18. D. Binary Spiders(思维+字典树)
  19. He's a Pirate---David Garrett
  20. win10系统自带清除磁盘垃圾工具———磁盘清理工具

热门文章

  1. vue——回到顶部监听滚动事件
  2. css文件更新后浏览器网页仍然显示以前的页面解决方法
  3. 计算机启动dos,开机怎么进入dos_开机怎么进入dos界面
  4. 冰封王座人工只能_《冰封王座》地图:重装机兵MMR【V1.42回归版】
  5. 鸿蒙系统全屋定制,华为推出鸿蒙 1+2+N 全屋智能、智慧屏 V 系列,还有一款陪伴机器人小艺精灵...
  6. 什么是YottaChain存储,为什么说是未来数据存储的趋势?
  7. python 微博自动点赞软件_python3 爬虫学习: 自动给你心上人的微博点赞
  8. 基于MATLAB的汽车出入库计时系统 _matlab课程设计
  9. 计算机病毒445端口,关闭135 445端口_445端口关闭方法_怎么防止电脑中勒索病毒
  10. 解释PBR纹理贴图(texture-maps)