为什么 Arduinos 使用 16MHz 晶振而不是 20MHz?

电器工程 Arduino 水晶 时钟速度
2022-01-06 10:21:32

为什么 Arduino 板配备 16MHz 晶振而不是 20MHz?毕竟,它们被指定为在 20MHz 下运行。

我想运行得更慢有一些好处(更低的功耗,更长的寿命),但我一定错过了一些东西。

3个回答

我会接受 Arduino 论坛上的答案:

最初的 ATmega8 Arduino 以 16MHz 运行,这是使用的 ATmega8 cpu 的最高额定时钟速度。当“升级”到 ATmega168(最高 cpu 速度为 20MHz)时,时钟保持在 16MHz(可能),因为设计人员认为,与从额外的 25 % CPU 性能。 当然认为他们是对的...

实际上,我听到的最好的理由之一是 UART 在以 16 MHz 运行时可以完美匹配 1 Mbit 和 2 Mbit 速率,但在以 20 MHz 运行时则不能。有许多设备具有 1 和 2 Mbit UART 输入,例如机器人伺服系统的 Dynamixel 系列。

第三点是 ATmega168 和 ATmega328 的低功耗晶振在 16 MHz 以上不工作。因此,如果您将 20 MHz 晶体连接到 XTAL 引脚,则必须使用会消耗更多功率的全摆幅晶体振荡器(或根本不使用晶体)。