【问题标题】:Is Arduino code portable to custom PCB?Arduino 代码是否可移植到定制 PCB?
【发布时间】:2013-09-18 01:49:51
【问题描述】:

我正在开发一块 Mega 2560 板。我计划使用裸 ATmega2560 微控制器(与 Arduino 上的相同)将我的项目移动到定制 PCB。根据我的研究,我的问题没有明确的答案。

我可以使用 Arduino IDE 对 Arduino 进行编程,然后将所有这些代码移植到我自己的 PCB 上吗?我看到 Arduino IDE 创建了与所有草图相对应的 .cpp 文件。

我知道我必须保留 Eagle 原理图中所有引用的 Arduino 引脚和外围设备。

编辑:正如下面的答案所指出的,您可以在自己的 PCB 上使用 Arduino 代码,前提是您不使用任何第三方库。您可以使用 Arduino IDE 生成的十六进制文件通过 Atmel Studio 或使用 Arduino 作为 ISP 在 PCB 上对微控制器进行编程。

【问题讨论】:

    标签: c++ arduino atmega


    【解决方案1】:

    绝对可以将 Arduino 代码闪存到您自己的作品中。我已经这样做了好几次了。但是,您需要一个 ISP 来刷新目标。

    根据您 PCB 的硬件,某些库可能无法工作或无法提供所需的结果。

    所有依赖精确时序的东西都需要一个晶体振荡器。 (但是较新的 Arduinos 只有一个谐振器,因此这对您来说可能不是问题)。

    所有需要以 16 Mhz 运行的东西都需要一个晶体,因为内部 PLL 仅支持最高 8 Mhz。

    所有需要串行 IO 的东西都必须以匹配的频率编译。

    --> 除非您知道自己在做什么,否则建议您使用 16 Mhz 晶体振荡器。

    串行到 USB 转换器完全是可选的,但如果您省略它,您将无法使用 IDE 的串行监视器或引导加载程序选项。

    在所有情况下,您都必须确保正确设置保险丝。如果您使用 IDE 刷新引导加载程序,IDE 将自动正确设置保险丝。由于无论如何您都需要 ISP,您可能需要考虑在之后删除引导加载程序。但这主要是个人喜好问题。

    【讨论】:

    • 您能否将我链接到具有更多详细信息的资源?我尝试将 Atmel Studio 设置为直接在 C++ 中编码,但不断收到甚至没有出现在 Google 上的错误。
    • 您的问题是关于 Arduino IDE 现在您正在询问 Atmel Studio。 Atmel Studio 的主要资源不是 Arduino,而是 Atmel 文档和数据表。如果您没有通过 Atmel studio 获得它们,您可以从 Atmel 下载它们。你已经读过它们了吗?如果是这样,请更具体,哪个操作系统,哪个 C 编译器,哪个错误。
    • 对不起,我不是有意询问有关 Atmel Studio 的任何事情。我只是说我更喜欢使用 Arduino IDE,我想知道是否还有更多我可能错过的东西。
    • 取决于您已经阅读的内容。请您提供更多详细信息吗?
    • 我主要阅读了我自己学校和其他学校过去的高级设计项目。虽然他们中的大多数人都提到了使用 AVR 微控制器和 Arduino IDE,但他们没有经历过如何确定在迁移到自己的 PCB 时要保留哪些组件的过程。
    【解决方案2】:

    保留一些东西,例如使用过的 GPIO、晶体、EEPROM(如果存在),也许还可以在您的 PCB 上使用服务 LED,就像在 arduino 中完成的那样,一切都会正常工作。 但我建议转移到您自己的图书馆和一些免费的图书馆。您将能够脱离 Arduino 平台并使用其他 Atmel 微控制器(用于更大或更小的目的)。

    回答:如果您将一些有价值的硬件(GPIO、SPI、晶体振荡器)移到您的 PCB 上,它将起作用。

    【讨论】:

    • GPIO 和 SPI 在控制器内部,不是 PCB 的一部分。最多需要 GPIO 引脚的连接器。如果不需要精确的时序并且 8 MHz 就足够了,那么晶体振荡器是可选的。见我上面的回答。
    • Udo,我的意思是他必须为他使用的 MC 接口克隆 Arduino 原理图,以确保它们以相同的方式工作。并使用相同的 GPIO 端口。很多有价值的东西,比如晶振,上拉在Arduino PCB中可能不是那么明显,所以必须检查Arduino原理图。
    【解决方案3】:

    如果您不使用 Arduino 库并且您使用相同的 atmega 模型,那么通用代码应该可以工作。您可能需要根据您的 pcb 来调整一些东西。重要的是你把它放在 Atmega 上,你不要使用 Arduino 的库。但是有可能导出那些吗?对此我不确定。

    【讨论】:

      猜你喜欢
      • 2017-03-11
      • 2010-09-08
      • 2023-04-02
      • 1970-01-01
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      相关资源
      最近更新 更多