历史上的今天
返回首页

历史上的今天

今天是:2025年03月28日(星期五)

正在发生

2020年03月28日 | 使用Atmel Studio7和USBasp烧写器烧写AVR单片机

2020-03-28 来源:eefocus

很多教程中都提供使用Atmel Studio和MKII对AVR单片机进行烧写,但民间使用最多的烧写器是物美价廉的USBasp,10元左右的价格比200元的MKII亲民多了。但是在Atmel Studio中不可以直接使用USBasp进行烧写,于是通常需要借助其他软件,带来更多麻烦。


本文通过Atmel Studio的External Tools和Avrdude软件,达到可以在Atmel Studio中直接烧写单片机的目的。这样可以在开发环境中完成编程、编译和烧写,非常方便。


第一步:你需要有一个USBasp以及其驱动,驱动程序在网络上铺天盖地,在购买模块的时候向店家索要也可。在设备管理器中可以通过设定驱动搜索的路径来安装驱动。驱动安装完成之后设备管理器中会出现libusb-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 usbasp -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 usbasp -p atmega16 -U lfuse:w:0xCE:m


熔丝位的计算可以使用熔丝位计算器:http://www.engbedded.com/fusecalc/


可能出现的问题:

1.原文提到说参数命令行中的路径可能出现问题,解决方案是将两个双引号去掉。


2.如果命令行中提示找不到usbasp的问题,则检查驱动,或者重新安装别的驱动程序试试。

推荐阅读

史海拾趣

FINISAR公司的发展小趣事

随着业务的不断扩展,FINISAR开始在全球范围内布局。公司在中国、马来西亚、美国、澳大利亚、以色列、新加坡、印度、韩国等多个国家设立了子公司和研发中心,形成了全球化的生产和服务网络。这一战略布局不仅增强了FINISAR的市场竞争力,还为公司带来了更多的发展机遇。特别是在中国市场,FINISAR凭借其先进的技术和优质的产品,赢得了众多知名企业的青睐,如思科、IBM、华为等。

国炬(GOOGLL)公司的发展小趣事
可能是由于负载过大、散热不良或电路设计不合理等原因引起。解决方法包括降低负载阻抗、改善散热条件或重新设计电路结构。
Esterline Power Systems公司的发展小趣事

Esterline Power Systems公司在其早期阶段就致力于研发创新技术,以满足航空和国防行业对高性能电源系统的需求。一次关键的技术突破发生在公司对一种新型高效能电源控制器的研发上。面对市场上已有的产品性能瓶颈,公司的研发团队经过数月的深入研究与实验,成功开发出了具有更高效率和更稳定性能的电源控制器。这一创新不仅赢得了客户的认可,也为公司赢得了市场份额,奠定了在电源系统领域的领先地位。

AVX公司的发展小趣事

XXXX年,AVX公司迎来了一个重要的转折点,它与日本Kyocera公司达成了战略合作。这次合作使AVX在技术上获得了强大的支持,并在市场上获得了更广阔的发展空间。通过整合双方的优势资源,AVX在贴片陶瓷电容、连接器等领域取得了显著的成绩,进一步巩固了其在电子元件市场的地位。

中科银河芯(GXCAS)公司的发展小趣事
电源电压决定了输出信号的高电平值。
Cyrix Corp公司的发展小趣事

然而,Cyrix的发展并非一帆风顺。1997年,该公司被美国国民半导体公司收购。这一收购为Cyrix带来了新的机遇和挑战。在新的母公司旗下,Cyrix继续推出了一系列新的CPU产品,但市场竞争的激烈使得其面临巨大的压力。

问答坊 | AI 解惑

FPGA器件的在线配置方法

摘要: 介绍基于SRAM LUT结构的FPGA器件的上电配置方式;着重介绍采用计算机串口下载配置数据的方法和AT89C2051单片机、串行EEPROM组成的串行配置系统的设计方法及实现多任务电路结构中配置的方法,并从系统的复杂度、可靠性和经济性等方面进行比较 ...…

查看全部问答>

别傻了(1):必要时可以和老板争一争

看到一些职场的小警示,感觉很不错,和大家分享一下。题目是我起的,意思就是让大家别以为有些规则可以违背,虽然公司的员工手册上讲得天花乱坠。                     &nb ...…

查看全部问答>

谁有XDS100仿真器的驱动程序?

谁有XDS100仿真器的驱动程序?…

查看全部问答>

c51能实现64位的浮点运算吗?float 32位的误差太大了!

在单片机上做计算器的功能,需要比较高的精度,用float他只能支持到7位精度,超过7位的都给我四舍五入了,带来的误差实在太大了!我想用double双精度但sizeof发现他也是4个byte的和float一个样,难道c51单片机就没办法实现64位的双精度浮点运算? ...…

查看全部问答>

德州仪器新型LED驱动芯片瞄准大屏幕彩显领域

想知道TI在LED领域的新产品吗?快来看啧个哦~…

查看全部问答>

电容式触摸按键资料分享

近年来,触摸技术正在迅速向不同的市场领域渗透。尽管触摸技术类型迥异,但与其他技术相比,用于按键应用和屏幕应用的电容式触摸增长和渗透最快。其主要原因就在于,采用触摸按键不仅可以改善美学和工业设计,还能够提升可靠性,因为电容式触摸按键 ...…

查看全部问答>

请教:MSP430F5438A并口仿真器的使用问题

本人新学MSP430,用的是并口仿真器,按网上所说并口模式改为EPP+ECP,并将Debugger-》Driver设置成Fet-Debugger,Fet debugger ->setup设置为LPT-IF,但是没有办法下载程序,总是报错: Fatal error: Failed to initialize.  Check if h ...…

查看全部问答>

材料常数B值的问题

请教大家,材料常数B值的允许偏差ΔB/B是什么意思?…

查看全部问答>

430开发板板级支持包BSP430

MSPGCC的维护者Peter(pabigot) 最近完成了MSP430板级支持包的发布, 一般BSP都是一些比较高端或者复杂些的板子才会有,MSP430板级支持包的发布, 说明430的开发环境越来越成熟,越来越丰富了。 既来之则用之,哈哈! 目前主要支持MSP430的官方 ...…

查看全部问答>

关于嵌入式Linux系统flash分区设计及文件系统格式选择的一些浅见

嵌入式系统应用程序升级是比较频繁的,这就需要将flash进行合理的划分,一般情况,flash 的基本分区都有这几部分:1.uboot分区2.kernel分区3.rootfs分区这三部分是最基本的,一般都有。如果只是这样分区,然后应用程序和文件系统放在一起,这样的话 ...…

查看全部问答>