Quelle est la vitesse d’un Arduino?

Lors du choix d’une carte Arduino, j’ai souvent constaté que les gens s’inquiètent de la vitesse du processeur. D’après mon expérience, j’ai découvert que les planches plus rapides ne sont pas toujours meilleures, surtout lorsque le coût est impliqué. Pour souligner cela pour Arduino, j’ai élaboré ce guide sur la vitesse à laquelle les différentes cartes Arduino fonctionnent généralement et j’ai comparé certains des compromis pour cette vitesse (coût et consommation d’énergie).

Un Arduino fonctionne généralement à 16 Mhz ou 48 Mhz, selon le processeur utilisé par cette carte Arduino particulière. Les cartes Arduino les plus lentes incluent les Micro, UNO et Mega qui fonctionnent toutes à 16 Mhz, tandis que l’Arduino le plus rapide est le Portenta H7 qui peut fonctionner jusqu’à 480 Mhz. La plupart des projets Arduino ne nécessitent pas une vitesse aussi rapide, et certains projets peuvent même bénéficier d’une vitesse plus lente.

Cela signifie qu’un Arduino est capable d’exécuter environ 4 à 16 millions d’instructions chaque seconde (certaines instructions prennent plus d’un cycle d’horloge pour s’exécuter). D’après ma compréhension de l’importance de cela, la vitesse à laquelle les instructions peuvent être exécutées peut être importante lors de la conversion de signaux analogiques en signaux numériques ou vice versa, comme dans les applications de traitement audio ou vidéo.

Le code est compilé en instructions, un Arduino peut généralement exécuter 4 millions d’instructions par seconde

De nombreux projets électroniques sur lesquels j’ai travaillé nécessitent un compromis entre le coût du processeur, la vitesse du processeur et la quantité d’énergie qu’il consomme.

Dans ce guide, j’ai regardé :

  • Quel est l’Arduino le plus rapide et pourquoi il peut être préférable d’utiliser un Arduino plus lent dans de nombreux projets
  • Une comparaison complète des vitesses Arduino et de leurs coûts
  • Comment faire fonctionner un Arduino plus rapidement !

Quel est l’Arduino le plus rapide

L’Arduino le plus rapide et adapté à la plupart des applications est l’Arduino Due, avec une vitesse d’horloge de 84 MHz et un coût typique de 40 $ . Un processeur plus rapide peut être trouvé sur le Portenta H7, qui peut fonctionner jusqu’à 480 Mhz. Le Portenta est cependant destiné aux applications de traitement d’images et d’IA en temps réel et n’est pas aussi adapté que le Due pour la plupart des projets.

Je n’ai jamais vraiment trouvé que la puissance de traitement constituait une limitation sérieuse pour la plupart des projets Arduino (les miens concernent généralement des capteurs, des périphériques ou la mesure de signaux simples). Il peut y avoir certaines situations où un processeur plus rapide est nécessaire, même si même dans ces cas, il peut y avoir des fonctionnalités sur une carte (ou un bouclier) qui vous permettent de surmonter ce problème, comme la « capture d’entrée ».

Un Arduino plus rapide peut être utile pour :

  • Traitement du son, en particulier lorsqu’il est important d’échantillonner une entrée en haute qualité
  • Traitement vidéo, soit en détectant et en traitant une entrée, soit en créant une sortie, un processeur plus rapide peut être nécessaire pour la vidéo
  • Applications à temps critique, si votre processeur doit effectuer des tâches à un certain moment (comme un système de contrôle détaillé), alors il peut être important d’en utiliser un plus rapide – il existe cependant d’autres techniques pour gérer un processeur lent, le multitâche, et applications en temps réel.

Un Arduino plus lent peut être utile pour :

  • Économiser de l’énergie, en particulier lorsqu’il est alimenté par batterie : le processeur consommera moins d’énergie s’il est plus lent
  • Économiser de l’argent, les processeurs généralement plus lents sont moins chers (voir le tableau comparatif ci-dessous par exemple)
  • Simplicité du circuit, même si ce n’est pas souvent un problème avec les circuits Arduino, une vitesse de fonctionnement plus lente peut signifier moins de contraintes sur la conception de votre circuit de support.

Il existe également ce mode « capture d’entrée » qui peut capturer les entrées avec une plus grande précision que ne le permettrait la vitesse d’horloge. Vérifiez ceci si vous vous sentez limité par la vitesse d’horloge de l’Arduino pour capturer des signaux analogiques.

J’ai lu des recherches intéressantes sur la relation entre la vitesse d’horloge et l’échantillonnage du signal (pour le son/vidéo) vers lesquelles j’ai laissé un lien dans la section Références à la fin de ce guide si vous souhaitez également lire. C’est assez approfondi, donc pas aussi utile pour le projet Arduino typique.

Comparaison de la vitesse et des coûts Arduino (tableau complet)

Le tableau ci-dessous est une comparaison de la vitesse Arduino et des coûts typiques pour chacune des cartes Arduino actuelles les plus populaires :

ConseilVitesse de l’horlogePrix ​​​​typique
Nano16 MHz20,70 $
Nano 3364 MHz20,20 $
Micro16 MHz20,70 $
Léonard16 MHz20,70 $
ONU Rév. 316 MHz23,00 $
Méga 2560 Rév. 316 MHz40,30 $
ONU WiFi Rév. 216 MHz44,80 $
Yun16 MHz56,40 $
Exigible84 MHz40,30 $
MKR WiFi 101048 MHz32,10 $
MKR WAN131048 MHz40,30 $
MKR Vidor 400048 MHz72,40 $
Portenta H7480 MHz103,40 $

Comparaison des cartes Arduino par vitesse d’horloge et prix typique (USD)

La Due et la Nano 33 sont les meilleures cartes en termes de vitesse d’horloge par dollar et sont les plus adaptées à une grande variété de projets (même si la Portenta H7 est techniquement plus rapide, elle sert un ensemble de niches d’utilisations principalement liées au traitement d’image). Des précautions doivent être prises lors de l’utilisation de ces cartes car elles fonctionnent à 3,3 V ; il existe cependant des moyens de les configurer pour qu’ils soient compatibles avec les blindages 5V.

Je pense qu’il est un peu injuste d’inclure le Portenta et le Vidor sur cette liste car ils sont vraiment destinés à des utilisations de niche où leur vitesse d’horloge n’est pas comparable à celle des autres cartes. Si le projet que vous avez en tête nécessite un Portenta (bon pour le traitement d’image) ou un Vidor (pour son FPGA), alors j’espère que la vitesse d’horloge ne figure pas en tête de votre liste d’exigences.

Comment faire fonctionner un Arduino plus rapidement

Il est possible d’augmenter la vitesse d’horloge sur de nombreuses cartes Arduino car les processeurs ATmega au cœur des cartes sont capables de fonctionner à une vitesse plus rapide. D’après ce que j’ai lu, il semble que cela puisse conduire à ce que certaines bibliothèques liées au timing ne fonctionnent plus correctement.

Plutôt que de modifier la vitesse d’horloge sur une carte Arduino existante, il semble plus facile de construire votre propre carte « compatible Arduino » à partir du processeur ATmega correspondant, puis de l’exécuter à la vitesse d’horloge plus rapide souhaitée. Un exemple de ceci est ici .

Les étapes de base pour créer un « Arduino » plus rapide sont :

  1. Câblez un processeur ATmega dans un circuit compatible Arduino
  2. Compilez un chargeur de démarrage pour prendre en charge l’augmentation de la vitesse d’horloge
  3. Écrivez du code en tenant compte de l’augmentation de la vitesse d’horloge (c’est-à-dire faites attention au timing)
Oscillateur à cristal, point de départ de l’horloge du processeur

J’ai souvent trouvé qu’il n’était *pas* nécessaire d’augmenter la vitesse sur un Arduino ; il n’y a pas beaucoup de situations où les quelques MHz supplémentaires ajouteront de la valeur à un projet, en particulier par rapport à l’effort nécessaire pour y parvenir. Soit étudiez la « capture d’entrée » ou un autre moyen de conversion vers/depuis le signal analogique, soit utilisez un microprocesseur plus rapide (par exemple le Due).

Conclusion

En résumé:

  • Les Arduinos peuvent généralement exécuter 4 à 16 millions (et plus) d’instructions par seconde.
  • L’Arduino le plus rapide est le Portenta H7, bien que la plupart des projets nécessitant de la vitesse seraient satisfaits par le Due.
  • Le Due est probablement aussi le meilleur rapport qualité-prix si l’on considère uniquement la vitesse de traitement (84 MHz pour 40 $)
  • Il est possible de faire fonctionner un Arduino plus rapidement, bien que le moyen le plus simple soit de construire votre propre Arduino à la place.

Les références

Certaines des références que j’ai utilisées dans ce guide incluent :

  • Cet article sur la relation entre la fréquence d’horloge et l’échantillonnage
  • La fiche technique complète du processeur ATmega (que l’on trouve couramment dans les cartes Arduino)
  • Le jeu d’instructions pour ces processeurs ATmega

A lire également

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *