🔍 Présentation technique

L'ATmega328P est le microcontrôleur 8-bit AVR au cœur de l'Arduino Uno, devenu standard pédagogique et prototypage mondial. Architecture RISC 8-bit 20MHz, 32KB Flash (0.5KB bootloader), 2KB SRAM, 1KB EEPROM. Périphériques : 23 GPIO, 6×PWM, 6×ADC 10-bit, UART, SPI, I2C (TWI). Alimentation 1.8-5.5V, consommation 1.5mA actif (1MHz, 1.8V), 0.1µA power-down. Trois timers (2×8-bit, 1×16-bit) permettent PWM, comptage, capture. Bootloader Arduino permet programmation USB-Serial sans programmateur externe. Boîtiers DIP-28 (breadboard-friendly) et TQFP-32/QFN-32 (SMD). L'ATmega328P excelle en simplicité et stabilité - pas de périphériques complexes mais ultra-fiable.

💡 Guide de sélection

L'ATmega328P convient parfaitement pour : apprentissage électronique/programmation (Arduino Uno), projets simples capteurs/actionneurs sans WiFi, contrôle moteurs DC/servo/stepper, automatismes industriels robustes, produits batterie ultra-basse consommation. Pour WiFi/Bluetooth, l'ESP32 est indispensable. Pour plus de puissance (32-bit, >100MHz), STM32F4 ou Teensy. Pour ultra-compact, l'ATtiny85 (8 pins) ou ATtiny1616 suffisent. L'ATmega328P brille en fiabilité industrielle et écosystème Arduino immense (millions de bibliothèques). Prix dérisoire : 2-3€ DIP-28, 1.50€ SMD. Alternative moderne compatible pins : ATmega328PB (nouveaux timers/UART). Pour production, programmer directement via ISP (AVRISP, USBasp) sans bootloader = 32KB Flash complets.

⚙️ Conseils d'utilisation

Alimentation : 5V régulé (LM7805, AMS1117-5.0), découplage 100nF + 10µF sur VCC/AVCC. Cristal externe 16MHz obligatoire pour timing précis (avec condensateurs 22pF) - sans cristal, oscillateur interne 8MHz imprécis ±10%. Programmation : bootloader Arduino Uno via USB-Serial (TX/RX + DTR auto-reset), ou ISP 6-pin (MISO/MOSI/SCK/RESET). Fuses critiques : définissent source horloge, bootloader, brown-out. Configuration Arduino IDE : Board = Arduino Uno, Programmer = USBasp (si ISP). Pour basse consommation, désactiver ADC, sleep mode POWER_DOWN (0.1µA), réveil par interruption externe (INT0/1) ou timer watchdog. Les GPIO tolèrent 40mA par pin, 200mA total - respecter limites. ADC référence interne 1.1V ou AVCC - choisir selon application. EEPROM 1KB pour stockage paramètres persistants (100k cycles écriture).

📝 Retour d'expérience

MCU qui m'a fait découvrir l'embarqué via Arduino Uno en 2010. Toujours pertinent 15 ans après pour projets simples et enseignement. J'utilise ATmega328P standalone (hors Uno) pour produits finis : régulateur aquarium (contrôle chauffage/éclairage), station météo autonome batterie (sleep 5min, réveil mesure, 2 ans sur 2×AA), automatisme serre (ventilation/arrosage). En production, programmer via ISP = économie bootloader 0.5KB + pas besoin USB-Serial. Extrêmement stable - j'ai des ATmega328P tournant 5+ ans 24/7 sans défaillance. Pour nouveaux projets nécessitant WiFi, je passe ESP32, mais ATmega reste champion fiabilité/simplicité/coût. Conseil : acheter ATmega328P avec bootloader préchargé (3€) évite programmateur ISP pour débuter.

Spécifications Techniques

Mémoire Flash32KB
Mémoire RAM2KB
Boîtier28P3|32A|28M1|32M1-A

Caractéristiques Principales

  • Architecture RISC améliorée 131 instructions
  • Multiplicateur on-chip 2 cycles
  • EEPROM 1KB avec 100000 cycles
  • Trois Timer/Counters avec PWM
  • Six modes de mise en veille
  • Support QTouch pour interfaces tactiles capacitives

Applications Typiques

Systèmes embarqués Interfaces tactiles Automatisation industrielle IoT et capteurs intelligents

📄 Consulter la documentation