首次使用ICSP Sparkfun AVR Pocket Programmer后,无法对Arduino 328P进行编程

时间:2016-06-27 23:56:23

标签: arduino-uno avrdude

我需要从Arduino默认值将Brown Out Voltage更改为4.3V。我从Sparkfun购买了AVR Pocket Programmer并按指示连接。我有一个带有CC3000 wifi屏蔽的Arduino 328P。在ICSP熔断器更换之前,所有工作都完美使用AVRDude cmd

成功读取我的默认保险丝设置

avrdude -c usbtiny -p atmega328p是H = 05,L = FF,E = DE。

我运行以下cmd将BOD设置更改为4.3,

avrdude -c usbtiny -p atmega328p -U lfuse:w:0xff:m -U hfuse:w:0x05:m -U efuse:w:0xfc:m按照使用Engbedded AVR保险丝计算器的指示。这似乎成功运行。在此之后我完全无法编程我的电路板并且无法运行avrdude -c usbtiny -p atmega328p而没有初始化失败,rc = -1错误。

在我创建灌溉控制系统的第一阶段时,我还没有把我的项目推向有机农场,这让我很伤心。

1 个答案:

答案 0 :(得分:1)

希望问题是你的联系。检查你的连接,如果他们不是问题,你有一些工作要做:

在找到你的保险丝后,我搜索了一些东西并看到了this。默认的熔丝值为:

  • 低保险丝0xFF
  • 高保险丝0xDE
  • 扩展保险丝0x05

你混淆了上面的保险丝。我用AtmelStudio检查你的保险丝会做什么:

avrdude -c usbtiny -p atmega328p -U lfuse:w:0xff:m -U hfuse:w:0x05:m -U efuse:w:0xfc:m

这将更改RSTDISBL值并启用RSTDISBL。根据数据表,这样做

  

设置复位禁用熔丝会导致JTAG和ISP编程停止工作。只能解开   高压编程

通过这样做,你可以将你的芯片搞得一团糟。现在,你想撤消这个。你可以在不花钱STK500的情况下以便宜的方式做到这一点的唯一方法就是购买一台新的Atmega328p,或者使用另一台Arduino Uno来使用高压编程来完全擦除你的砖块。

要执行此操作,请按照this教程清除芯片。本教程使用了perfboard,但你可以在面包板上做同样的事情。

现在,一旦你擦掉了砖砌的Arduino,就必须使用正确的保险丝。

默认值为:

  • 低保险丝0xFF
  • 高保险丝0xDE
  • 扩展保险丝0x05

现在,您想要将欠压电压更改为4.3V吗?再次使用AtmelStudio,我想出了以下保险丝:

  • 低保险丝0xFF
  • 高保险丝0xDE
  • 扩展保险丝0x04

一旦你编程,你应该有一个工作的Arduino!

如果您需要通过USB而不是AVR编程器使用Arduino软件对Arduino进行编程,则必须对引导加载程序进行编程。如果您需要帮助,请回复。也就是说,如果从现在开始你将一直使用AVR程序员,那么可能没有必要使用引导加载程序。

这将解决您的问题,并使您的欠压电压正确!

总是使用像AtmelStudio这样的三重检查保险丝,因为在这种情况下你最终可能会做很多额外的工作。