2018版USBASP烧录器改通用版教程
✨今天来改造的是下面这种AVR编程器,在某宝上售卖的目前基本都是“智峰”的USBasp编程器的程序固件,虽然免驱,但只能用智峰的下载软件progisp,通用版的AVR烧录软件识别的是国际版USBasp,也就是说虽然都是USBasp,但固件和驱动完全不一样(这也是为什么很多的USBasp不能在Linux上对AVR单片机烧录程序的原因),不过在此之前也有这个的改造教程在网上,不过那是对2014版的改造,2018版的PCB电路有所不同和差异。
🎯改公版的利弊说明
- 🌿该为公版USBASP烧录器后,不能继续使用
智峰的progisp软件
来进行程序烧录。 - 🌿可以使用
AVRDUDESS
软件,进行烧录,不改的话不能使用这个软件烧录。 - 🌿如果是使用Arduino IDE开发,那么推荐改公版,该为公版后,可以直接通过Arduino IDE,目标芯片通过icsp接口连接,可以直接进行烧录。
📝本次改造的教程只针对下面这种带金属壳的,因为我手上只购买了这种带壳的,不带壳的主控采用的是atmega8A
,而带壳的采用的主控是atmega88v
✨MEGA88与MEGA8的区别:
- 🌿MEGA88是MEGA8的升级版。(带壳版的MEGA88V比不带壳版的MEGA8A的还便宜一些)
- 🌿MEGA88与MEGA88V的区别问题,带V的是低电压版
- 🔖国内免驱版的USBASP,这个类似
STC8
和STC32
系列的支持的所谓免串口,USB下载识别的也是这个HID
标准的设备信息。
- USBASP通用版识别的设备信息
🔰2014版和2018版差异
- 🌿2018版(目前市面所售卖的这种),上面标识的是:
MX-U2BLSP-V5.00
- 🌿2014版:
📓2014版的改造教程说明
🍁因为网上有前辈已经给出了详细的改造教程就不在说明了,如果要改造2014版的给大家推荐看;
📋2018版的改造教程
🔨需要准备2个usbasp才行,一个给另外一个进行改造升级。目前市场价:10RMB/个
📑改造前的准备工作
-
将需要改造的usbasp烧录器,对板子上丝印的
up
标识的两个过孔进行短接(PB2和PC6短接):
-
拆除PCB板正面的
0
欧姆电阻:(位置在丝印A的下方,如图)
-
将另一个usbasp烧录器用配送的烧录线对接起来。
借个2014版的图来表述一下,因为我制作的时候没有来得及拍照,做完就拆卸掉了。防呆的插头线应该不会插错的吧。
4 将智峰
的usbasp烧录器插入电脑,待改造的不要
插电脑上。
5 打开烧录软件progisp1.72
- 烧录软件相关资源
https://pan.baidu.com/s/1VphJGuKmaVEu1d7TxGG1Ig
提取码:1234
- 通用版usbasp固件下载地址:https://www.fischl.de/usbasp/
- 根据自己手上的usbasp主控是什么型号的就选择对应型号的Hex文件
- 烧写熔丝位
- 不同的主控芯片型号烧写的熔丝位不一样:
# TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
# TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
# TARGET=atmega88 HFUSE=0xdd LFUSE=0xff
- 烧写flash程序
⛳ 安装驱动:
拔掉智峰USBasp,插上改造后的USBasp,电脑会提示安装驱动失败或其他提示(也有提示成功的,为保万一还是再装一下,因为驱动有3种),忽略。
- 还是上面的网站:https://www.fischl.de/usbasp/
🔰驱动类型选择:libusb 和WinUSB类型(更新补充说明,2024-9-13)
- 📍参考说明:
https://electronics.stackexchange.com/questions/416714/avrdude-does-not-recognize-usbasp-device/417509#417509
on most places on the internet you will be instructed to install the libusbK driver, which doesn’t work, use the libusb-win32 variant instead
make sure the AVRDUDE.EXE tool is the latest version (the older doesn’t work with the newer USB drivers for some reason)
in case of using a clone (for instance having “Van Ooijen’s technische informatica” as vendor id instead of the original name “www.fischl.de”), make sure to use the -c usbasp-clone -P usb AVRDUDE settings instead of -c usbap -P usb. The clone setting causes AVRDUDE to ignore the vendor description and also accept the clone. You’d think having the correct VID, PID combination would be sufficient but no…
-
🥕个人测试2个驱动类型,安装其中任意一个都可以工作,个人使用推荐WinUSB,个人所使用的是Window10系统,如果发现安装的WinUSB驱动,无法烧录或连接成功,可以更换驱动类型做尝试。由于每个人的电脑使用环境差异,根据实际情况选择。✨大家在打驱动时注意这一个点。✨
-
🌿打开
Zadig
选择 Options->List All Devices
-
🌿在下拉框中选择USBasp(一定不要选错)
绿色箭头右侧选择为WinUSB
然后Install Driver(我已经安装过了,所以显示为Reinstall Driver)
到这里为止,已经改造完毕,可以重新插上改造过的usbasp工具,使用
进行对
Arduino UNO
板子进行ICSP
烧录,改造过的usbasp
烧录器就不能继续使用原来智峰
的软件进行烧录了。
AVRDUDESS
软件烧录程序
- ✨如果采用的是开源自制的USBASP的,那么在使用
AVRDUDESS
工具进行固件烧录时,推荐选择:usbasp-clone
📙Arduino IDE直接烧录说明
通过ICSP接口连接目标板。
- 编程器选择
USBasp
- 使用编程器上传。
- 烧录信息
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Users\Administrator\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"
Using Port : usb
Using Programmer : usbasp
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : usbasp
Description : USBasp, http://www.fischl.de/usbasp/
avrdude: auto set sck period (because given equals null)
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)
avrdude: reading input file "d:\arduino\MyHexDir/Blink.ino.hex"
avrdude: writing flash (1968 bytes):
Writing | ################################################## | 100% 1.18s
avrdude: 1968 bytes of flash written
avrdude: verifying flash memory against d:\arduino\MyHexDir/Blink.ino.hex:
avrdude: load data flash data from input file d:\arduino\MyHexDir/Blink.ino.hex:
avrdude: input file d:\arduino\MyHexDir/Blink.ino.hex contains 1968 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.77s
avrdude: verifying ...
avrdude: 1968 bytes of flash verified
avrdude done. Thank you.