赞
踩
前言:由于自己的一号机3D打印机工作范围实在太小,再加上是Delta结构的,实在懒得再改了,索性重新设计一台新的机器,采用UM2结构。然后在下载marlin2.X的固件时候把mega2560的bootloader搞出问题了,不得以开始研究烧录arduino的bootloader。
首先是成本问题,如果手上有额外的Arduino,可以直接使用Arduino下载ArduinoISP程序到使用Arduino给另一个烧录bootloader,这个方案可以说是最省的(前提是有多余的)
第二个方法是使用使用AVR USB tiny ISP 烧写,但是现在的价格都不便宜,就算了。
最后选择了使用使用AVR 下载器(烧录器)烧写,主要是便宜,15元左右就可以搞到一个,就是使用起来有许多要注意的事项。
1、不同的USB-ISP能烧录的芯片是不同的,买之前最好向店家问清楚;
2、烧录使用的软件版本,个人感觉是版本越高越好,低版本的烧录会出现校验失败的情况,虽然测试bootloader确实是烧录进去了。
3、烧录前一定要检查熔丝位有没有搞错;
USB-ISP一个,杜邦线若干,烧录软件
软件我使用的是progisp2.0的版本
progisp2.0提取码: 7p64
注意5V和GND不要接反了。
1:选择需要烧入的芯片,这里以mega2560作为例子。可以选择RD键读取芯片ID,读取成功说明连接成功;
2:提供电源勾选上;
3:调入Flash,选择需要烧录的bootloader的hex文件,以mega2560为例,只要安装了ArduinoIDE,可以从\Arduino\hardware\arduino\avr\bootloaders\stk500v2这里找到stk500boot_v2_mega2560.hex,其他avr芯片也可以从这个目录里找到;
4:勾选芯片擦除,编程FLASH,校验FLASH,编程熔丝。
关于熔丝设置可以从)\Arduino\hardware\arduino\avr下的boards文件可以找到说明,还是以mega2560为例,可以在这个文件里找到
megaADK.bootloader.tool=avrdude
megaADK.bootloader.low_fuses=0xFF//熔丝低位
megaADK.bootloader.high_fuses=0xD8//熔丝高位
megaADK.bootloader.extended_fuses=0xFD//拓展位值
megaADK.bootloader.file=stk500v2/stk500boot_v2_mega2560.hex
megaADK.bootloader.unlock_bits=0x3F
megaADK.bootloader.lock_bits=0x0F
修改完成后直接关掉就行
最后说下在使用PlatformIO时候下载marlin2.1的时候,读取和写入都是正常的最后校验的时候报错了。。。
但是吧,给mega2560上电,确实是程序是可以正常跑起来的,希望有人能帮我解答下这个校验失败是怎么回事。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。