Programmer une puce AVR - AVRserial
Intro
Les controlleurs AVR composent une famille de CPU développés et produits par Atmel. Ce sont des microcontroleurs 8-bit à architecture RISC. Ce sont parmis les premières CPU à utiliser une mémoire flash pour stocker les programmes, plutôt qu'une ROM/EPROM/EEPROM. Elles sont donc plus simple à utiliser et à programmer, et sont donc un choix populaire pour les amateurs comme moi. Bon, en rétrospective, ces puces sont aussi très populaires puisqu'elles sont utilisés par la plateforme Arduino. Mais j'ai commencé à les utiliser avant de découvrir le Arduino.
Il y a plusieurs 6 grands types de microcontroleurs AVR:
- tinyAVR: les plus petits des AVR, avec 0.5 à 32 Kb de mémoire flash, PDIP de 6 à 32 pins, fonctionnalitées limités
- megaAVR: la série ATmega, avec 4 à 256 Kb de mémoire flash, PDIP de 28 à 100 pins, fonctionnalités étendues, avec plus d'instructions disponibles
- XMEGA: la série ATxmega, avec 16 à 384 Kb de mémoire flash, PDIP de 44, 64 ou 100 pins, fonctionnalités étendues (DMA, Events et cryptographie)
- Application-specific AVR: cousins de la séroe megaAVR, avec fonctionalitées non-disponible sur les autres AVR, comme des controlleurs LCD et USB, un PWM avancé, etc.
- FPSLIC (AVR avec FPGA): AVR rapide (jusqu'à 50MHz), FPGA de 5k à 40k portes, SRAM comme mémoire (au lieu de flash pour les autres AVR)
- 32-bits AVR: Ancienne famille de puce qui tentait de compétitionner avec les CPU ARM. Ne sont p^lus supporté par Linux depuis 4.12.
Les microcontroleurs AVR se programment de plusieurs façon:
- In-System Programming (ISP): C'est la façon la plus simple de programmer des puces AVR, et c'est celle que je vais utiliser ici.
Pour la programmation ISP, il existe un connecteur à 6 pins et une connecteur à 10 pins. Voici le pinout des 2 connecteurs:
- Program and Debug Interface (PDI): Interface propriétaire de Atmel pour programmer les puces XMEGA.
- High-Voltage Serial Programming (HVSP): Mode "backup", à 12V, pour les AVR. J'ai jamais utilisé ce mode...
- High-Voltage Parallel Programming (HVPP): La dernière solution pour sortir une puce AVR "lockée" par des fuses incorrectes. Mode intéressants...