1、MCU芯片选型
不是所有的Atmega芯片都支持Arduino的,能够使用的芯片大致如下:
Atmega8、Atmega168、Atmega328、Atmega1280、Atmega2560
还有一些ARM芯片也可以,具体支持的芯片型号,请参考官网说明和IDE环境。
2、硬件接口
烧写Bootloader,需要使用ISP接口和烧写器。
ISP接口:有效管脚6个,分别是MOSI、MISO、SCK、Reset、GND、VCC。不同的MCU,其上述管脚的序号也不同,需要查看具体的芯片手册,正确接出ISP接口,才能实现烧写Bootloader.
烧写器:可以使用6类烧写器,分别是:AVR ISP 、AVRISP mkII 、USBtinyISP 、USBasp 、Parallel Programmer 、Arduino as ISP。建议使用最后一个Arduino as ISP,也就是说,可以直接使用手缺逗头上的Arduino开发板作为烧写器,将另一块新的板子烧写悔扮唤Bootloader变成Arduino。当然,使用Arduino as ISP,首先需要将开发环境中,文件->示例->ArduinoISP的程序下载到准备当烧写器的Arduino板卡上,并且正确连线。具体的接线说明碧凯,在ArduinoISP程序的注释段中有描述。
3、准备烧写
当准备好ISP烧写设备,正确连接ISP接口的6根线后,就可以开始烧写Bootloader了。
首先打开Arduino IDE开发环境,在工具->板卡的子菜单中选择正确的板卡型号。具体选择什么板卡,应该按照准备烧写Bootloader的板子的MCU型号来确定。然后在工具->Processor菜单中选择正确的MCU类型。(有些时候,这个菜单不出现)。然后在工具->编程器菜单中选择Arduino as ISP(使用另一块Arduino设备作为ISP烧写器)。最后,在工具菜单中选择烧写Bootloader。注意观察各种指示灯的闪烁情况,等到指示灯由急促的闪烁变成不闪或慢速的闪烁,且IDE提示烧写成功,则表明Bootloader烧写成功。
4、注意事项
烧写器和被烧写的板子的GND必须共地。
烧写时偶尔会出现失败,重新烧写即可成功。若反复失败无法成功,请检查接线是否正确。
你好,如果你的USBasp有壳子,那么需要先拆开它,如果没有壳子,直接上!我们需要找到跳线的地方(短路后,给USBasp升级固件)。我手上有两个USBasp,正如那个帖子所述的,一个是带有彩壳的,一个纳枯是没有壳子的。
在背面,我们需要短接图中两个红色箭头所指的过孔,我用的是尖头镊子,当然,用导线也是可以的,但要保证可靠短路。
没有彩壳的,我们可以看到有两个焊盘,如下图中红色圈圈所示,我们需要短接的就是那两个。我用的还是尖头镊子,你呢?
接下来,我们需要两个USBasp,一个是作为编程器,一个是作为目标(更新芯片上的程序,进行固件升级)。将两个USBasp进行对连,也就是他们ISP的接口:一个的1号脚接另一个的1号脚,一个的2号脚接另一个的2号脚,一一对应,以此类推。当然,你购买编程器的时候,应该会附送一个10p的排线,用那个直接连接即可,如果没有,那就只能用十根杜邦线了。连接完毕后,然后再短路刚才图示的地方(我用的是镊子),接着插到电脑的USB口上。
我们用的还是原先的progisp软件,打开软件界面,在洞李洞器件一栏,选择ATmega8(绝大多数情况,编程器所用的芯片是ATmega8,除非你人品爆发了)。接下来,请保持可靠短路,直到固件更新完毕。我们可以读一下器件序号,如扰腔果提示读出ID成功,如下图所示,那你的接线是妥的,我们可以继续了。
在更新固件之前,我建议你备份下当前的固件,以防万一。也就是读出芯片中的内容,然后保存。做法是:点击progisp软件菜单栏中的“命令”选择,选中下拉菜单中的“读出flash”,如下图所示,稍等片刻,就能读完。然后点击菜单栏中的“文件”,出现下拉菜单后,点击“保存flash”即可,默认是以bin文件形式保存的。这样备份好固件后,即使升级失败,我们也有“后悔药”。
此次 *** 作,是不用修改熔丝位的,因为原先的固件出厂前就修改好熔丝位了。当然,为了以防万一,我把熔丝位读了出来,留图做个备份,熔丝位如下图:
好了,完成了前期工作,真正关键的时刻来了。我们调入附件中的firmware,路径是:usbasp.2011-05-28\usbasp.2011-05-28\bin\firmware\usbasp.atmega8.2011-05-28.hex,然后和以前一样,设置好编程参数:校验flash,芯片擦除和编程flash,其他不要勾选。如下图所示:
然后点击“自动”按钮,稍等片刻,USBasp的固件就更新完毕了!怎么样,其实也不难吧。这时,你需要把编程器从USB口拔出,接着你需要解除刚才短路的地方,从此,USBasp固件更新完成了。
当然,用更新完固件的USBasp可以对另一个USBasp更新固件!也就是说PROGISP软件还可以正常使用,你仍可以用这个软件来对其他芯片烧写程序。
如果你只有一个USBasp,别急,可以用Arduino UNO作为ISP编程器,给USBasp更新固件。
固件更新完毕后,把更新完固件的USBasp插入电脑的USB口,然后把电脑上对应的驱动更新到最新版(附件usbasp-windriver.2011-05-28),最新版本是1.2.4.0。
然后,一劳永逸的时刻到来了!
我们以Arduino UNO为例讲述烧写bootloader的方法。
打开Arduino IDE,选好板子类型为Arduino UNO。
接着,选择编程器为USBasp。
最后点击“Burn Bootloader”即可,稍等片刻就会提示烧写完毕!如下图所示。怎么样,超简单吧,小伙伴们再也不用担心设错熔丝位了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)