为什么Arduino出厂时带有16MHz晶振而不是20MHz?


33

为什么Arduino板附带16MHz晶振而不是20MHz晶振?毕竟,它们被指定用于20MHz。

我猜想,慢速运行有一些好处(功耗更低,寿命更长),但是我一定会缺少一些东西。


1
在旧的Arduino论坛中也有人问过:arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1240016311
vicatcu 2012年

3
请注意,通过适当的编程,可以多次获得该25%的应用程序速度差距。不过,我尝试远离任何IC的极限。
tyblu 2012年

Answers:


29

我会在Arduino论坛上回答这个问题:

最初的ATmega8 Arduino以16MHz运行,这是所用ATmega8 cpu的最高额定时钟速度。当“升级”到ATmega168(最高20MHz的cpu速度)时,时钟保持在16MHz(可能),这是因为设计人员认为,使用新的时钟速率,更多的人/代码将具有向后兼容性问题,而不是额外的25 cpu效能百分比。 当然认为他们是对的...


6

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


5

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

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.