我正在研发Mega 2560主板。我计划使用裸ATmega2560微控制器(与Arduino上的微控制器相同)将我的项目移动到定制PCB。根据我的研究,我的问题没有明确的答案。
我可以使用Arduino IDE对Arduino进行编程,然后将所有这些代码移植到我自己的PCB上吗?我看到Arduino IDE创建了与所有草图相对应的.cpp文件。
据我所知,我必须保留Eagle原理图中所有引用的Arduino引脚和外设。
编辑:正如下面的答案中所指出的,如果您不使用任何第三方库,您可以在自己的PCB上使用Arduino代码。您可以使用Arduino IDE生成的十六进制文件,通过Atmel Studio或使用Arduino作为ISP对PCB上的微控制器进行编程。
答案 0 :(得分:1)
使用GPIO,晶体,EEPROM(如果有的话)以及PCB上的服务LED等一些东西,就像在arduino中完成一样,一切都会正常工作。 但我建议你搬到自己的图书馆和一些免费图书馆。您将能够从Arduino平台分离并使用其他Atmel微型控制器(用于更大或更小的目的)。
答:如果您将一些有价值的硬件(GPIO,SPI,晶体振荡器)移到PCB上,它将会起作用。
答案 1 :(得分:1)
绝对可以将Arduino代码刷新到您自己的作品中。我已经好几次了。但是,您需要一个ISP来闪现目标。
根据PCB的硬件,某些库可能无法正常工作或无法提供所需的结果。
依赖于精确定时的一切都需要晶体振荡器。 (然而,较新的Arduinos只有一个谐振器,因此这可能不是你的问题)。
所有需要以16 Mhz运行的都需要晶体,因为内部PLL仅支持高达8 Mhz。
所有需要串行IO的东西都必须使用匹配的频率进行编译。
- >除非你知道你做了什么,否则建议使用16 Mhz晶体振荡器。
串口转USB转换器完全是可选的,但如果省略它,则无法使用IDE的串行监视器或引导加载程序选项。
在所有情况下,您必须确保正确设置保险丝。如果使用IDE刷新引导加载程序,IDE将自动正确设置保险丝。由于您无论如何都需要ISP,因此您可能需要考虑在之后删除引导加载程序。但这主要取决于个人偏好。
答案 2 :(得分:0)
如果你不使用Arduino librairies并且你保持相同的atmega模型,那么通用代码应该可行。根据你的pcb的不同,你可能需要适应一些事情。重要的是你把它放在Atmega上,你不要使用Arduino的图书馆。但有可能出口那些?对此我不确定。