【问题标题】:Arduino StandaloneArduino独立
【发布时间】:2015-09-27 07:13:17
【问题描述】:
我有一个 Arduino Uno,我正在使用 arduino 1.0.5 IDE。我关注了他procedures for bootloading an atmega328P-PU on a breadboard。
我首先上传了 ArduinoISP 草图,进行了连接(使用外部振荡器),然后将其接线。然后,我选择了作为 ISP 的 Arduino 编程器,选择了带有 Atmega328P 的 Arduino Duemilanove 开发板。然后我选择了正确的串口并点击了刻录引导加载程序。
我收到以下错误:
avrdude.exe: stk500_program_enable(): 协议错误,expect=0x14,
resp=0x50avrdude.exe:初始化失败,rc=-1 Double
检查连接并重试,或使用 -F 覆盖
这个 check.avrdude.exe: stk500_disable(): 协议错误,expect=0x14,
响应=0x51
如何解决这个问题?另外,我可以通过在 Uno 上使用引导加载程序代替原始芯片直接上传引导加载程序吗?如果有,怎么做?
【问题讨论】:
标签:
arduino
arduino-uno
atmega
arduino-ide
【解决方案1】:
据我了解,您遇到的错误表明芯片读取错误。我曾在芯片死机或未正确连接时遇到过这种情况,尤其是与电源连接。
您可以在教程中找到更多详细信息:https://www.arduino.cc/en/Tutorial/ArduinoISP
尤其是那些东西:
- Arduino 1.0 的注意事项:您需要对
ArduinoISP 代码。在 heartbeat() 函数中找到表示
“延迟(40);”并将其更改为“延迟(20);”。
- 选择项目中的
Tools > Board 和 Serial Port 菜单对应于 您的板
正在用作编程器(不是正在编程的板)。
【解决方案2】:
只需通过下面的链接而不是 arduino 内置引导加载程序,这将非常适合上传引导加载程序和验证板状态信息
我之所以回复你这个问题,是因为我很久以前就遇到了同样的问题,它救了我。
arduino 引导加载程序的另一件事:对于 atmega328,您需要在 reset 和 gnd 之间放置电容器(以防您错过)
对于 gammon 引导加载程序,您不需要它。
创新。
【解决方案3】:
对于重置行,您可能会使用 100nf(这就是文档中所述)...但有时它不起作用...尝试 4.7uf、22uf 或 47uf 之类的值或关闭值
【解决方案4】:
我遇到了类似的问题,问题是我的程序员有点慢,我使用 -B 标志来降低比特率并开始工作,我设置了 -B20 并且每次都像魅力一样工作,但我使用的是 USBTinyISP 编程器,而不是 stk500 编程器,所以这可能不适合你。