Pourquoi les Arduinos expédient-ils avec un cristal de 16 MHz au lieu de 20 MHz?

33

Pourquoi les cartes Arduino sont-elles livrées avec un cristal 16 MHz au lieu de 20 MHz? Ils sont conçus pour fonctionner à 20 MHz, après tout.

Je pense qu'il y a quelques avantages à fonctionner plus lentement (consommation d'énergie réduite, durée de vie plus longue), mais il me manque quelque chose.

JellicleCat
la source
1
Cela a également été demandé dans l'ancien forum Arduino: arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1240016311
vicatcu Le
3
Notez que cet écart de vitesse d'application de 25% peut être gagné plusieurs fois avec une programmation appropriée. J'essaie toutefois d'éviter les limites extrêmes de tout circuit intégré.
Tyblu

Réponses:

29

Je voudrais acheter la réponse sur le forum Arduino:

L'ATmega8 original Arduino fonctionnait à 16 MHz, ce qui correspond à la vitesse d'horloge la mieux notée pour le processeur ATmega8 utilisé. Lorsqu’elle a été mise à niveau vers ATmega168 (avec une vitesse maximale de 20 MHz), l’horloge a été laissée à 16 MHz (probablement) car les concepteurs pensaient que davantage de personnes / codes auraient des problèmes de compatibilité avec le passé avec un nouveau taux % de performances du processeur. Je pense certainement qu'ils avaient raison ...

vicatcu
la source
6

En fait, l'une des meilleures raisons que j'ai entendue est que l'UART peut parfaitement correspondre à des débits de 1 Mbit et 2 Mbit lorsqu'il est utilisé à 16 MHz, mais pas à 20 MHz. Un certain nombre de périphériques sont dotés d'entrées UART 1 et 2 Mbits, tels que la gamme de servos de robot Dynamixel.

Jon Watte
la source
5

Un troisième point est que l’oscillateur à cristal basse consommation des ATmega168 et ATmega328 ne fonctionne pas au-dessus de 16 MHz. Donc, si vous avez un cristal de 20 MHz connecté aux broches XTAL, vous devez utiliser l’oscillateur à cristal Full Swing, qui consommera plus de puissance (ou n’utilisera aucun cristal).

Pascal Rosin
la source