AVRISPmkII连接状态:未知状态0x00

时间:2013-03-09 16:46:38

标签: microcontroller avr avrdude

嗯..我一直在网上搜索很多角落......但我找不到解决问题的办法。上次我使用AVRISP2时效果很好。当我尝试在uC上编写程序时,我收到以下消息:

avrdude: stk500v2_command(): command failed
avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: Unknown status 0x00
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

我在互联网上发现了很多帖子,但没有任何解决方案。有谁知道问题可能是什么?

我已经检查了引脚,我更新了ISP的固件(blinkdemo工作)。

感谢您提供任何提示..

3 个答案:

答案 0 :(得分:7)

我和我的一些朋友花了很多时间,但经过几个小时的搜索,尝试和“调试”,我们能够解决问题。我希望这可以帮助那些遇到同样问题的人来解决它。

问题在于ISP(在我的情况下是USB-Prog 3.3)对于我的Atmega8 说得太快,它只能以1MHz的速度运行。所以有两种可能的解决方案:

  • 降低ISP的速度
  • 加快Atmega8的速度

我在某个地方变红,ISP的速度不得超过底层微控制器速度的1/4。

以下几行节省了我的一天:

它将Atmega8设置为8MHz并为其提供64ms的频率。

avrdude -p atmega8 -P usb -c avrispv2 -U lfuse:w:0xe4:m -U hfuse:w:0xd9:m -B 22

以下是avrdude联机帮助页的摘录:

`-B BITCLOCK'
        Specify the bit clock period for the JTAG interface or the ISP
        clock (JTAG ICE only).  The value is a floating-point number in
        microseconds.  The default value of the JTAG ICE results in about
        1 microsecond bit clock period, suitable for target MCUs running
        at 4 MHz clock and above.  Unlike certain parameters in the
        STK500, the JTAG ICE resets all its parameters to default values
        when the programming software signs off from the ICE, so for MCUs
        running at lower clock speeds, this parameter must be specified on
        the command-line.

此外,我想为Android推荐 AVR Fuse Calculator - 它似乎是微控制器程序员非常有用的工具。

答案 1 :(得分:0)

首先,我建议您检查微控制器本身。我收到了同样的错误信息,我发现我的Atmega已经损坏了。交换新的问题解决了这个问题。

答案 2 :(得分:0)

当尝试直接在面包板上闪光时,另一个(常见的?)问题可能是缺少水晶。我已经忘记了两次这个错误消息了。因此,除了连接ISP引脚外,如果配置为使用外部振荡器,请确保将晶振加电容连接到ATmega的XTAL1和XTAL2引脚(参见ATmega的数据手册)。