arduino - 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 中的所有调试功能对我来说都是灰色的,我不清楚如何更改无法通信的设备上的时钟设置。不过,如果这很重要,我确实专门合并了一个外部时钟来提高我的应用程序的计时精度。
任何帮助或见解将不胜感激。
解决方案
推荐阅读
- javascript - 通过 css 和 ::focus 嵌套选择
- android - how to get timestamp of notification on android onNotificationPosted()
- php - 如何在 Ubuntu 14.04 上安装/启用 PHP 7.0 zip 扩展?
- flutter - 没有为类定义方法“TweenAnimationBuilder”
- excel - 计算列中的时间差并将其保存为具有多个电子表格的许多 excel 文件,PYTHON
- angular - 订阅可观察者不会执行
- javascript - 在 php 中使用 LocalStorage 变量
- nginx - Kubernetes 入口更新与部署
- scala - 将单列划分为多列的最佳方法 Dataframe Spark Scala
- charts - 第一步的谷歌阶梯面积图错误