首页 > 解决方案 > Microchip Studio / STK500 得到 0xc0,预期为 0x00

问题描述

这个项目从一个典型的爱好者(我)开始,学习如何使用 ATMEGA328P-PU 在面包板上复制 Arduino Uno 的基本功能。该电路的基本意图是使用单个输入触发 8 个独立的万圣节道具,或者连续循环它们,或者根据来自 PIR 传感器的输入的命令。

在面包板上验证了我的设计的有效性后,我使用 ATMEGA328P-AU(SMT 等效)专业制造了 SMT PCB。下面提供了完整的 PCB 原理图。

我的 PCB 制造商告诉我,他们在尝试使用连接到我的板载 ICSP 接头的 STK500 上传我的 hex 文件时收到错误消息。随后,他们用裸 ATMEGA328P-AU 运送了我的原型 PCB。

收到 PCB 后,我可以使用 Arduino Uno 作为 ISP,连接到我的 PCB 板载 ICSP 接头以成功加载 Arduino 引导加载程序,然后成功上传我的 Arduino 程序。我多次成功地重复了这个过程,随后能够验证 PCB 逻辑在我的应用程序中的行为是否符合预期。我的 PCB ICSP 接头上的引脚与 Arduino 上的 ICSP 接头相同。它是 8 个引脚,因为我在顶部添加了 TX 和 RX。

我安装了 Microchip Studio 并通过 COM1 连接了 STK500。在设备编程中,我选择了设备 ATMEGA328P 和接口 ISP。当我单击“读取”时,我收到如下所示的错误。当我连接一个 Arduino Uno 时,一切都很好,这让我相信,虽然我的电路包含面包板 Arduino 所需的组件,但它缺少 STK500 需要将其识别为设备的东西。

在搜索这些论坛和谷歌以寻找类似问题后,我能找到的唯一两个解决方案是使用内部时钟(大概在 ATMEGA328P 上?)和在 Microchip Studio 中“禁用调试线并关闭”。Microchip Studio 中的所有调试功能对我来说都是灰色的,我不清楚如何更改无法通信的设备上的时钟设置。不过,如果这很重要,我确实专门合并了一个外部时钟来提高我的应用程序的计时精度。

任何帮助或见解将不胜感激。

在此处输入图像描述

在此处输入图像描述

标签: arduinomicrocontrolleravratmelatmelstudio

解决方案


推荐阅读