好主意在这里的答案中有一些巫毒谈话。让我们对发生的事情更加真实一些,总结一下要检查的好东西:
基本上,当发生这种情况时,最好为AVRDUDE启用详细模式,以更好地了解正在发生的事情。为此,您只需要进入首选项并选中详细模式框即可。离开Arduino IDE并启动控制台以使其更舒适地读取AVRDUDE的输出也是一个好主意,您可以单击该upload
按钮。
这里重要的是将3或4放入-v
命令调用中。这是这样的AVRDUDE命令,其参数组成完全取决于Arduino的安装方式:
avrdude -v -v -v -v -C /path/to/avrdude.conf -patmega328 -P/dev/usbport -U flash:w:/path/to/firmware.hex
启用正确命令行的一种好方法是在启用详细信息后从Arduino IDE输出日志的详细输出中复制它。
当您获得时avrdude: stk500_recv(): programmer is not responding
,它基本上意味着在实际开始闪烁之前,发生了一些错误。
基本上,您必须检查(从硬件到软件,从低级到高级):
- 如果电缆和/或连接器没有小切口;
- 如果没有焊点短路(即接触周围的金属物),则表示:
Rx
和之间Tx
(通常是引脚1
和0
)之间的PCB上是否没有短路;
- 如果没有与电路板下方的金属元件或组件的支脚之间的微小接触(如FTDI,ATmega芯片或其他任何东西)接触;
- 如果ATmega芯片没有断电(GND / V CC快捷方式或切断或V CC输入无效...);
- 如果某些屏蔽或定制设计未使用Arduino 的
1
和0
引脚(/!\
不适用于Leonardo,因为它具有独立的USB处理功能);
- 如果USB转UART转换器没有问题(
FTDI
在较旧的Duemilanove或较新的Arduino Unos上为ATmega16U2);
- 如果ATmega328芯片被炸或安装错误;
- 引导加载程序是否已被覆盖或发生故障;
- 如果应用正确的波特率进入引导加载程序;
- 如果为目标微控制器和主板设置了正确的设置;
通常,avrdude -v -v -v -v
在哪个阶段失败可以帮助很多。它根本无法建立USB连接(电缆故障,USB / UART,PCB等),还是引导加载程序问题。
更新:我尝试转动板载ATmega并朝另一个方向安装它。现在,我在上传时没有遇到任何问题,但是之后没有任何反应。板载LED似乎也没有闪烁。
恐怕如果您颠倒了ATmega的位置,然后又不起作用,那么您将电源置于数字引脚上的事实可能会烧毁芯片。