Perché gli Arduinos spediscono con cristallo 16MHz invece di 20MHz?


33

Perché le schede Arduino vengono spedite con cristallo 16MHz anziché 20MHz? Dopotutto, sono progettati per funzionare a 20 MHz.

Immagino che ci siano alcuni vantaggi nel correre più lentamente (basso consumo energetico, maggiore durata), ma devo mancare qualcosa.


1
Ciò è stato anche chiesto nel vecchio forum di Arduino: arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1240016311
vicatcu,

3
Si noti che questo gap di velocità dell'applicazione del 25% può essere superato molte volte con una corretta programmazione. Cerco comunque di stare lontano dai limiti estremi di ogni IC.
Tyblu,

Risposte:


29

Comprerei la risposta sul forum di Arduino:

L'arduino originale ATmega8 funzionava a 16MHz, che era la velocità di clock più votata per la CPU ATmega8 utilizzata. Quando "aggiornato" ad ATmega168 (con una velocità della cpu superiore a 20 MHz), l'orologio è stato lasciato a 16 MHz (probabilmente) perché i progettisti hanno pensato che più persone / codice avrebbero avuto problemi di retrocompatibilità con una nuova frequenza di clock rispetto a 25 extra % prestazioni cpu. Io certamente credo che avevano ragione ...


6

In realtà, uno dei migliori motivi che ho sentito è che l'UART può perfettamente corrispondere a 1 Mbit e 2 Mbit quando funziona a 16 MHz, ma non quando funziona a 20 MHz. Esistono numerosi dispositivi con ingressi UART da 1 e 2 Mbit, come la linea di servi robot Dynamixel.


5

Un terzo punto è che l'oscillatore a cristallo a bassa potenza di ATmega168 e ATmega328 non funziona sopra i 16 MHz. Quindi, se si dispone di un cristallo da 20 MHz collegato ai pin XTAL, è necessario utilizzare l'oscillatore a cristallo Full Swing che consumerà più energia (o non utilizzerà alcun cristallo).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.