非标准USBasp下载线烧录Arduino BootLoader的参数设置

本文仅适用于BootLoader损坏且买到国产“免驱USBasp下载线”导致Arduino IDE无法识别从而不能烧写的情况。是一种略显非主流的操作方式。

因为Arduino的IDE并不支持这种免驱的USBasp线,会提示错误。

事情的全程是这样的:

1.症状

用Arduino控制舵机不慎玩脱了,插入电脑时,在“设备管理器”中没有串口提示,用Arduino IDE无法下载程序到电路板中,提示找不到COM口。而且电脑也找不到串口。估计是BootLoader损坏了,准备用USBasp下载线重新烧录。

2.准备解决

之前的标准USBasp下载线送给了表弟,只好再买一根。买了个“国产免驱动”的下载线,倒是省了安装驱动了。插到电脑上之后并不生成串口号,只是识别为了一个USB-HID设备,如图。

普通的USBasp线有10个引脚,Arduino只有6个。但只要引脚接对了,还是能适配的。用杜邦线两两连接以下引脚:MOSI,VCC,RST,SCK,MISO,GND。

不幸的是,由于Arduino IDE的"高端大气国际范儿",根本识别不到这种修改过固件的“中国特色”USBasp下载线,用常规方法根本无法进行烧录操作,显示错误“could not find USB device "USBasp" ”“avrdude: stk500_getsync(): not in sync: resp=0x00”,无法连接。

3.拨云见日

归根结底,Arduino不就是一个Atmega 328P单片机和外围电路嘛,BootLoader也不过是单片机的一个FLASH文件,何必要依靠Arduino IDE呢!(说是这么说,当时写不进去的时候还是有点惊慌的…) 冷静,冷静。既然有了下载线,我们就按单片机的玩法,直接下载编译好的FLASH文件。但Arduino UNO的FLASH是哪个呢?没有官方列表中支持的下载器怎么办?

这种国产免驱动的下载线,可以用PROGISP这款软件。(AVR fighter似乎也能用,但是所支持的芯片类型数目似乎没有PROGISP多)

下载软件选好了,但软件里一堆的参数应当如何设置?在Arduino的文件夹里已经有了说明。以我的为例,“E:\arduino-1.0.5-r2\hardware\arduino”文件夹中的boards.txt里面包含了各种型号Arduino的参数,我的是Arduino UNO,文件里对应记载参数如下:

##############################################################

uno.name=Arduino Uno

uno.upload.protocol=arduino

uno.upload.maximum_size=32256

uno.upload.speed=115200

uno.bootloader.low_fuses=0xff

uno.bootloader.high_fuses=0xde

uno.bootloader.extended_fuses=0x05

uno.bootloader.path=optiboot

uno.bootloader.file=optiboot_atmega328.hex

uno.bootloader.unlock_bits=0x3F

uno.bootloader.lock_bits=0x0F

uno.build.mcu=atmega328p

uno.build.f_cpu=16000000L

uno.build.core=arduino

uno.build.variant=standard

##############################################################

这里并不用完全记住,设定几个关键值即可:

1.用杜邦线对应连接arduino与USBasp下载线的以下引脚:MOSI,VCC,RST,SCK,MISO,GND。

下载线插入电脑,打开PROGISP软件,FLASH文件选择“E:\arduino-1.0.5-r2\hardware\arduino\bootloaders\optiboot”文件夹里的“optiboot_atmega328.hex”。

2.上面列表中的low_fuses=0xff(低熔丝位),high_fuses=0xde(高熔丝位),extended_fuses=0x05(扩展熔丝位)这三个要在PROGISP里面设置好。

3.点击软件“自动”,即开始自动擦除,复位,烧写,设置熔丝位等一系列操作了。十几秒之后提示完成。

然后拔掉下载线,用USB线连接电脑和Arduino,是不是又能识别出新硬件、又能欢乐地写入程序了?

时间: 2024-12-28 11:26:35

非标准USBasp下载线烧录Arduino BootLoader的参数设置的相关文章

国产免驱USBasp下载线烧录Arduino BootLoader的方法

本文仅适用于BootLoader损坏且买到国产免驱USBasp下载线导致IDE无法识别从而不能烧写的情况.是一种略显非主流的操作方式. 因为Arduino的IDE并不支持这种免驱的USBasp线,会提示错误. 事情的全程是这样的: 1.症状 用Arduino控制舵机不慎玩脱了,插入电脑时,在“设备管理器”中没有串口提示,用Arduino IDE无法下载程序到电路板中,提示找不到COM口.而且电脑也找不到串口.估计是BootLoader损坏了,准备用USBasp下载线重新烧录. 2.准备解决 之前

USBASP下载线制作教程

转 在无法通过yum下载非标准包时,怎么办

在CentOS下,我们可以通过yum来下载或更新rpm包,但是标准的源(repository)里只提供一部分的rpm包,虽然大部分情况下,这些包是够用的.但是有时候还是需要下载其他的一些非标准的包,如qemu,不然的话用户只能自己去编译对应的包,而这个可能并不是每个用户都乐意去做的.下面的网站就提供了对应的额外包的安装.http://repoforge.org/RepoForge项目给以下项目维护RPM包: Red Hat Enterprise Linux (RHEL) CentOS Scien

使用了非标准扩展:“xxx”使用 SEH,并且“xxx”有析构函数

如果一个函数内使用了异常处理机制, VC 编译器在编译该函数时,它会给此函数插入一些“代码和信息”(代码指的是当该函数中出现异常时的回调函数,而信息主要是指与异常出现相关的一些必要的链表),因此每份函数只能有一份这样的东东(“代码和信息”),故一个函数只能采用一种形式的异常处理规则. 上图中黄色部分就是新添加的异常信息,通过stack unwinding来实现局部变量的析构函数自动调用.所以在析构函数中不能抛出异常(http://publib.boulder.ibm.com/infocenter

[Effective JavaScript 笔记]第29条:避免使用非标准的栈检查属性

许多js环境都提供检查调用栈的功能.调用栈是指当前正在执行的活动函数链.在某些旧的宿主环境中,每个arguments对象含有两个额外的属性:arguments.callee和arguments.caller.前者指向使用该arguments对象被调用的函数.后者指向调用该arguments对象被调用的函数的函数.许多环境支持arguments.callee,但它除了允许匿名函数递归地引用自身之外,没有更多的用途了.(高3中认为使用arguments.callee可以解除函数体内的代码和函数名之间

PICC国际标准ISO14443下载

ISO 14443:第一部分规定了PICC的物理特性.接近卡(PICC)国际标准ISO14443-1点击下载 ISO 14443:第二部分规定了PICC的射频功率和信号接口. 接近卡(PICC)国际标准ISO14443-2点击下载 ISO 14443:第三部分规定了PICC的的初始化和防冲突算法. 接近卡(PICC)国际标准ISO14443-3点击下载 ISO 14443:第四部分规定了PICC的的初始化和防冲突算法. 接近卡(PICC)国际标准ISO14443-4点击下载 PICC国际标准IS

VICC国际标准ISO15693下载

疏耦合卡(VICC)国际标准ISO15693-1点击下载 疏耦合卡(VICC)国际标准ISO15693-2点击下载 疏耦合卡(VICC)国际标准ISO15693-3点击下载 VICC国际标准ISO15693下载,布布扣,bubuko.com

关于战舰STM32用PL2303下载线下载和BOOT的软件相关控制

以下内容可能有一些错误什么的,欢迎各位同学指正. 关于战舰STM32开发板上的BOOT0和BOOT1,很多人会有疑问,特别是软件mcuisp上为什么是DTR的低电平,RTS的高电平进入下载模式,先不管硬件上的BOOT0和BOOT1连接. 要了解BOOT0和BOOT1,首先要知道有三种模式, (1)BOOT0接高电平,BOOT1接低电平,如果此时RESET   I/O口产生复位信号,软件上点击下载,此时会把程序烧写进32里面 (2)BOOT0接低电平,BOOT1接低电平,如果此时RESET I/O

[Q]非标准图纸(加长图)的打印时如何自定纸张尺寸

问:当打印机纸张列表里没有符合要求的纸张大小,例如如何打印加长图?答:当打印非标准图框时,你可能在图纸列表里找不到想要纸幅.你需要自己新建你需要的纸幅,以pdfFactory虚拟打印机为例(其它打印机类似):在“控制面板”>“打印机和传真”>“pdfFactory Pro”>“打印首选项”>“自定义”下设置自定义纸张名称和大小,修改后需关闭AutoCAD后重新打开即可,如下图所示: