单片机交流
登录
直播中
王兰
13年用户
850经验值
擅长:基础元器件
私信
关注
[问答]
如何通过External Tools和Avrdude软件去烧写AVR单片机?
开启该帖子的消息推送
烧写
AVR单片机
如何通过External Tools和Avrdude软件去烧写AVR
单片机
?有哪些步骤?烧写过程中可能会遇到哪些问题?怎样去解决?
回帖
(1)
王璐
2021-7-8 16:03:18
很多教程中都提供使用Atmel Studio和MKII对AVR单片机进行烧写,但民间使用最多的烧写器是物美价廉的USBasp,10元左右的价格比200元的MKII亲民多了。但是在Atmel Studio中不可以直接使用USBasp进行烧写,于是通常需要借助其他软件,带来更多麻烦。
本文通过Atmel Studio的External Tools和Avrdude软件,达到可以在Atmel Studio中直接烧写单片机的目的。这样可以在开发环境中完成编程、编译和烧写,非常方便。
第一步:你需要有一个USBasp以及其驱动,驱动程序在网络上铺天盖地,在购买模块的时候向店家索要也可。在设备管理器中可以通过设定驱动搜索的路径来安装驱动。驱动安装完成之后设备管理器中会出现libu***-win32 device,点开隐藏后有USBasp设备。如图所示。
第二步:安装好驱动后,需要安装Avrdude软件。下载页面在此:http://download.savannah.gnu.org/releases/avrdude/
windows系统可以选择下载zip格式的文件,解压之后是两个文件,一个可执行文件和一个配置文件,放在想要的目录下(需要放在一个目录下)。这两个文件的路径尽量不变,否则需要重新配置第三步。
第三步:打开Atmel Studio软件,点击Tools菜单,选择Externel Tools。首先在界面下方几个文本框中进行配置。Title随意,我写的是USBasp。Command输入框内输入 (路径/)(avrdude软件名).exe,如如果放在D盘根目录下,可执行文件的名字是avrdude.exe,则输入D:avrdude.exe。Argument输入框输入:
-c u***asp -p atmega16 -B12 -U flash:w:$(ProjectDir)Debug$(TargetName).hex:i
注:参考的原文中对应上述指令最后的TargetName,用的是ItemFileName,这样的话必须.c程序文件名和.hex文件名相同。如果你的.c文件名是main.c,则会报错。
另外,上述命令的-p参数是单片机型号,我使用的是atmega16,需要改成你的型号。
设置好之后点击Add按钮,就设置好了。之后Tools菜单下就会有你设置好的Title 的选项。如下图。
出现了USBasp选项。写完程序后,必需先按F7编译解决方案,再点击这个选项。之后会出现Avrdude的命令行界面,会出现几个进度条。如果只出现一个进度条,命令行界面一闪而过,则可能是编译失败了,我的方法是在点击 的瞬间截图,看报的错误是什么。也可以直接用CMD命令行运行Avrdude,烧写.hex文件,看看报的错误。
另外,如果是新单片机没有设置过熔丝位的话,需要先设置熔丝位,否则单片机会默认使用1MHz的内部时钟。熔丝位只需设置一次,所以可以使用任何软件设置一次便一劳永逸。如果没有熔丝位设置软件,也可以用上文Avrdude来设置。使用命令行,先导航到avrdude.exe所在目录,然后执行指令。以我的为例,使用atmega16芯片,设置LFuse,使单片机使用外部晶振:
avrdude -c u***asp -p atmega16 -U lfuse:w:0xCE:m
熔丝位的计算可以使用熔丝位计算器
可能出现的问题:
1.原文提到说参数命令行中的路径可能出现问题,解决方案是将两个双引号去掉。
2.如果命令行中提示找不到u***asp的问题,则检查驱动,或者重新安装别的驱动程序试试。
很多教程中都提供使用Atmel Studio和MKII对AVR单片机进行烧写,但民间使用最多的烧写器是物美价廉的USBasp,10元左右的价格比200元的MKII亲民多了。但是在Atmel Studio中不可以直接使用USBasp进行烧写,于是通常需要借助其他软件,带来更多麻烦。
本文通过Atmel Studio的External Tools和Avrdude软件,达到可以在Atmel Studio中直接烧写单片机的目的。这样可以在开发环境中完成编程、编译和烧写,非常方便。
第一步:你需要有一个USBasp以及其驱动,驱动程序在网络上铺天盖地,在购买模块的时候向店家索要也可。在设备管理器中可以通过设定驱动搜索的路径来安装驱动。驱动安装完成之后设备管理器中会出现libu***-win32 device,点开隐藏后有USBasp设备。如图所示。
第二步:安装好驱动后,需要安装Avrdude软件。下载页面在此:http://download.savannah.gnu.org/releases/avrdude/
windows系统可以选择下载zip格式的文件,解压之后是两个文件,一个可执行文件和一个配置文件,放在想要的目录下(需要放在一个目录下)。这两个文件的路径尽量不变,否则需要重新配置第三步。
第三步:打开Atmel Studio软件,点击Tools菜单,选择Externel Tools。首先在界面下方几个文本框中进行配置。Title随意,我写的是USBasp。Command输入框内输入 (路径/)(avrdude软件名).exe,如如果放在D盘根目录下,可执行文件的名字是avrdude.exe,则输入D:avrdude.exe。Argument输入框输入:
-c u***asp -p atmega16 -B12 -U flash:w:$(ProjectDir)Debug$(TargetName).hex:i
注:参考的原文中对应上述指令最后的TargetName,用的是ItemFileName,这样的话必须.c程序文件名和.hex文件名相同。如果你的.c文件名是main.c,则会报错。
另外,上述命令的-p参数是单片机型号,我使用的是atmega16,需要改成你的型号。
设置好之后点击Add按钮,就设置好了。之后Tools菜单下就会有你设置好的Title 的选项。如下图。
出现了USBasp选项。写完程序后,必需先按F7编译解决方案,再点击这个选项。之后会出现Avrdude的命令行界面,会出现几个进度条。如果只出现一个进度条,命令行界面一闪而过,则可能是编译失败了,我的方法是在点击 的瞬间截图,看报的错误是什么。也可以直接用CMD命令行运行Avrdude,烧写.hex文件,看看报的错误。
另外,如果是新单片机没有设置过熔丝位的话,需要先设置熔丝位,否则单片机会默认使用1MHz的内部时钟。熔丝位只需设置一次,所以可以使用任何软件设置一次便一劳永逸。如果没有熔丝位设置软件,也可以用上文Avrdude来设置。使用命令行,先导航到avrdude.exe所在目录,然后执行指令。以我的为例,使用atmega16芯片,设置LFuse,使单片机使用外部晶振:
avrdude -c u***asp -p atmega16 -U lfuse:w:0xCE:m
熔丝位的计算可以使用熔丝位计算器
可能出现的问题:
1.原文提到说参数命令行中的路径可能出现问题,解决方案是将两个双引号去掉。
2.如果命令行中提示找不到u***asp的问题,则检查驱动,或者重新安装别的驱动程序试试。
举报
更多回帖
rotate(-90deg);
回复
相关问答
烧写
AVR单片机
如何
通过
Atmel Studio
烧
写
AVR
单片机
?
2021-11-01
2238
AVR
单片机
程序下载用什么
软件
驱动?
2012-07-18
6839
PIC
单片机
怎么
通过
串口
烧
写
程序,需要干什么
软件
吗?感谢
2015-11-06
15578
怎样为
单片机
去
烧
写
程序?
2021-07-22
2594
AVRStudio这个
软件
只是
烧
写
单片机
用,不能写程序吗?
2023-11-07
460
单片机
烧
写
是什么?有哪几种方式?
2021-04-01
1153
请教
AVR
单片机
烧
写
时是否会影响SPI接口上模块
2015-06-08
3467
求大神指点在Linux下怎样
去
开发一种
avr
单片机
环境?
2021-07-07
924
为什么用
AVR
_fighter
烧
写
51
单片机
只有空程序
烧
写
正常?
2019-09-16
1354
avr
单片机
两种
烧
写
程序方式的区别?
2023-11-10
1290
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分