L'ATmega328P est l'un des microcontrôleurs les plus populaires au monde. Ce microcontrôleur à puce unique est un bon choix pour ceux qui s'aventurent dans l'électronique de bricolage et se trouve sur la dernière génération d'Arduino Unos (ainsi que d'autres cartes de microcontrôleur). Mais que devez-vous savoir sur l'ATmega328P avant de pouvoir commencer à utiliser votre Arduino ?
Qu'est-ce qu'un microcontrôleur ATmega328P ?
Créé par Atmel, l'ATmega328P est un microcontrôleur monopuce basé sur un cœur de processeur RISC 8 bits. Ce petit microcontrôleur est peu puissant et abordable, ce qui en fait un excellent choix pour diverses applications, y compris les projets de bricolage que vous souhaitez réaliser.
La puce ATmega328P fait partie intégrante de l'Arduino depuis de nombreuses années. L'Arduino Uno utilise ce microcontrôleur, ainsi que les cartes Arduino Pro Mini et Arduino Nano. Cela le rend extrêmement courant dans le domaine de l'électronique de bricolage, et il vaut la peine d'en apprendre davantage sur ses capacités si vous envisagez d'utiliser ces cartes.
Cartes Arduino utilisant le microcontrôleur ATmega328P
L'ATmega328P se trouve sur les cartes de microcontrôleur Arduino Uno et Arduino Nano, deux des produits les plus populaires d'Arduino. Vous pouvez également acheter cette puce en tant que produit autonome si vous souhaitez la tester sans carte de microcontrôleur, bien que ce soit une manière difficile de commencer. Vous pouvez utiliser notre guide pratique pour en savoir plus sur les différents types de cartes de microcontrôleur Arduino.
Spécifications de la fiche technique ATmega328P
L'ATmega328P a une fiche technique étonnamment dense pour une si petite puce. Il existe un certain nombre de spécifications à connaître avant de commencer à écrire du code pour votre microcontrôleur. Nous les avons décomposés pour faciliter la compréhension des limites et des restrictions de cette puce. Commençons par les spécifications de base pour vous donner une idée de la forme de l'ATmega328P.
- CPU: AVR 8 bits avec une vitesse maximale de 20 MHz
- Mémoire flash: Flash intégré de 32 Ko
- SRAM : 2kB
- EEPROM : 1kB
- Nombre de broches : 28 ou 32 (selon le type de colis)
- Canaux tactiles capacitifs : 16
- Nombre maximal de broches d'E/S : 23
- Interruptions externes : 2
Chacune de ces différentes spécifications joue son propre rôle en rendant l'ATmega328P si bien adapté à une utilisation avec des cartes de développement comme un Arduino. Mais qu'est-ce que cela signifie réellement?
- CPU: Le processeur de la puce ATmega328P est un processeur AVR RISC 8 bits. RISC signifie "ordinateur à jeu d'instructions réduit" et est un type de processeur conçu pour simplifier les tâches individuelles qu'un ordinateur exécute. En revanche, le processeur Intel ou AMD de votre PC est probablement un processeur CISC (ordinateur à jeu d'instructions complexe).
- Mémoire flash: Flash est un type de mémoire non volatile utilisé pour le stockage permanent. L'ATmega328P est équipé de seulement 32 Ko de mémoire flash, bien que cela soit suffisant pour beaucoup de code. Vous pouvez en savoir plus sur les différences entre mémoire volatile et non volatile sur le site de l'UMO.
- SRAM : SRAM signifie "mémoire vive statique". Cette mémoire joue le même rôle que la RAM de votre PC, fournissant à la puce ATmega328P une mémoire temporaire pour stocker les données et les variables au fur et à mesure qu'elle exécute le code.
- EEPROM : Il s'agit d'un type de mémoire effaçable par octet utilisée pour stocker de petites quantités de données. Contrairement à la SRAM, l'EEPROM est non volatile et conserve ses données lorsque la puce ATmega328P n'est pas alimentée.
Schéma de brochage ATmega328P
Le schéma de brochage ATmega328P ci-dessus montre les différentes broches sur la puce DIP ATmega328P et les broches sur une carte Arduino Uno. Cela devrait vous donner une bonne idée de la façon dont cette puce et la populaire carte de microcontrôleur fonctionnent ensemble.
L'ATmega328P est une puce polyvalente avec une variété d'applications. En tant que tel, un certain nombre de boîtiers différents sont disponibles pour cette puce, tous de formes différentes et avec différents types de plomb. TQFP (boîtier quadruple plat), MLF/VQFN (micro leadframe ou quad-flat no-leads) et DIP (boîtier double en ligne) sont les plus courants de ces packages.
Les cartes Arduino Uno authentiques utilisent la variante DIP de la puce ATmega328P (alias ATmega328P-PU), ce qui signifie que la puce peut être retirée et remplacée (contrairement à l'ATmega328P-AU). D'autres types de cartes Arduino utilisent différentes puces ATmega du type de boîtier quad-flat et celles-ci ne peuvent pas être supprimées.
Limitations ATmega328P et Arduino Uno
Comme pour toute puce de microcontrôleur, l'ATmega328P est livré avec certaines limitations qui doivent être prises en compte avant de décider de travailler avec. Ces limitations s'appliquent également aux cartes Arduino qui utilisent ces puces.
Faible budget SRAM
La puce ATmega328P est livrée avec 2 Ko de SRAM, ce qui est suffisant pour la plupart des projets. Pour ceux qui veulent utiliser plusieurs bibliothèques et du code avec beaucoup de variables, cependant, il peut être facile de manquer de SRAM, provoquant l'échec de votre programme.
Les programmeurs travaillant avec des cartes Arduino ont beaucoup de contrôle sur la gestion de la mémoire grâce à l'utilisation de C++. Le texte, les images et d'autres actifs prédéfinis peuvent être stockés dans la mémoire flash afin de libérer de la mémoire supplémentaire pour les programmes que vous exécutez, améliorant ainsi votre budget SRAM.
Puissance de traitement limitée
Le processeur 20 Hz présent sur la puce ATmega328P est idéal pour exécuter du code simple, mais il offre une puissance de traitement limitée pour les applications complexes. Cela signifie qu'il ne convient pas à des choses comme la reconnaissance vocale, l'apprentissage en profondeur ou d'autres tâches courantes de microcontrôleur.
Résoudre ce problème n'est pas possible avec l'ATmega328P. Si vous avez besoin de plus de puissance, vous devrez rechercher une carte de microcontrôleur plus adaptée à la tâche que vous aimeriez jouer, mais il existe de nombreuses options sur le marché pour vous donner accès à ce dont vous avez besoin.
ATmega328P et Arduino Uno Avantages
Outre les limites de l'ATmega328P, l'utilisation d'une puce comme celle-ci présente également des avantages. Celles-ci l'emportent souvent sur les limites du microcontrôleur pour des projets simples, en particulier si vous débutez avec les microcontrôleurs.
- Abordabilité : La puce ATmega328P est abordable et facile à trouver, ce qui la rend idéale pour les projets de bricolage à faible coût. Grâce à la grande valeur de cette puce, l'Arduino Uno est également une carte très abordable.
- Facilité d'utilisation: Conçu pour les consommateurs, l'ATmega328P est facile à utiliser par rapport aux autres puces de microcontrôleur, ce qui le rend idéal pour ceux qui se lancent dans leurs propres projets de bricolage.
- Puce autonome : La puce ATmega328P peut être utilisée seule ou avec une carte à microcontrôleur comme l'Arduino Uno.
En savoir plus sur l'ATmega328P et l'Arduino Uno
Il existe de nombreuses ressources sur le Web conçues pour vous aider à démarrer avec l'Arduino Uno et l'ATmega328P qu'il utilise. Cela vaut la peine de passer du temps à découvrir ce matériel avant de commencer votre prochain projet de microcontrôleur, en vous donnant une idée des limites et des défis auxquels vous pourriez être confronté en cours de route.