在Arduino上安装其他固件


12

是否可以在Arduino上升级固件,以便它可以做更多事情,例如改变欠压/过压,以提供更多的处理能力。为此,您很有可能必须重新刷新芯片本身,那么将如何实现呢?


2
库和编程提供了大多数新功能。您在说什么“更多的事情”?
TheDoctor 2014年

TheDoctor所说的,您所说的更多的事情是什么?另外,“固件”指的是什么?板载软件/操作系统?
hichris123 2014年

我是否应该删除问题
JVarhol 2014年

@JVarhol如果您可以使它更清晰,那就保留它。请向我们解释您到底在想什么...
hichris123

我知道您可以在USB串行芯片上安装新固件,以便它可以模拟键盘
TheDoctor 2014年

Answers:


7

要回答有关大多数Arduino板上使用的ATmega328p MCU上“固件”的问题,请执行以下操作:

除引导加载程序外,ATmega上完全没有固件。您编写的程序直接在硬件上运行。

有某些“保险丝”设置是由ISP程序员设置的。但是,它们只有24个(3个字节),它们在很大程度上与低级配置有关,并不是我想的那样:
在此处输入图片说明

还有一个Bootloader,它是一个小程序,位于MCU程序存储器的单独段中,并允许它在启动时进行自身更新(这是对所有arduino进行编程的方式)。但是,它仅在启动时运行很短的时间,并且在MCU跳转到主程序后已从内存中完全删除。

最后,大多数arduino板上都有用作USB串行接口的辅助MCU(ATmega16U2 / 8U2),可以对其进行更新以使其行为有所不同(例如,模拟键盘/鼠标),但实际上,这实际上并没有改变核心处理器,因此它是否算作“安装其他固件”取决于您如何定义arduino。

真的,我强烈建议您阅读ATmega328P数据表。这是基本上构成“ Arduino”的MCU的文档。它应该解决似乎是误解的问题。


5

请注意下图,关于您针对不同的F_CPU进行欠压/过压保护设备的关系。结果,您会发现大多数Arduino在5V和16MHz的时钟频率下运行。虽然有些3.3V变体以8MHz运行。

频率与Vcc

但是,IDE随附的核心库通常针对8和16 MHz F_CPU速度具有特定的#if,在大多数情况下不使用公式。

因此,可以按照您的要求做。但是,您会发现影响核心库的限制。将成本与收益之比提高到非常有意图的水平。然后很可能会将Stock IDE和核心库留给其他makefile方法。


显然,它可以超频到20 mHz
TheDoctor 2014年

@TheDoctor-这不是超频。ATmega328p的额定频率为20 Mhz。Arduinos实际上是降频到16MHz。
康纳·沃尔夫

@FakeName是的,我的意思是您可以修改一个Arduino开发板,使其内腔谐振器以20 mHz的频率进行
调谐

哦,另一个旁注。通常,您可以在没有重大问题的情况下超出安全操作区域。我有许多主板运行16 Mhz和3.3V电源,没有问题。它们在极端温度下可能会有稳定性问题,但似乎在室温下几乎可以正常工作。
康纳·沃尔夫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.