【问题标题】:ATtiny45, Arduino programming error?ATtiny45,Arduino 编程错误?
【发布时间】:2012-09-19 20:32:37
【问题描述】:

我按照教程 How-To: Shrinkify Your Arduino Projects 显示的方式设置了我的 Arduino 和 ATtiny45。我想做一个 LED,连接到我的面包板上,闪烁。

我运行的是 Windows XP,我拥有最新版本的 Arduino IDE,并将我的程序员设置为 Arduino 作为 ISP,并将我的板设置为 ATtiny45(8 MHz 内部时钟)。

当我尝试将编译后的代码上传到板上时出现问题。 IDE 返回此错误:

avrdude:stk500_getsync():不同步:resp=0x00

我已经搜索了很长时间的答案,但我一无所获。我该如何解决?

【问题讨论】:

    标签: ide arduino microcontroller


    【解决方案1】:

    这意味着未检测到您的微控制器。检查事项:

    1. 接线:用于芯片编程的引脚是否正确连接(没有交叉?)
    2. 电源:电路板是否正确供电?
    3. PC 配置:Arduino IDE 是否使用了正确的 PC 端口?

    来自the Arduino help

    1. 如果您有Arduino NG,您是否在选择之前按了重置 上传菜单项?
    2. 是否选择了正确的串口?
    3. 是否安装了正确的驱动程序?
    4. 芯片是否正确插入Arduino?
    5. 如果您构建了自己的 Arduino 或自己烧录了引导加载程序:芯片上是否有正确的引导加载程序?

    Arduino 是基于引导加载程序的。这意味着芯片内部必须有一个小软件,负责与 Arduino IDE 的通信以及将应用程序二进制文件自编程到芯片中。该软件称为“引导加载程序”。如果您的芯片空了(单独出售或误擦除),则说明内部没有引导加载程序。

    如果不使用外部编程器,就无法将 booloader 编程到芯片中。 (或者内部已经有另一个引导加载程序。一些芯片在 ROM 中包含一个低级引导加载程序......) 但是,幸运的是,为 AtTiny 构建一个自制的程序员很容易。在谷歌搜索“AtTyny ISP 程序员”。

    如果您对此有任何疑问,请在“电气工程 StackExchange”中提问

    【讨论】:

    • 引脚接线正确。该板已正确供电。我如何检查正确的端口必须是什么?为什么我必须在上传前按下重置按钮?安装了正确的驱动程序。芯片很好地插入到面包板上。我没有自己构建 Arduino,也没有烧掉引导加载程序。
    • 另外,如果我无法让 AT Tiny 45 与我的 Arduino 一起工作,我该如何检查它是否工作?
    • 您必须重置板才能调用引导加载程序。如果此时 MCU 正在运行您的代码,它将无法工作。 AT Tiny 45 是随 arduino 板一起发货的,还是一个全新的完全空的部件?
    • 单独发货。我究竟什么时候重置电路板?我总是在点击 IDE 中的上传之前按下按钮,但问题是它说它正在编译代码,然后过了一段时间它说它正在上传它。
    • 好的,但问题是要知道您使用的 AtTiny 45 是否带有 Arduino 引导加载程序。
    【解决方案2】:

    当您获得处女 ATTiny 时,您需要在其上设置保险丝位。 不需要Arduino bootloader,但过程类似于烧录bootloader。 This tutorial 帮助我启动并运行了我的 ATtiny85,请注意“将 ATtiny 配置为以 8 MHz 运行(用于 SoftwareSerial 支持)”部分。

    另外,我注意到有不同的“板驱动程序”:出现在 Arduino IDE 的“工具 > 板”中的项目。您可能使用的套件不起作用,请尝试thisthis 或使用谷歌搜索更多信息。当你尝试一个新的集合时,一定要完成整个过程(即刻录引导加载程序,重启,刻录你的代码)。

    祝你好运。

    【讨论】:

    • 对不起,内部烧录引导加载程序可以为您工作。这一切都只是包裹在 arduino ide 中而你没有看到它。
    【解决方案3】:

    就我而言,我购买的 Duemilenove Arduino 兼容板遇到了同样的问题

    我找到了这个解决方法。

    转到\hardware\arduino\boards.txt,找到这一行“uno.name=Arduino Uno uno.upload.protocol=arduino”,将protocol=arduino替换为=stk500。 我不知道它是否适用于 Uno,但它确实使我免于与 Duemilanove 类似的问题。

    【讨论】:

      【解决方案4】:

      我在让 attiny85 工作时遇到了同样的问题。 就我而言,arduino micro 用于对其进行编程。 我深入研究了这个问题,发现最新版本的 arduino IDE(1.8.5) 在使用 avrdude 的配置上略有错误。 我假设您已经尝试过刻录引导加载程序,但它失败并出现 STK500 同步错误。

      如何解决:

      1. 准备一个能够正确编辑 unix 行尾文件的文本编辑器程序。例如)Vim、Emacs、Microsoft Visual Studio、notepad+、atom
      2. 进入 arduino 安装目录。例如)C:\Program Files(x86)\Arduino
      3. 使用您准备的编辑器打开 hardware\arduino\avr\programmers.txt。如果它在程序文件目录下,以管理员身份运行文本编辑器会很有用。
      4. 在第 44 行,您可以找到Arduino as ISP。继续遵循这些行并编辑这两行,如下所示。 arduinoasisp.protocol=arduino arduinoasisp.program.protocol=arduino
      5. 保存并再次尝试刻录引导加载程序。

      它必须有stk500v1 作为默认值。它基本上应该是相同的,但最新版本的 avrdude(也默认包含在 arduino ide 中)有不同的工作流程。

      另一个有用的信息:在服装上刻录引导加载程序也可以熔断。

      【讨论】:

        猜你喜欢
        • 2017-06-21
        • 1970-01-01
        • 1970-01-01
        • 2020-03-23
        • 1970-01-01
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多