极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 70530|回复: 30

新手帖 用ARDUINO给MEGA2560刷BOOT

[复制链接]
发表于 2013-5-12 00:49:47 | 显示全部楼层 |阅读模式
本帖最后由 darkorigin 于 2013-5-12 00:50 编辑

首先对张老师在之前28J60模块调试中给予的帮助以及在此次刷BOOTLOADER中给予的帮助表示感谢!

之前一直怀疑自己的2560因为BOOT版本的原因导致28J60工作不正常

接着由于这个小项目的推进,购买了张老师的mircoduino以及其他模块若干(由于和此文无关暂且带过不表)
接着在论坛里面搜索了2560的刷BOOT过程(中间还无耻的拜了度娘),于是发现不管是各位大神还是各大论坛的ARDUINO教程中刷写ARDUINO主要集中在328P以及其他更廉价的模块,甚至是AVR芯片本身(于是各种构建于面包板的ARDUINO诞生了)
唯独看不见的就是1280以及2560的相关刷法。

经过了请教zcbzjx , 看ARDUINO的图纸,参考2560图纸,等等过程,算是绕了很多圈圈,最终将2560的BOOT成功的刷进去了。。。

备注: 以下称UNO(用来做ARDUINO刷写器的板子)为 UNO ,待刷的板子称作 MEGA;


下面贴出我实现的过程:

材料 :
mircoduino (其他所有兼容UNO的模块均可)  作为ARDUINO  ISP例程 的载体
ARDUINO 2560mega (1280同2560 刷法一样) 作为待刷 BOOTLODER的ARDUINO
杜邦线(其实就是做实验的面包板线)6根

刷写过程:
1. 首先 使用ARDUINO 最新版本的IDE 打开FILE -  Examples -  Arduino ISP 并且按照文末的提示修改代码(算是一个小BUG)
2. 按照连接图连接好主从机(就是UNO和MEGA连接的关系),一定要确认之后再进行连接(连接过程之前拔掉2块板子的供电和COM口,仔细确认后UNO连接USB供电 此时MEGA已经不需要外部电源了,直接由UNO供电和重启),有些错误将导致硬件损坏;
3.检查你的COM口设置。COM口选择你UNO的端口()
   BOAD选择 目标板的型号比如:MEGA (2560或者1280)
4.  打开 TOOLS --- Burn  Bootloader
等待(大概5分钟,没计算时间)

刷好之后UNO会直接给MEGA发送重启的信号, 此时MEGA会如同新生一样,开始了第一个代码(13管脚闪灯代码) 看到13脚的LED闪烁  MEGA刷机就完成了。

连接图:(之前就是因为连接方式的原因,纠结了几个小时,于是万用表,各种图纸,度娘 纷纷出马, 最后发现居然就在ARDUINO ISP程序的注释部分已经列出了接法)

pin name:    not-mega:         mega(1280 and 2560)
slave reset:  10:                    53
MOSI:          11:                    51
MISO:          12:                    50
SCK:            13:                    52

具体连接方式
UNO                      MEGA
    VCC    -------------VCC(不用怀疑 不是VIN 是VCC 实测那个6脚ICMP的2口就是VCC)
    GND   -------------GND
    D10脚------------- Reset(没错 就是VCC前面的脚 用来重新被刷的板子)
  D11脚------------- 51脚  (含义:MOSI)
  D12脚------------- 50脚  (含义:MISO)
  D13脚------------- 52脚  (含义 SCK 时钟)

要点:

首先 使用ARDUINO 最新版本的IDE 打开FILE -  Examples -  Arduino ISP
好吧 。很多同学看到这里,就会毫不犹豫的把UNO给刷上,然后连上线直接刷MEGA了,最后会有一个小惊喜(我卖个关子 后面细说)
由于1.0以后的BOOTLADER启动时间的缩短,校验固件有效性的时间也需要提前了,所以 ISP的代码要修改:
搜索heartbeat() 函数 函数末尾的 delay(40);修改成delay(20); 否则刷完之后会提示


其实仔细的看结果会发现只是校验出错;

其实反之也一样 2560给 328P刷BOOT接线方式:
mega    uno
D51  接 D11;
D50  接 D12;
D52  接 D13;
D53  接 RESET;
VCC  接 VCC;
GND 接 GND;
最后附上ICMP脚的连接图(这样就可以忽略被刷的MEGA和UNO管脚的区别了)

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2013-5-12 00:51:24 | 显示全部楼层
自己占楼 以备后用!
回复 支持 反对

使用道具 举报

发表于 2013-5-12 07:37:23 | 显示全部楼层
本帖最后由 zcbzjx 于 2013-5-12 07:45 编辑

为什么我修理一个盆友的2560用arduinoisp一直没刷进去嘞,接线肯定没错的啊,用最新的版本的ide,delay也是默认用的20,不用修改的,刷644pa 1284p都没问题啊。。。。最后用usbasp才刷入。。。我今天再试试。
回复 支持 反对

使用道具 举报

发表于 2013-5-12 15:11:27 | 显示全部楼层
拍一个视频教程解说一下,越详细越好,拜托了,强烈支持你
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-12 21:40:41 | 显示全部楼层
伟创电子工作室 发表于 2013-5-12 15:11
拍一个视频教程解说一下,越详细越好,拜托了,强烈支持你

过程其实很简单,肯花时间去读ARDUINO.CC里面例程区里的那个帖子,然后再看看里面对应的脚就好了
而且我已经标注好脚了。 主要就是往一个好的ARDUINO里面写arduino SP程序,然后接线并检查连线和设置,最后就是点击烧写。 等待就好。

我主要是绕了弯路,找管脚对应关系找了半天。。。 然后自己不放心的排查了线路查了3次,确认线路无误就刷了。刷完之后看到 2560的D13LED在规律的闪动我就知道有戏。因为这个是默认的那个闪灯程序在运行了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-12 21:41:56 | 显示全部楼层
伟创电子工作室 发表于 2013-5-12 15:11
拍一个视频教程解说一下,越详细越好,拜托了,强烈支持你

视频方面,因为设备有限。。。(没钱买单反,家里的光线不好老相机拍摄视频是糊的)
而且开始弄的时候也没拍 只是截图截了几张
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-12 21:43:04 | 显示全部楼层
伟创电子工作室 发表于 2013-5-12 15:11
拍一个视频教程解说一下,越详细越好,拜托了,强烈支持你

一般没问题不用刷(有风险的。玩意接错脚了,刷失败了 要用专门的ISP刷回来的)
如果遇到问题可以联系我,我会尽量帮你
回复 支持 反对

使用道具 举报

发表于 2013-6-3 12:08:17 | 显示全部楼层
请教一下,我用uno给2560刷bootloader:

线 rst并不在VCC的对面啊,在isp接口的对角线上,可是发现还是刷不了:

报错如下:




请问该如何解决呢?求指教!非常感谢!

六针isp接线图:



本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-3 22:52:24 | 显示全部楼层
恺之 发表于 2013-6-3 12:08
请教一下,我用uno给2560刷bootloader:

线 rst并不在VCC的对面啊,在isp接口的对角线上,可是发现还是刷 ...

按说我那个图是对的。 那个是ARDUINO官网公布的。
你不放心用万用表测试一下(欧姆档) 直接能测试出来的。

还有就是你看下2560 R3版的有2个6pin口。分别是给16U2或者8U2那个和2560刷固件的。
老版本的可以用来自己给自己刷(用6PIN头连接2个口)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-3 22:54:35 | 显示全部楼层
pin name:    not-mega:         mega(1280 and 2560)
slave reset:  10:                    53
MOSI:          11:                    51
MISO:          12:                    50
SCK:            13:                    52

直接是UNO的10口连接2560的53口
             11                 51
MOSI:           11:                 51
MISO:           12:                 50
SCK:             13:                 52
VCC             VCC                VCC
GND             GND             GND
回复 支持 反对

使用道具 举报

发表于 2013-6-4 21:55:02 | 显示全部楼层
darkorigin 发表于 2013-6-3 22:54
pin name:    not-mega:         mega(1280 and 2560)
slave reset:  10:                    53
MOSI:  ...

请问uno的10脚到底是接2560的53还是reset?又晕了……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-4 23:21:16 | 显示全部楼层
恺之 发表于 2013-6-4 21:55
请问uno的10脚到底是接2560的53还是reset?又晕了……

当然reset
因为ARDUINO ISP需要用10脚给2560一个复位信号,重启副板 并且检测固件的有效性
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-4 23:23:10 | 显示全部楼层
恺之 发表于 2013-6-4 21:55
请问uno的10脚到底是接2560的53还是reset?又晕了……

slave reset 这句话 意思就是从板(UNO作为主要的刷机程序板,2560作为从板)
从板要接reset
回复 支持 反对

使用道具 举报

发表于 2013-6-5 10:24:12 | 显示全部楼层
努力赚分ing....
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-5 11:02:37 | 显示全部楼层
hymeeg 发表于 2013-6-5 10:24
努力赚分ing....

你太强了  有了你,我也多赚了1分啊~~~~~哈哈~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 21:10 , Processed in 0.042320 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表