在好主意中,这里的答案中有一些巫毒谈话。让我们尝试更真实地了解正在发生的事情,并总结要检查的好东西:
基本上,当这种情况发生时,最好为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
和)之间的 PCB 上没有短路0
;
- 如果没有与电路板下方的金属元件接触,或者在组件的腿之间没有接触到微小的部分(如 FTDI、ATmega芯片或任何其他芯片);
- 如果 ATmega 芯片没有断电(GND/V CC捷径或切断或 V CC输入失效……);
- 如果某些屏蔽或定制设计未使用 Arduino的
1
和引脚(不适用于Leonardo,因为它具有独立的 USB 处理);0
/!\
- 如果 USB 到 UART 转换器没有问题(
FTDI
在较旧的 Duemilanove 或较新的 Arduino Unos 上的 ATmega16U2 上);
- ATmega328芯片是否烧坏或安装错误;
- 如果引导加载程序已被覆盖或失败;
- 如果进入引导加载程序应用了正确的波特率;
- 是否为目标微控制器和开发板设置了正确的设置;
通常avrdude -v -v -v -v
可以帮助很多人找到它在哪个阶段失败了。无论是根本无法建立 USB 连接(电缆故障、USB/UART、PCB ……),还是引导加载程序问题。
更新:我尝试转动板载 ATmega 并将其安装在另一个方向。现在,我上传没有遇到任何问题,但之后没有任何反应。板载 LED 似乎也没有闪烁。
恐怕如果您将 ATmega 的位置颠倒,然后它不起作用,您将电源放在数字引脚上的事实可能已经烧毁了您的芯片。