本文仅适用于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. Codeforces 460D. Little Victor and Set

    D. Little Victor and Set time limit per test:1 second memory limit per test:256 megabytes input:stan ...

  2. [Codeforces Round #351 Div. 2] 673A Bear and Game

    A. Bear and Game time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  3. Dictionary字典类使用范例

    原文发布时间为:2009-11-04 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Web.UI.WebControls;using System ...

  4. AspNetPager分页控件的使用以及常见错误

    原文发布时间为:2009-05-25 -- 来源于本人的百度文章 [由搬家工具导入] 【Repeater采用AspNetPager分页成功↓】 using System;using System.Co ...

  5. win10易升卸载

  6. Spring Boot学习——Spring Boot简介

    最近工作中需要使用到Spring Boot,但是以前工作中没有用到过Spring Boot,所以需要学习下Spring Boot.本系列笔记是笔者学习Spring Boot的笔记,有错误和不足之处,请 ...

  7. 只用一次循环开销 将类似 1 A 、1 B 的数据返回成为 1 A,B 的拼接形式

    /// <summary> ///将类似 1 A .1 B 的数据返回成为 1 A,B 的拼接形式 /// </summary> /// <param name=&quo ...

  8. codevs——2841 愤怒的LJF(背包)

    样例有误!  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description LJF发现ZPC的积分比他高,他很愤怒. 他挤出T ...

  9. Longest Valid Parentheses - LeetCode

    Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...

  10. 实现一个Java五子棋

    五子棋手把手教你写: 写在前面的话: 回想起从前初学代码的五子棋简直写的不像样子.今天闲来无事就写了个五子棋的小程序. 一来呢回忆一下很久以前写代码时的感觉. 二来呢顺便帮下诸位有需求的学生,顺利的C ...