🧊 Atmel-ICE & Microchip Studio

Programmateur/débogueur professionnel et IDE complet pour les microcontrôleurs AVR et SAM — installation, configuration et premier projet

Les outils professionnels du monde AVR

Si le PICkit 3 + MPLAB X forment l'écosystème officiel des PIC, le duo Atmel-ICE + Microchip Studio est l'équivalent pour le monde AVR (ATmega, ATtiny, AT90, XMEGA, SAM). Ces outils offrent des capacités de débogage avancées que les alternatives gratuites (USBasp, Arduino as ISP) ne possèdent pas.

Ce guide couvre l'ensemble de la chaîne de développement professionnelle pour AVR :

🧊 L'Atmel-ICE — Programmateur et débogueur

Qu'est-ce que l'Atmel-ICE ?

L'Atmel-ICE est le programmateur/débogueur officiel de Microchip pour toutes les familles AVR et SAM. C'est l'outil de référence pour le développement professionnel. Il supporte trois interfaces de programmation/débogage :

Caractéristiques techniques

ParamètreValeur
Connexion PCUSB 2.0 (Micro-B)
Tension cible1.8V – 5.5V (détection automatique)
InterfacesISP, JTAG, debugWIRE, aWire, SWD, PDI
MCU supportésAVR (ATmega, ATtiny, XMEGA, AVR-Dx), SAM (ARM Cortex-M)
Vitesse ISP maxFosc cible / 4
DébogageBreakpoints matériels, step, watch, registres en temps réel
Prix~100 € (original Microchip), ~25–40 € (clone)

🔌 Connecteur ISP — Brochage 6 broches

Le connecteur ISP standard utilise un header 2×3 broches au pas de 2.54 mm. C'est le connecteur le plus utilisé pour programmer les AVR :

Pin Signal Fonction ATmega328P ATtiny85
1MISOMaster In, Slave OutPB4 (D12)PB1 (Pin 6)
2VCCAlimentation cibleVCCPin 8 (VCC)
3SCKHorloge sériePB5 (D13)PB2 (Pin 7)
4MOSIMaster Out, Slave InPB3 (D11)PB0 (Pin 5)
5RESETReset de la ciblePC6 (Reset)PB5 (Pin 1)
6GNDMasseGNDPin 4 (GND)

⚠️ Repérage du Pin 1 : Le pin 1 du connecteur ISP est identifié par un triangle ou un point gravé sur le boîtier de l'Atmel-ICE, et par un détrompeur sur le câble plat. Un branchement inversé peut endommager le programmateur ou le microcontrôleur. Vérifiez toujours l'orientation !

Câblage sur breadboard

Si vous n'avez pas de connecteur ISP 6 broches sur votre breadboard, vous pouvez câbler les 6 fils individuellement entre l'Atmel-ICE et les broches correspondantes de l'ATmega328P ou de l'ATtiny85. Utilisez des fils dupont femelle-mâle.

💡 Astuce : L'Atmel-ICE ne fournit pas d'alimentation à la cible (contrairement au PICkit 3/4 qui peut alimenter le circuit). Votre circuit doit avoir sa propre alimentation (USB 5V, régulateur, pile) avant de lancer la programmation.

📥 Installation de Microchip Studio (ex Atmel Studio)

Présentation

Microchip Studio (anciennement Atmel Studio 7) est l'IDE officiel et gratuit pour le développement AVR et SAM. Il est basé sur Microsoft Visual Studio Shell, ce qui lui confère une interface riche avec autocomplétion IntelliSense, navigation dans le code, refactoring et un débogueur visuel puissant.

L'IDE intègre directement le compilateur AVR-GCC (pour C/C++) et l'assembleur AVR-AS, ainsi que le support de tous les programmateurs Microchip (Atmel-ICE, AVRISP mkII, MPLAB SNAP) et de nombreux programmateurs tiers.

⚠️ Windows uniquement : Microchip Studio ne fonctionne que sur Windows (7, 10, 11). Pour macOS et Linux, utilisez MPLAB X IDE (qui supporte aussi les AVR récents) ou VS Code + PlatformIO comme alternative multi-plateforme.

Étape 1 : Téléchargement

Rendez-vous sur microchip.com → Microchip Studio et téléchargez l'installateur (~850 Mo). Un compte Microchip gratuit peut être requis.

Étape 2 : Installation

  1. Lancez l'installateur en tant qu'administrateur.
  2. Sélectionnez les composants à installer :
    • AVR/SAM 8-bit MCU — Obligatoire pour ATmega et ATtiny
    • AVR-GCC Toolchain — Le compilateur C/C++
    • ☑️ ARM/SAM 32-bit MCU — Optionnel, pour les SAM (Cortex-M)
  3. L'installation prend 10 à 20 minutes selon votre PC (le téléchargement des toolchains est long).
  4. Redémarrez Windows si demandé (nécessaire pour les pilotes USB de l'Atmel-ICE).

Étape 3 : Vérification

  1. Lancez Microchip Studio.
  2. Branchez votre Atmel-ICE en USB. La LED verte doit s'allumer.
  3. Allez dans Tools → Device Programming (ou Ctrl+Shift+P).
  4. Dans le panneau, sélectionnez votre outil (Atmel-ICE), l'interface (ISP) et le device (ATmega328P).
  5. Cliquez « Apply » puis « Read → Device Signature ».
  6. Si la signature est lue correctement (0x1E9514 pour l'ATmega328P), tout fonctionne.

🧭 L'interface de Microchip Studio

L'interface est similaire à Visual Studio et se compose de :

I/O View — La killer feature

La fenêtre I/O View (View → I/O View pendant le débogage) affiche tous les registres du microcontrôleur en temps réel avec leurs bits nommés. Vous pouvez voir et modifier PORTB, DDRB, ADMUX, TCCR1A etc. pendant que le programme est en pause. C'est un outil de débogage incroyablement puissant qui n'a pas d'équivalent dans l'IDE Arduino.

🆕 Créer un projet AVR-GCC

  1. Ouvrez Microchip Studio.
  2. Allez dans File → New → Project (ou Ctrl+Shift+N).
  3. Sélectionnez « GCC C Executable Project ».
  4. Donnez un nom au projet (ex : LED_Blink_ATmega328P) et choisissez un dossier.
  5. Cliquez OK.
  6. Dans la fenêtre de sélection du device, tapez ATmega328P dans la recherche et sélectionnez-le.
  7. Cliquez OK. Le projet est créé avec un fichier main.c pré-rempli.

Premier programme

Remplacez le contenu de main.c par :

#define F_CPU 16000000UL  // 16 MHz (Arduino Uno) ou 1 MHz (interne)

#include <avr/io.h>
#include <util/delay.h>

int main(void) {
    DDRB |= (1 << PB5);  // PB5 (D13) en sortie

    while (1) {
        PORTB ^= (1 << PB5);  // Toggle LED
        _delay_ms(500);
    }
}

Configurer F_CPU

La macro F_CPU doit correspondre à la fréquence réelle de votre oscillateur. Si vous programmez un ATmega328P standalone avec l'oscillateur interne (pas un Arduino), la fréquence par défaut est 1 MHz (8 MHz / diviseur 8). Sur un Arduino Uno avec quartz 16 MHz, c'est 16 MHz.

Vous pouvez aussi définir F_CPU dans les propriétés du projet : Project → Properties → Toolchain → AVR/GNU C Compiler → Symbols → ajoutez F_CPU=16000000UL.

🔨 Compiler et programmer

Compilation

  1. Cliquez sur Build → Build Solution (ou F7).
  2. Vérifiez la console Output. Vous devez voir :
Build succeeded.
========== Build: 1 succeeded or up-to-date, 0 failed ==========

Program Memory Usage: 178 bytes   0.5% Full
Data Memory Usage:      0 bytes   0.0% Full

Notez l'utilisation mémoire ultra-compacte : 178 octets pour un Blink LED, contre ~930 octets avec le framework Arduino.

Programmation via Atmel-ICE

  1. Allez dans Tools → Device Programming (Ctrl+Shift+P).
  2. Sélectionnez : Tool = Atmel-ICE, Device = ATmega328P, Interface = ISP.
  3. Cliquez Apply.
  4. Cliquez Read dans la section « Device Signature » pour vérifier la communication.
  5. Dans l'onglet Memories, le fichier .elf de votre projet devrait être sélectionné automatiquement.
  6. Cliquez Program.
  7. Le message « Erasing device... OK / Programming Flash... OK / Verifying Flash... OK » confirme le succès.

ℹ️ Raccourci rapide : Pour compiler et programmer en un clic, configurez l'Atmel-ICE comme outil dans Project → Properties → Tool, puis utilisez le bouton « Start Without Debugging » (Ctrl+Alt+F5). Cela compile, programme et lance le code sans ouvrir le débogueur.

🐛 Le débogueur — La vraie puissance de l'Atmel-ICE

Le débogage est la raison principale d'investir dans un Atmel-ICE plutôt qu'un simple USBasp. Le débogueur permet d'exécuter le code pas à pas sur le vrai microcontrôleur, d'inspecter les variables et les registres en temps réel, et de placer des points d'arrêt.

Interfaces de débogage

InterfaceMCU compatiblesBreakpoints HWParticularité
debugWIREATmega328P, ATmega168, ATtiny85, ATtiny131Un seul fil (RESET), activer via fuse DWEN
JTAGATmega1284, ATmega2560, XMEGA3–44 fils dédiés (TDI, TDO, TMS, TCK)
PDIXMEGA, AVR-DxIllimités (SW)2 fils, nouvelle génération AVR

Déboguer avec debugWIRE (ATmega328P)

  1. Dans Project → Properties → Tool, sélectionnez l'Atmel-ICE et l'interface debugWIRE.
  2. Placez un breakpoint en cliquant dans la marge gauche de l'éditeur (point rouge).
  3. Lancez le débogage avec Debug → Start Debugging and Break (Alt+F5).
  4. L'IDE peut demander d'activer le fuse DWEN (debugWIRE Enable). Acceptez — c'est automatique et réversible.
  5. Le programme s'exécute sur le microcontrôleur et s'arrête au premier breakpoint.

Commandes de débogage

RaccourciAction
F5Démarrer / Continuer l'exécution
Shift+F5Arrêter le débogage
F10Step Over — exécuter la ligne sans entrer dans les fonctions
F11Step Into — entrer dans une fonction appelée
Shift+F11Step Out — sortir de la fonction courante
F9Toggle Breakpoint — ajouter/supprimer un point d'arrêt
Ctrl+Alt+WFenêtre Watch — surveiller des variables

Fenêtres de débogage utiles

⚙️ Configuration des fuses

Les fuses sont l'équivalent AVR des #pragma config des PIC. Ce sont des bits de configuration non volatiles qui définissent le comportement fondamental du microcontrôleur : source d'horloge, diviseur, Brown-Out Detect, bootloader, etc.

⚠️ Attention aux fuses ! Des fuses mal configurés peuvent rendre votre AVR inaccessible en ISP (par exemple si vous sélectionnez un oscillateur externe alors qu'il n'y en a pas). Contrairement aux PIC, les fuses ne sont pas dans le code source — ils se programment séparément. Lisez toujours les fuses actuels avant de les modifier, et utilisez un calculateur de fuses en ligne pour vérifier.

Lire et écrire les fuses dans Microchip Studio

  1. Allez dans Tools → Device Programming.
  2. Sélectionnez votre outil et device, cliquez Apply.
  3. Cliquez sur l'onglet Fuses.
  4. Cliquez Read pour lire les fuses actuels.
  5. Modifiez les valeurs dans l'interface graphique (menus déroulants).
  6. Cliquez Program pour écrire les nouveaux fuses.

Fuses courants ATmega328P

ConfigurationLowHighExtendedUsage
Interne 8 MHz0xE20xD90xFFStandalone, sans quartz
Interne 1 MHz (défaut usine)0x620xD90xFFATmega328P neuf, basse conso
Externe 16 MHz (Arduino Uno)0xFF0xDE0xFDAvec quartz 16 MHz + bootloader

🔄 Alternatives à l'Atmel-ICE

Programmateur Prix ISP Débogage IDE compatible
Atmel-ICE (original)~100 €✅ debugWIRE/JTAGMicrochip Studio, MPLAB X
Atmel-ICE (clone)~25–40 €✅ (variable)Microchip Studio
USBasp~3 €avrdude (ligne de commande)
Arduino as ISP0 € (déjà le matériel)Arduino IDE, avrdude
MPLAB SNAP~15 €✅ (limité)MPLAB X, Microchip Studio
PICkit 4~50 €✅ (AVR récents)MPLAB X

Notre recommandation

💻 Alternative : VS Code + PlatformIO

Si vous êtes sur macOS ou Linux, ou si vous préférez un IDE plus léger et moderne, VS Code + PlatformIO est une excellente alternative à Microchip Studio :

Installation rapide

  1. Installez VS Code.
  2. Installez l'extension PlatformIO IDE depuis le marketplace.
  3. Créez un nouveau projet : PlatformIO → New Project → Board = « ATmega328P » → Framework = « Arduino » (ou aucun pour bare metal).
  4. Codez dans src/main.c, compilez avec Ctrl+Alt+B, téléversez avec Ctrl+Alt+U.

📌 Comparaison des écosystèmes : PIC vs AVR

Critère Écosystème PIC Écosystème AVR
IDE officielMPLAB X (multiplateforme)Microchip Studio (Windows seul)
CompilateurXC8 (propriétaire, Free/Pro)AVR-GCC (open-source, gratuit)
Programmateur officielPICkit 3/4Atmel-ICE
Programmateur budgetClone PICkit (~10 €)USBasp (~3 €)
Débogage sur chip compactLimité (ICD sur 8 broches)debugWIRE (même ATtiny)
Configuration matérielle#pragma config (dans le code)Fuses (programmés séparément)
Alternative multiplateformeMPLAB X (natif)VS Code + PlatformIO