本文仅适用于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,是不是又能识别出新硬件、又能欢乐地写入程序了?

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

  1. USBASP下载线制作教程

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

    在CentOS下,我们可以通过yum来下载或更新rpm包,但是标准的源(repository)里只提供一部分的rpm包,虽然大部分情况下,这些包是够用的.但是有时候还是需要下载其他的一些非标准的包,如 ...

  3. 自制单片机之八……USB-ISP下载线

    现在的笔记本包括台式机都渐渐地舍弃了并口.串口:很多网友也跟我说,台式没有并口了,下载线没法用了,让我帮他想想办法.看来做个USB-ISP下载线是势在必行了. 在网上搜了下,主要有两种方案,一种是用F ...

  4. 使用caddy实现非标准端口https

    近来使用Halo搭建博客,并顺便把WeHalo小程序也把玩了起来,但是发现几个非常棘手的问题: 根据访问日志发现有三方在刷取关键接口的请求,http请求在部分情况下会暴露出很显著的安全问题: 小程序强 ...

  5. ESP32-S2原生USB 烧录 TinyUF2 bootloader 加 CircuitPython

    概述 ESP32-S2最令我心仪的改进是原生支持USB,即带有一个集成了收发器的全速 USB OTG 外设,符合 USB 1.1 规范,理论速度1.5m/s,利用得当将会是一个非常巨大的进步. 目前E ...

  6. Python解析非标准JSON(Key值非字符串)

    采集数据的时候经常碰到一些JSON数据的Key值不是字符串,这些数据在JavaScript的上下文中是可以解析的,但在Python中,没有该部分数据的上下文,无法采用json.loads(JSON)的 ...

  7. LATTICE USB下载线接口说明

    这节知识摘抄于网络,仅用几张图片来显示,提醒Usb下载线的连接方式. 最后贴出个人使用的8线的USB下载器的连接方式: 再补充一点,应为彩色杜邦线与USB下载器是活口连接,两个可以分开,再连接的时候, ...

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

    许多js环境都提供检查调用栈的功能.调用栈是指当前正在执行的活动函数链.在某些旧的宿主环境中,每个arguments对象含有两个额外的属性:arguments.callee和arguments.cal ...

  9. Wireshark分析非标准端口号流量

    Wireshark分析非标准端口号流量 2.2.2  分析非标准端口号流量Wireshark分析非标准端口号流量 应用程序运行使用非标准端口号总是网络分析专家最关注的.关注该应用程序是否有意涉及使用非 ...

随机推荐

  1. Fence(codeforces 232D)

    题意: 对于给定的a[1..n],定义区间[s,t]和[x,y]"匹配"当且仅当下列条件同时满足:1. t-s=y-x,即长度相同.3. t<x或s>y,即两区间没有交 ...

  2. pat 甲级 1022. Digital Library (30)

    1022. Digital Library (30) 时间限制 1000 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A Di ...

  3. 【HDOJ5977】Garden of Eden(点分治)

    题意:给定一棵n个点的树,每个节点上有一种颜色a[i],一共有k种颜色,问包含所有颜色的路径条数 n<=5e4,k<=10 思路:点分治求方案数 集合并卷积的时候暴力枚举状态即可O(n^l ...

  4. 遍历页面所有的Checkbox,显示选中的ID

    原文发布时间为:2009-04-13 -- 来源于本人的百度文章 [由搬家工具导入] 1、 foreach (Control objCtrl in this.Page.Controls[3].Cont ...

  5. 补不manjaro系统

    昨天无意间看到:使用不同的主题时,使用midna图标时,关机的按钮和其他的不同,经过摸索,只需要更改替换3个图标即可: (1)进入目录/usr/share/icons/breeze/actions/t ...

  6. 用Python和Pygame写游戏-从入门到精通(py2exe篇)

    这次不是直接讲解下去,而是谈一下如何把我们写的游戏做成一个exe文件,这样一来,用户不需要安装python就可以玩了.扫清了游戏发布一大障碍啊! perl,python,java等编程语言,非常好用, ...

  7. [MySQL] Group Commit理解

    简单的方法理解MySQL Group Commit原理 一个摆渡将乘客从A点传输到B点 MySQL 5.0 行为 在MySQL 5.0中,摆渡会在A点按顺序搭载乘客,并且传送到B点.A点和B点的来回行 ...

  8. 通过ansible一键部署集群ntp时间同步

    环境准备 [root@server ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@server ~]# uname -r  ...

  9. 搜狗拼音输入法LINUX版安装

    搜狗拼音输入法LINUX版官方下载: http://pinyin.sogou.com/linux/?r=pinyin 一.添加fcitx的nightlyPPA 在终端中输入: sudo add-apt ...

  10. Educational Codeforces Round 34 C. Boxes Packing【模拟/STL-map/俄罗斯套娃】

    C. Boxes Packing time limit per test 1 second memory limit per test 256 megabytes input standard inp ...