通过 USBASP 对 Atmega32U4 进行编程

Posted

技术标签:

【中文标题】通过 USBASP 对 Atmega32U4 进行编程【英文标题】:Programming a Atmega32U4 via USBASP 【发布时间】:2018-11-27 02:11:43 【问题描述】:

我创建了自己的定制板并添加了 ICSP 标头,尽管我似乎无法对其进行编程。

我的板子有一个 Atmega32U4(没有外部晶振),当我使用命令时我不断收到错误:

avrdude -p m32u4 -c usbasp -B 64 -U flash:w:/Users/Jbonnett/Desktop/RGBWstrandtest.ino.hex 

错误:

avrdude: set SCK frequency to 8000 Hz 
avrdude: error: program enable: target doesn't answer. 1 
avrdude: initialization failed, rc=-1
     Double check connections and try again, or use -F to override
     this check.

如您所见,我正在尝试以慢速模式对芯片进行编程,并且我还尝试了慢速模式的硬件跳线。虽然错误告诉我它看不到我的自定义板。

我正在使用的程序员是这个:https://www.ebay.co.uk/itm/USBASP-USB-ISP-Programmer-for-Atmel-AVR-ATMega328-ATMega32U4-Arduino/322662323277

这里有几张照片显示自定义板已正确接线: 请注意,编程器可以由定制板供电。

感谢您的帮助:)

编辑:My Schematic

【问题讨论】:

添加定制板的原理图来提问。 2x3 标头是标准 Arduino ISCP 标头吗? 嗨@Juraj 我添加了我的原理图:) 你们有不是自己造的32u4板子吗?你可以先试试这个程序员 对不起,我没有 【参考方案1】:

由于信息有限,有很多可能性,您可以查看以下列表,虽然不是一个完整的列表,但应该缩小范围:

(1) 试试用-F参数看看能不能走得更远一点

(2) 检查USBAsp是否适用于标准32u4板

(3) 检查ISP头连接是否正确,有时由于原理图/布局/fab中的任何错误,引脚的标签可能会被颠倒

(4) 32u4 上的保险丝可能设置为使用外部振荡器(虽然我在工厂 32u4 上从未见过此设置,默认始终为内部 RC),在这种情况下,我们需要外部晶体来编程。

【讨论】:

嗨@coolbreeze,我确实尝试了 -F 参数,但没有任何乐趣。尽管我没有关于兼容性的信息,但我看不到 USBAsp 不起作用。这是我的示意图Imgur。知道如何设置正确的保险丝吗?说到他们,我一点头绪都没有。 如果您可以在使用 -F 选项时发布 avrdude 的输出,那将会有所帮助。还为详细输出添加 -v 选项。 ISP Header 从原理图上似乎没问题,需要检查板上是否有任何连接/焊接问题。该芯片是来自工厂的新 32u4(直接来自 Atmel 经销商之一)还是之前已经编程(由您或来自使用代码对芯片进行预编程的来源之一)? 我是从这里购买的,虽然我看不到它是否预装了引导加载程序。 对不起,我一定忘记了链接:( Link to ATMega32U4-MUR 请参阅文档中的第 21.4 节。【参考方案2】:

好的,我添加了一个水晶,它可以工作了!即使它有一个内部的,我也不知道为什么没有它就不能工作:(

【讨论】:

以上是关于通过 USBASP 对 Atmega32U4 进行编程的主要内容,如果未能解决你的问题,请参考以下文章

删除 Arduino 上的引导加载程序

arduino leonardo r3 和 arduino uno r3 有啥区别

USBASP制作参考资料整理

Arduino timer4 自定义 PWM 问题

初学arduino应该买leonardo还是uno?请说明为啥。

两个整数相乘给出错误值(ATMEL ATmega32A)