Rétro-ingénierie des MCU Atmel
Atmel Corporation est un fabricant américain de semi-conducteurs, fondé en 1984. L'entreprise se concentre sur des solutions embarquées de niveau système basées sur des microcontrôleurs flash. Ses produits incluent des microcontrôleurs (AVR 8 bits, AVR 32 bits, basés sur ARM, grade automobile et dérivés 8051), des dispositifs radiofréquence (RF) incluant le Wi-Fi, des mémoires EEPROM et flash, des puces de sécurité symétriques et asymétriques, des capteurs et contrôleurs tactiles, ainsi qu'un certain nombre de produits spécifiques à des applications.
Atmel fournit ses dispositifs sous forme de produits standards, ASIC ou ASSP selon les exigences de ses clients.
Atmel sert un large éventail d'applications incluant l'électronique grand public, les télécommunications, les réseaux informatiques, l'industrie, le médical, l'automobile, l'aérospatial et le militaire. C'est un leader dans le domaine des microcontrôleurs et des systèmes tactiles, notamment pour les systèmes embarqués, comme les célèbres kits de développement Arduino.
Le siège social d'Atmel est à San Jose, Californie. Il possède d'importants sites à Trondheim (Norvège), Colorado Springs (Colorado), Chennai (Inde), Shanghai (Chine), Taipei (Taïwan), Rousset (France), Heilbronn (Allemagne), Whiteley (Royaume-Uni) et Munich (Allemagne), en plus de nombreux autres sites dans le monde. Atmel adopte une stratégie « fab-lite », fabriquant une grande partie de sa gamme de produits chez des fondeurs tiers. Elle possède une usine à Colorado Springs qui fabrique sa gamme de capteurs tactiles flexibles XSense.
- Liste des rétro-ingénieries de MCU Atmel par Mikatech :
-
Série AT89xx complète – crack de microcontrôleur : AT89C51 AT89C52 AT89S52 AT89S53 AT89S54 AT89S58 AT89S64 AT89C1051 AT89C2051 AT89C4051 AT89C55 AT89C55WD AT89C5131A AT89C51WD AT89C51ED2 AT89C51CC01 AT89S51 AT89C51CC02 AT89C51CC03 AT89C51RB2 AT89C51RC AT89C51RD2 AT89C51RD-CM AT89C51RC2 AT89C51ID2 AT87C5101 AT89C1051U AT89C2051X2 AT89C5130AM AT89C5130A AT89C5131AL AT89C5131AM AT89C51AC3 AT89C5132 AT89C51AC2 AT89C51CC03C AT89C51SND1C AT89C51CC03U AT89C51IC2 AT89C51RE2 AT89C51SND2 AT89LP2051 AT89LP2052 AT89LP213 AT89LP214 AT89LP216 AT89LP4051 AT89LP4052 AT89LP828 AT89LP428 AT89LS51 AT89LS52 AT89LV51 AT89LS53 AT89LS8252 AT89LV52 AT89LV55 AT89S2051 AT89S4051 AT89S8252 AT89S8253 ...
- Série AT90xx complète – crack de microcontrôleur : AT90S1200 AT90S2323 AT90S2343 AT90S2331 AT90S4433 AT90S8515 AT90S8535 AT90S4414 AT90S4434 AT90S2313 90S1200 90S2323 90S2343 90S2331 90S4433 90S8515 90S8535 90S4414 90S4434 90S2313 ...
- Série AT90CAN/PWM/USB/xx complète – lecture de microcontrôleur : AT90CAN32 AT90CAN64 AT90CAN128 AT90PWM2 AT90PWM216 AT90PWM2B AT90PWM3 AT90PWM316 AT90PWM3B AT90USB1286 AT90USB1287 AT90USB162 AT90USB646 AT90USB647 AT90USB82 ...
-
- Série AT91SAMxx complète – crack de firmware de microcontrôleur : AT91SAM9XE512 AT91SAM9XE256 AT91SAM9XE128 AT91SAM7S64B AT91SAM7S32B AT91SAM7SE512 AT91SAM7SE256 AT91SAM7SE32 AT91SAM7XC512 AT91SAM7XC256 AT91SAM7XC128 AT91SAM7X512 AT91SAM7X256 AT91SAM7X128 AT91SAM7S161 AT91SAM7S512 AT91SAM7S256 AT91SAM7S128 AT91SAM7S64 AT91SAM7S321 ...
- Série ATTinyxx complète – crack de firmware de microcontrôleur : ATtiny4 ATtiny5 ATtiny10 ATtiny11 ATtiny12 ATtiny13 ATtiny15 ATtiny20 ATtiny22 ATtiny24 ATtiny25 ATtiny26 ATtiny261 ATtiny28 ATtiny2313 ATtiny40 ATtiny4313 ATtiny43 ATtiny44 ATtiny45 ATtiny461 ATtiny48 ATtiny84 ATtiny85 ATtiny861 ATtiny87 ATtiny88 ATtiny4A ATtiny5A ATtiny10A ATtiny11A ATtiny12A ATtiny13A ATtiny15A ATtiny20A ATtiny22A ATtiny24A ATtiny25A ATtiny26A ATtiny261A ATtiny28A ATtiny2313A ATtiny40A ATtiny4313A ATtiny43A ATtiny44A ATtiny45A ATtiny461A ATtiny48A ATtiny84A ATtiny85A ATtiny861A ATtiny87A ATtiny88A ATtiny4V ATtiny5V ATtiny10V ATtiny11V ATtiny12V ATtiny13V ATtiny15V ATtiny20V ATtiny22V ATtiny24V ATtiny25V ATtiny26V ATtiny261V ATtiny28V ATtiny2313V ATtiny40V ATtiny4313V ATtiny43V ATtiny44V ATtiny45V ATtiny461V ATtiny48V ATtiny84V ATtiny85V ATtiny861V ATtiny87V ATtiny88V ATtiny814-SSNRES ATtiny814-SSNR ATtiny814-SSFR ATtiny816-SFR ATtiny816-MNRES ATtiny816-MNR ATtiny816-MFR ATtiny816-SNR ATtiny817-MNRES ATtiny817-MFR ATtiny817-MNR ATtiny1614-SSNR ATtiny1614-SSFR ATtiny1616-SFR ATtiny1616-SNR ATtiny1617-MFR ATtiny1617-MNR ATtiny3214-SSNR ATtiny3214-SSFR ATtiny3216-SFR ATtiny3216-SNR ATtiny3217-MFR ATtiny3217-MNR...
- Série ATMegaxx complète – crack de microcontrôleur : ATmega16 ATmega162 ATmega164 ATmega165 ATmega168 ATmega169 ATmega128 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega328 ATmega48 ATmega32 ATmega324 ATmega325 ATmega3250 ATmega329 ATmega3290 ATmega64 ATmega640 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega8 ATmega88 ATmega8515 ATmega8535 ATmega16L ATmega162L ATmega164L ATmega165L ATmega168L ATmega169L ATmega128L ATmega1280L ATmega1281L ATmega2560L ATmega2561L ATmega328L ATmega48L ATmega32L ATmega324L ATmega325L ATmega3250L ATmega329L ATmega3290L ATmega64L ATmega640L ATmega645L ATmega6450L ATmega649L ATmega6490L ATmega8L ATmega88L ATmega8515L ATmega8535L ATmega16P ATmega162P ATmega164P ATmega165P ATmega168P ATmega169P ATmega128P ATmega1280P ATmega1281P ATmega2560P ATmega2561P ATmega328P ATmega48P ATmega32P ATmega324P ATmega325P ATmega3250P ATmega329P ATmega3290P ATmega64P ATmega640P ATmega645P ATmega6450P ATmega649P ATmega6490P ATmega8P ATmega88P ATmega16A ATmega162A ATmega164A ATmega165A ATmega168A ATmega169A ATmega128A ATmega1280A ATmega1281A ATmega2560A ATmega2561A ATmega328A ATmega48A ATmega32A ATmega324A ATmega325A ATmega3250A ATmega329A ATmega3290A ATmega64A ATmega640A ATmega645A ATmega6450A ATmega649A ATmega6490A ATmega8A ATmega88A ATmega8515A ATmega8535A ...
- Série ATXmegaxx complète – crack de microcontrôleur : ATXmega8e5 ATXmega16a4 ATXmega16a4u ATXmega16c4 ATXmega16d4 ATXmega32a4 ATXmega32a4u ATXmega32c3 ATXmega32c4 ATXmega32d3 ATXmega32d4 ATXmega32e5 ATXmega64a1 ATXmega64a1u ATXmega64a3 ATXmega64a3u ATXmega64a4u ATXmega64b1 ATXmega64b3 ATXmega64c3 ATXmega64d3 ATXmega64d4 ATXmega128a1 ATXmega128a1u ATXmega128a3 ATXmega128a3u ATXmega128a4u ATXmega128b1 ATXmega128b3 ATXmega128c3 ATXmega128d3 ATXmega128d4 ATXmega192a3 ATXmega192a3u ATXmega192c3 ATXmega192d3 ATXmega256a3 ATXmega256a3u ATXmega256a3b ATXmega256a3bu ATXmega256c3 ATXmega256d3 ATXmega384c3 ATXmega384d3 ...
- Série ATFxx – crack de microcontrôleur : ATF16V8B ATF16V8BL ATF16V8BQ ATF16V8BQL ATF16LV8C ATF16LV8CEXT ATF16V8C ATF16V8CEXT ATF16V8CZ ATF20V8B ATF20V8BL ATF20V8BQ ATF20V8BQL ATF22LV10C ATF22LV10CEXT ATF22LV10CUES ATF22LV10CZ ATF22LV10CQZ ATV22V10 ATF22V10B ATF22V10BQ ATF22V10BL ATF22V10BQL ATF22V10C ATF22V10CEXT ATF22V10CUES ATF22V10CZ ATF22V10CQZ ATF22V10CZUES ATF22V10CQZUES ATF1500A ATF1500ABV ATF1500ABVL ATF1500 ATF1500L ATF1502AS ATF1502ASL ATF1502ASV ATF1502ASVL ATF1504AS ATF1504ASVL ATF1508 ATF1508AS ATF1508ASV ATF2500C ATF2500CL ATF2500CQ ATF2500CQL ATF750C ATF750CEXT ATF750CL ATF750LVC ATF750LVCCEXT ATF750LVCEXT ATF750LVCL ATV2500 ATV2500H ATV2500L ATV2500B ATV2500BL ATV2500BQL ATV5000 ATV5000L ATV750 ATV750B ATV750BL ATV750L ...
- Série AT88scxx/90scxx – crack de microcontrôleur : AT88SC0104 AT88SC0104C AT88SC0204 AT88SC0204C AT88SC0404 AT88SC0404C AT88SC0808 AT88SC0808C AT88SC1003 AT88SC101 AT88SC102 AT88SC1281 AT88SC12816C AT88SC150 AT88SC153 ...
- Série ATSAMxx – microcontrôleurs ultra-basse consommation basés sur ARM Cortex-M0+ – crack : ATSAMD10C14A ATSAMD11C14A ATSAMD10D14AS ATSAMD10D14AU ATSAMD11D14AS ATSAMD11D14AU ATSAMD10D14AM ATSAMD11D14AM ATSAMD21E15A ATSAMD21E15A ATSAMD21E15B ATSAMD21E15B ATSAMD21E15BU ATSAMD21E15CU ATSAMD21E17A ATSAMD21E17A ATSAMD21E18A ATSAMD21E18A ATSAMD21G15A ATSAMD21G15A ATSAMD21G15B ATSAMD21G15B ATSAMD21G16A ATSAMD21G16A ATSAMD21G16B ATSAMD21G16B ATSAMD21G17A ATSAMD21G17A ATSAMD21G17AU ATSAMD21G18A ATSAMD21G18A ATSAMD21G18AU ATSAMD21J15A ATSAMD21J15A ATSAMD21J15B ATSAMD21J15B ATSAMD21J16A ATSAMD21J16A ATSAMD21J16A ATSAMD21J16B ATSAMD21J16B ATSAMD21J17A ATSAMD21J17A ATSAMD21J17A ATSAMD21J18A ATSAMD21J18A ATSAMD21J18A ATSAMDA1E14A ATSAMDA1E14A ATSAMDA1E15A ATSAMDA1E15A ATSAMDA1E16A ATSAMDA1E16A ATSAMDA1G14A ATSAMDA1G14A ATSAMDA1G15A ATSAMDA1G15A ATSAMDA1G16A ATSAMDA1G16A ATSAMDA1J14A ATSAMDA1J14A ATSAMDA1J15A ATSAMDA1J15A ATSAMDA1J16A ATSAMDA1J16A ATSAMDA1E14B ATSAMDA1E14B ATSAMDA1E15B ATSAMDA1E15B ATSAMDA1E16B ATSAMDA1E16B ATSAMDA1G14B ATSAMDA1G14B ATSAMDA1G15B ATSAMDA1G15B ATSAMDA1G16B ATSAMDA1G16B ATSAMDA1J14B ATSAMDA1J14B ATSAMDA1J15B ATSAMDA1J15B ATSAMDA1J16B ATSAMDA1J16B ATSAMD20D15U ATSAMD20D16U ATSAMD20E14 ATSAMD20E14 ATSAMD20E15 ATSAMD20E15 ATSAMD20E16 ATSAMD20E16 ATSAMD20E17 ATSAMD20E17 ATSAMD20E18 ATSAMD20E18 ATSAMD20G14 ATSAMD20G14 ATSAMD20G15 ATSAMD20G15 ATSAMD20G16 ATSAMD20G16 ATSAMD20G17 ATSAMD20G17 ATSAMD20G17U ATSAMD20G18 ATSAMD20G18 ATSAMD20G18U ATSAMD20J14 ATSAMD20J14 ATSAMD20J15 ATSAMD20J15 ATSAMD20J16 ATSAMD20J16 ATSAMD20J17 ATSAMD20J17 ATSAMD20J18 ATSAMD20J18 ATSAMD20J18 ATSAME51J18A ATSAME51J18A ATSAME51J19A ATSAME51J19A ATSAME51N19A ATSAME51N20A ATSAME53J18A ATSAME53J18A ATSAME53J19A ATSAME53J19A ATSAME53J20A ATSAME53J20A ATSAME53N19A ATSAME53N20A ATSAME54N19A ATSAME54N20A ATSAME54P19A ATSAME54P20A ATSAMD51G18A ATSAMD51G19A ATSAMD51J18A ATSAMD51J18A ATSAMD51J19A ATSAMD51J19A ATSAMD51J19A ATSAMD51J20A ATSAMD51J20A ATSAMD51J20A ATSAMD51N19A ATSAMD51N20A ATSAMD51P19A ATSAMD51P20A ATSAMC21E15A ATSAMC21E15A ATSAMC21E16A ATSAMC21E16A ATSAMC21E17A ATSAMC21E17A ATSAMC21E18A ATSAMC21E18A ATSAMC21G15A ATSAMC21G15A ATSAMC21G16A ATSAMC21G16A ATSAMC21G17A ATSAMC21G17A ATSAMC21G18A ATSAMC21G18A ATSAMC21J16A ATSAMC21J16A ATSAMC21J17A ATSAMC21J17A ATSAMC21J17AU ATSAMC21J18A ATSAMC21J18A ATSAMC21J18AU ATSAMC21N17A ATSAMC21N17A ATSAMC21N18A ATSAMC21N18A ATSAMC20E15A ATSAMC20E15A ATSAMC20E16A ATSAMC20E16A ATSAMC20E17A ATSAMC20E17A ATSAMC20E18A ATSAMC20E18A ATSAMC20G15A ATSAMC20G15A ATSAMC20G16A ATSAMC20G16A ATSAMC20G17A ATSAMC20G17A ATSAMC20G18A ATSAMC20G18A ATSAMC20J16A ATSAMC20J16A ATSAMC20J17A ATSAMC20J17A ATSAMC20J17AU ATSAMC20J18A ATSAMC20J18A ATSAMC20J18AU ATSAMC20N17A ATSAMC20N17A ATSAMC20N18A ATSAMC20N18A ATSAML21E15B ATSAML21E15B ATSAML21E16B ATSAML21E16B ATSAML21E17B ATSAML21E17B ATSAML21E18B ATSAML21E18B ATSAML21G16B ATSAML21G16B ATSAML21G17B ATSAML21G17B ATSAML21G18B ATSAML21G18B ATSAML21J16B ATSAML21J16B ATSAML21J17B ATSAML21J17B ATSAML21J18B ATSAML21J18B ATSAML22G16A ATSAML22G16A ATSAML22G17A ATSAML22G17A ATSAML22G17A ATSAML22G18A ATSAML22G18A ATSAML22G18A ATSAML22J16A ATSAML22J16A ATSAML22J17A ATSAML22J17A ATSAML22J18A ATSAML22J18A ATSAML22N16A ATSAML22N16A ATSAML22N17A ATSAML22N17A ATSAML22N18A ATSAML22N18A ATSAMHA1G14A ATSAMHA1G14AB ATSAMHA1G15A ATSAMHA1G15AB ATSAMHA1G16A ATSAMHA1G16AB ATSAML10D14A ATSAML10D14A ATSAML10D15A ATSAML10D15A ATSAML10D16A ATSAML10D16A ATSAML10E14A ATSAML10E14A ATSAML10E15A ATSAML10E15A ATSAML10E16A ATSAML10E16A ATSAML11D14A ATSAML11D14A ATSAML11D15A ATSAML11D15A ATSAML11D16A ATSAML11D16A ATSAML11E14A ATSAML11E14A ATSAML11E15A ATSAML11E15A ATSAML11E16A ATSAML11E16A ATSAMD20E14B ATSAMD20E14B ATSAMD20E15B ATSAMD20E15B ATSAMD20E16B ATSAMD20E16B ATSAMD20G14B ATSAMD20G14B ATSAMD20G15B ATSAMD20G15B ATSAMD20G16B ATSAMD20G16B ATSAMD20J14B ATSAMD20J14B ATSAMD20J15B ATSAMD20J15B ATSAMD20J16B ATSAMD20J16B ATSAMHA1E14AB ATSAMHA1E15AB ATSAMHA1E16AB ATSAMD21E17D ATSAMD21E17D ATSAMD21E17DU ATSAMD21G17D ATSAMD21G17D ATSAMD21J17D ATSAMD21J17D ATSAMD21J17D ATSAMD21E17D-AU ATSAMD21E17D-MU ATSAMD21E17L-AF ATSAMD21E17L-AFT ATSAMD21E17L-MF ATSAMD21E17L-MFT ATSAMD21E17L-MN ATSAMD21G17D-AU ATSAMD21G17D-MU ATSAMD21G17L-MF ATSAMD21G17L-MFT ATSAMD21G17L-MN ATSAMD21G17L-MNT ATSAMD21G17L-MU ATSAMD21G17L-MUT ATSAMD21J17D-AU ATSAMD21J17D-AUT ATSAMD51J18A-AF ATSAMD51N19A-AFT ATSAMD51P19A-CTUT ATSAMD51P20A-AF ATSAME51J19A-AFT ATSAME53N20A-AF ATSAME54P20A-AF ATSAME54P20A-AFT ATSAME54P20A-CTUT ATSAMHA1E16A-XPRO ATSAML10D14A-MF ATSAML10D14A-MU ATSAML10D14A-MUT ATSAML10D14A-YU ATSAML10D14A-YUT ATSAML10D15A-MF ATSAML10D15A-MU ATSAML10D15A-YUT ATSAML10D16A-MUT ATSAML10D16A-YU ATSAML10D16A-YUT ATSAML10E14A-AUT ATSAML10E14A-MF ATSAML10E14A-MFT ATSAML10E14A-MUT ATSAML10E15A-AU ATSAML10E16A-AF ATSAML10E16A-MUT ATSAML11D14A-MU ATSAML11D14A-MUT ATSAML11D14A-YU ATSAML11D15A-MU ATSAML11D16A-YU ATSAML11E14A-MF ATSAML11E16A-MF ATSAML11E16A-MU ATSAMR34J16B-I/7JX ATSAMR34J16BT-I/7JX ATSAMR34J17B-I/7JX ATSAMR34J17BT-I/7JX ATSAMR34J18B-I/7JX ATSAMR34J18BT-I/7JX ATSAMR35J17BT-I/7JX ATSAMR35J18B-I/7JX ATSAMS70N19B-CFN ATSAMS70Q20B-CFNT ...
- Série CryptoAuthentication – décryptage de microcontrôleur : ATSHA204A ATECC508A ATAES132A ATECC108A ...
- Série Analog ADUCxx – hack de MCU : ADUC836BSZ ADUC836BS ADUC836BCP ADUC836_02 ADUC836 ADUC834BSZ ADUC834BS ADUC834BCP ADUC834_02 ADUC834 ADUC832BS ADUC832BCP ADUC832 ADUC831BS ADUC831BCP ADUC831 ADUC824BSZ ADUC824BS ADUC824 ADUC816BS ADUC816 ADUC814BRUZ ADUC814BRU-REEL7 ADUC814BRU-REEL ADUC814BRU ADUC814ARUZ ADUC814ARU-REEL7 ADUC814ARU-REEL ADUC814ARU ADUC814_02 ADUC814 ADUC812BSZ-REEL ADUC812BSZ ADUC812BS ADUC812_03 ADUC845BS8-5 ADUC845BS8-3 ADUC845BS62-5 ADUC845BS62-3 ADUC845 ADUC843 ADUC842BS62-5 ADUC842 ADUC841BS62-3 ADUC841 ADUCRF101 ADUC848BS8-5 ADUC848BS8-3 ADUC848BS62-3 ADUC848BS32-5 ADUC848BS32-3 ADUC848BCP8-5 ADUC848BCP8-3 ADUC848BCP62-5 ADUC848BCP62-3 ADUC848 ADUC847BS8-5 ADUC847BS8-3 ADUC847BS62-5 ADUC847BS62-3 ADUC847BS32-5 ADUC847BS32-3 ADUC847BCP8-5 ADUC847BCP8-3 ADUC847BCP62-5 ADUC847BCP62-3 ADUC847 ADUC846BS62-5 ADUC846BS62-3 ADUC846BCP8-5 ADUC846BCP8-3 ADUC846BCP62-5 ADUC846BCP62-3 ADUC846BCP32-5 ADUC846BCP32-3 ADUC846 ADUC845BS8-5 ADUC845BS8-3 ADUC845BS62-5 ADUC845BS62-3 ADUC845BCP8-5 ADUC845BCP8-3 ADUC845BCP62-5 ADUC845BCP62-3 ADUC845 ADUC844BS62-5 ADUC844BS62-3 ADUC844BCP8-5 ADUC844BCP8-3 ADUC844BCP62-5 ADUC844BCP62-3 ADUC844BCP32-5 ADUC844BCP32-3 ADUC844 ADUC843BS62-5 ADUC843BS62-3 ADUC843BCP8-5 ADUC843BCP8-3 ...
-
ATF16V8 – dispositifs à 20 broches, 8 macrocellules
ATF16V8, ATF16V8B, ATF16V8C
ATF16V8BQ, ATF16V8BQL, ATF16V8CZ
ATF16LV8, ATF16LV8C
ATF20V8 – dispositifs à 24 broches, 8 macrocellules
ATF20V8, ATF20V8B, ATF20V8C
ATF20V8BQ, ATF20V8BQL
ATF20LV8, ATF20LV8C
ATF22V10 – SPLD variable phare
ATF22V10, ATF22V10B, ATF22V10C
ATF22V10CQ, ATF22V10CQZ
ATF22LV10, ATF22LV10C
SPLD étendus haute densité
ATF28V12, ATF29M16
2. CPLD ATF15xx avec JTAG ISP
ATF1500 – CPLD d’entrée 32 macrocellules
ATF1500A, ATF1500AL
ATF1502 – CPLD moyenne densité 32 macrocellules
ATF1502AS, ATF1502ASL, ATF1502ASV, ATF1502ASVL
ATF1504 – CPLD moyenne densité 64 macrocellules
ATF1504AS, ATF1504ASL, ATF1504ASV, ATF1504ASVL
ATF1508 – CPLD haute densité 128 macrocellules
ATF1508AS, ATF1508ASL, ATF1508ASV, ATF1508ASVL
CPLD vintage moyenne densité
ATF750C, ATF750CL, ATF750LVC
ATF2500C, ATF2500CL, ATF2500LVC
3. Série EPLD ATV UV-effaçable héritée
ATV750, ATV750B
ATV2500, ATV2500B
AVR d’Atmel
Atmel ATmega8 en boîtier DIP 28 broches étroit – L'AVR est une architecture Harvard modifiée, un microcontrôleur RISC 8 bits monocarte développé par Atmel en 1996. L'AVR a été l'une des premières familles de microcontrôleurs à utiliser la mémoire flash embarquée pour le stockage du programme, contrairement aux ROM, EPROM ou EEPROM utilisées par d'autres microcontrôleurs à l'époque.
Brève histoire – L'architecture AVR a été conçue par deux étudiants de l'Institut norvégien de technologie (NTH) – Alf-Egil Bogen et Vegard Wollan.
Le MCU AVR original a été développé chez un fabricant ASIC local à Trondheim, Norvège, appelé Nordic VLSI (aujourd'hui Nordic Semiconductor), où Bogen et Wollan travaillaient comme étudiants. Il était connu sous le nom de μRISC (Micro RISC) et était disponible sous forme de propriété intellectuelle / bloc de construction. Lorsque la technologie a été vendue à Atmel, l'architecture interne a été développée par Bogen et Wollan chez Atmel Norway, une filiale d'Atmel. Les concepteurs ont travaillé en étroite collaboration avec les rédacteurs de compilateurs fib laboratory & sem lab service chez IAR Systems pour s'assurer que le jeu d'instructions permettait une compilation plus efficace des langages de haut niveau. Atmel affirme que le nom AVR n'est pas un acronyme et ne signifie rien en particulier ; les créateurs ne donnent pas de réponse définitive. Cependant, il est communément admis que AVR signifie Alf (Egil Bogen) et Vegard (Wollan) RISC processor.
Note : l'utilisation d'« AVR » dans cet article fait généralement référence à la gamme 8 bits RISC des microcontrôleurs Atmel AVR.
Parmi les premiers de la lignée AVR figurait l'AT90S8515, qui, dans un boîtier DIP 40 broches, a le même brochage qu'un 8051, y compris le bus d'adresses et de données multiplexé externe. La polarité de la ligne RESET était opposée (8051 ayant une RESET active haute, alors que l'AVR a une RESET active basse), mais sinon, le brochage était identique.
Aperçu des dispositifs – L'AVR est une machine d'architecture Harvard modifiée où le programme et les données sont stockés dans des systèmes de mémoire physique séparés, mais avec la capacité de lire des données depuis la mémoire programme via des instructions spéciales.
Familles de base – Les AVR sont généralement classés en six grands groupes :
tinyAVR – la série ATtiny
0,5–16 kB de mémoire programme
boîtiers 6–32 broches
ensemble de périphériques limité
megaAVR – la série ATmega
4–512 kB de mémoire programme
boîtiers 28–100 broches
jeu d'instructions étendu (multiplications et instructions pour grandes mémoires programme)
ensemble de périphériques étendu
XMEGA – la série ATxmega
16–384 kB de mémoire programme
boîtiers 44–64–100 broches (A4, A3, A1)
fonctionnalités de performance étendues, telles que DMA, « Event System », et support cryptographique.
ensemble de périphériques étendu avec CAN
AVR spécifique à une application
megaAVR avec fonctionnalités spéciales (contrôleur LCD, USB, PWM avancé, CAN, etc.)
FPSLIC (AVR avec FPGA)
FPGA 5K à 40K portes
SRAM pour le code programme AVR, contrairement à tous les autres AVR
cœur AVR jusqu'à 50 MHz
AVR 32 bits – en 2006, Atmel a lancé des microcontrôleurs basés sur la nouvelle architecture AVR32 32 bits. Ils incluent des instructions SIMD et DSP, ainsi que des fonctionnalités de traitement audio et vidéo. Cette famille 32 bits vise à concurrencer les processeurs ARM. Le jeu d'instructions est similaire à d'autres cœurs RISC, mais incompatible avec l'AVR original ou les cœurs ARM.
Architecture des dispositifs – Flash, EEPROM et SRAM sont intégrés sur une seule puce, éliminant le besoin de mémoire externe dans la plupart des applications. Certains dispositifs ont un bus externe parallèle pour ajouter de la mémoire ou des périphériques mappés en mémoire. Presque tous les dispositifs (sauf les plus petits TinyAVR) disposent d'interfaces série pour connecter des EEPROM ou flash série plus grandes.
Mémoire programme – Les instructions programme sont stockées dans une mémoire flash non volatile. Bien que les MCU soient 8 bits, chaque instruction occupe un ou deux mots de 16 bits.
La taille de la mémoire programme est généralement indiquée dans le nom du dispositif (par exemple, la série ATmega64x dispose de 64 kB de flash, la série ATmega32x de 32 kB).
Il n'y a pas de disposition pour la mémoire programme externe ; tout code exécuté par le cœur AVR doit résider dans la flash embarquée. Cependant, cette limitation ne s'applique pas aux puces AT94 FPSLIC AVR/FPGA.
Mémoire de données interne – L'espace d'adressage des données comprend le fichier de registres, les registres d'E/S et la SRAM.
Registres internes – Les AVR disposent de 32 registres monocarte et sont classés comme dispositifs RISC 8 bits.
Dans la plupart des variantes de l'architecture AVR, les registres de travail sont mappés comme les 32 premiers emplacements mémoire (000016–001F16) suivis des 64 registres d'E/S (002016–005F16).
La SRAM réelle commence après ces sections de registres (adresse 006016). (Notez que l'espace des registres d'E/S peut être plus grand sur certains dispositifs, auquel cas les registres mappés en mémoire occuperont une partie de l'espace SRAM.)
Même s'il existe des schémas d'adressage séparés et des opcodes optimisés pour le fichier de registres et les registres d'E/S, tous peuvent être adressés et manipulés comme s'ils étaient dans la SRAM.
Dans la variante XMEGA, le fichier de registres de travail n'est pas mappé dans l'espace d'adressage des données ; il n'est donc pas possible de traiter les registres de travail comme de la SRAM. À la place, les registres d'E/S sont mappés au début de l'espace d'adressage. De plus, la quantité d'espace dédiée aux registres d'E/S est passée à 4096 octets (000016–0FFF16). Comme pour les générations précédentes, les instructions d'E/S rapides ne peuvent atteindre que les 64 premiers emplacements de registres d'E/S (les 32 premiers pour les opérations bit à bit). Après les registres d'E/S, la série XMEGA réserve une plage de 4096 octets pour le mappage facultatif de l'EEPROM interne dans l'espace d'adressage des données (100016–1FFF16). La SRAM réelle se trouve après ces plages, à partir de 200016.
EEPROM – Presque tous les microcontrôleurs AVR ont une EEPROM interne pour le stockage de données semi-permanentes. Comme la mémoire flash, l'EEPROM conserve son contenu en l'absence d'alimentation.
Dans la plupart des variantes de l'architecture AVR, cette EEPROM interne n'est pas mappée dans l'espace mémoire adressable du MCU. Elle ne peut être accédée que comme un périphérique externe, en utilisant des registres pointeurs spéciaux et des instructions de lecture/écriture, ce qui rend l'accès EEPROM beaucoup plus lent que la RAM interne.
Cependant, certains dispositifs de la famille SecureAVR (AT90SC) utilisent un mappage EEPROM spécial vers la mémoire de données ou de programme selon la configuration. La famille XMEGA permet également de mapper l'EEPROM dans l'espace d'adressage des données.
Le nombre d'écritures dans l'EEPROM n'étant pas illimité (Atmel spécifie 100 000 cycles d'écriture), une routine d'écriture bien conçue doit comparer le contenu d'une adresse EEPROM avec le contenu souhaité et n'effectuer une écriture que si nécessaire.
Notez que l'effacement et l'écriture peuvent être effectués séparément dans de nombreux cas, octet par octet, ce qui peut prolonger la durée de vie.
Exécution du programme – Les AVR d'Atmel ont un pipeline à deux étages, un seul niveau. Cela signifie que l'instruction suivante est chargée pendant que l'actuelle est exécutée. La plupart des instructions prennent un ou deux cycles d'horloge, rendant les AVR relativement rapides parmi les microcontrôleurs 8 bits.
Les processeurs AVR ont été conçus pour une exécution efficace du code C compilé et disposent de plusieurs pointeurs intégrés à cet effet.
Jeu d'instructions – Le jeu d'instructions AVR est plus orthogonal que celui de la plupart des microcontrôleurs 8 bits, en particulier les clones 8051 et les PIC avec lesquels il concurrence. Cependant, il n'est pas complètement régulier :
Les registres pointeurs X, Y et Z ont des capacités d'adressage différentes ;
Les emplacements R0 à R15 ont des capacités d'adressage différentes de R16 à R31 ;
Les ports d'E/S 0 à 31 ont des capacités différentes des ports 32 à 63 ;
CLR affecte les indicateurs, tandis que SER ne le fait pas, bien qu'ils soient complémentaires. (CLR est un pseudo-op pour EOR R,R ; SER est LDI R,$FF. Les opérations mathématiques modifient les indicateurs, tandis que les déplacements/chargements/stocks/branches ne le font pas) ;
L'accès aux données en lecture seule stockées dans la mémoire programme (flash) nécessite des instructions LPM spéciales ; le bus flash est autrement réservé à la mémoire d'instructions.
De plus, certaines différences spécifiques aux puces affectent la génération de code. Les pointeurs de code (y compris les adresses de retour sur la pile) sont de deux octets sur les puces jusqu'à 128 kBytes de flash, mais de trois octets sur les plus grandes ; toutes les puces n'ont pas de multiplieurs matériels ; les puces avec plus de 8 kBytes de flash ont des instructions de branchement et d'appel avec des portées plus longues, etc.
Le jeu d'instructions largement régulier rend la programmation en C (ou Ada) assez simple. GCC inclut un support AVR depuis un certain temps, et ce support est largement utilisé. Atmel a sollicité les avis des développeurs de compilateurs pour les petits microcontrôleurs afin de déterminer les fonctionnalités les plus utiles pour les langages de haut niveau.
Vitesse du MCU – La gamme AVR peut généralement supporter des fréquences d'horloge de 0 à 20 MHz, certains dispositifs atteignant 32 MHz. Un fonctionnement à faible puissance nécessite généralement une fréquence réduite. Tous les AVR récents (Tiny, Mega et Xmega, mais pas les 90S) disposent d'un oscillateur interne, éliminant le besoin d'horloge externe ou de résonateur. Certains AVR ont également un prédiviseur d'horloge système pouvant diviser l'horloge jusqu'à 1024, configurable par logiciel en cours d'exécution pour optimiser la vitesse.
Comme toutes les opérations (sauf les littéraux) sur les registres R0-R31 sont en un cycle, l'AVR peut atteindre 1 MIPS par MHz, soit 8 MHz donnant 8 MIPS. Les chargements/stocks depuis/vers la mémoire prennent deux cycles, les branchements deux cycles. Les branchements dans les parties les plus récentes à « PC 3 octets » (ATmega2560) sont un cycle plus lents que sur les dispositifs précédents.
Développement – Les AVR ont une large communauté grâce aux outils de développement gratuits et peu coûteux, y compris des cartes de développement abordables et des logiciels gratuits. Les AVR sont vendus sous différents noms partageant le même cœur de base, mais avec des combinaisons de périphériques et de mémoire différentes. La compatibilité entre les puces de chaque famille est assez bonne, bien que les fonctionnalités des contrôleurs d'E/S puissent varier.
Fonctionnalités – Les AVR actuels offrent une large gamme de fonctionnalités :
Ports E/S polyvalents bidirectionnels avec résistances de tirage configurables intégrées ;
Oscillateurs internes multiples, y compris oscillateur RC sans composants externes ;
Mémoire flash d'instructions auto-programmable interne jusqu'à 256 kB (384 kB sur XMega) ;
Programmable dans le système via interfaces série/parallèle propriétaires basse tension ou JTAG ;
Section de code de démarrage optionnelle avec bits de verrouillage indépendants pour la protection ;
Support de débogage sur puce (OCD) via JTAG ou debugWIRE sur la plupart des dispositifs ;
Les signaux JTAG (TMS, TDI, TDO, TCK) sont multiplexés sur les GPIO. Ces broches peuvent être configurées en JTAG ou GPIO via un bit de fusible, programmable via ISP ou HVSP. Par défaut, les AVR avec JTAG ont l'interface JTAG activée ;
debugWIRE utilise la broche /RESET comme canal de communication bidirectionnel pour accéder aux circuits de débogage sur puce, présent sur les dispositifs à faible nombre de broches car il ne nécessite qu'une seule broche ;
EEPROM de données interne jusqu'à 4 kB ;
SRAM interne jusqu'à 16 kB (32 kB sur XMega) ;
Espace de données externe 64 kB en petit-boutiste sur certains modèles (Mega8515 et Mega162) – cet espace est superposé à l'espace interne, de sorte que l'adresse complète 64 kB n'apparaît pas sur le bus externe ;
Dans certains membres de la série XMega, l'espace de données externe a été amélioré pour supporter SRAM et SDRAM, et les modes d'adressage étendus permettent jusqu'à 16 MB de mémoire de données directement adressable ;
Les AVR ne supportent généralement pas l'exécution de code depuis une mémoire externe. Certains ASSP utilisant le cœur AVR supportent une mémoire programme externe ;
Temporisateurs 8 bits et 16 bits ;
Sortie PWM (certains dispositifs ont un périphérique PWM amélioré avec générateur de temps mort) ;
Capture d'entrée qui enregistre un horodatage déclenché par un front de signal ;
Comparateur analogique ;
Convertisseurs A/N 10 ou 12 bits avec multiplex jusqu'à 16 canaux ;
Convertisseurs N/A 12 bits ;
Interfaces série variées : I²C (TWI), UART/USART (RS-232, RS-485, etc.), SPI, USI (pour transfert synchrone deux ou trois fils) ;
Détection de baisse de tension ;
Chien de garde (WDT) ;
Modes de veille économes en énergie ;
Modèles de contrôleur pour moteurs et éclairage (PWM spécifique) ;
Support CAN ;
Support USB (pleine vitesse 12 Mbit/s matériel et contrôleur Hub avec AVR intégré, ainsi que des émulations logicielles basse vitesse (1,5 Mbit/s) pour HID) ;
Support Ethernet ;
Support contrôleur LCD ;
Dispositifs basse tension jusqu'à 1,8 V (0,7 V pour les parties avec convertisseur DC-DC intégré) ;
Dispositifs picoPower ;
Contrôleurs DMA et « système d'événements » pour la communication périphérique ;
Support de cryptographie rapide pour AES et DES ;
Interfaces de programmation – Il existe de nombreux moyens de charger le code programme dans une puce AVR, variant selon la famille.
Arduino Uno, Arduino Nano, Arduino LilyPad, Arduino Mega 2560, Arduino Ethernet, Arduino Due, Arduino Leonardo, Arduino Yún.
ISP – La programmation dans le système (ISP) s'effectue via SPI, avec manipulation de la ligne Reset. Tant que les broches SPI de l'AVR ne sont pas connectées à quelque chose de perturbateur, la puce peut rester soudée sur un PCB pendant la reprogrammation. Un connecteur 6 broches et un adaptateur de programmation suffisent. C'est la méthode de développement la plus courante.
L'Atmel AVR ISP mkII se connecte à un port USB et effectue la programmation dans le système avec le logiciel Atmel.
AVRDUDE (AVR Downloader/UploaDEr) fonctionne sous Linux, FreeBSD, Windows et Mac OS X, et supporte une variété de matériels de programmation ISP, y compris Atmel AVR ISP mkII, Atmel JTAG ICE, les programmateurs série Atmel plus anciens, et divers programmateurs tiers ou « fait maison ».
Arduino GSM Shield, Arduino Ethernet Shield, Arduino WiFi Shield, Arduino Wireless SD Shield, Arduino USB Host Shield, Arduino Motor Shield, Arduino Wireless Proto Shield, Arduino Proto Shield.
PDI – L'interface Program and Debug Interface (PDI) est une interface propriétaire Atmel pour la programmation externe et le débogage sur puce des XMEGA. Elle supporte la programmation haute vitesse de toutes les mémoires non volatiles (flash, EEPROM, fusibles, bits de verrouillage et Signature Row). Le PDI est une interface 2 broches utilisant la broche Reset pour l'horloge (PDI_CLK) et une broche dédiée (PDI_DATA) pour l'entrée/sortie.
Haute tension série (HVSP) – La programmation série haute tension est surtout le mode de sauvegarde sur les petits AVR. Un signal 12 V est utilisé pour placer l'AVR en mode programmation.
Haute tension parallèle (HVPP) – Cette méthode est considérée comme le « dernier recours » et peut être le seul moyen de réparer des AVR avec des fusibles mal configurés.
Bootloader – La plupart des modèles AVR peuvent réserver une région de bootloader (256 B à 4 KB) où du code de reprogrammation peut résider. Au reset, le bootloader s'exécute en premier et détermine s'il faut reprogrammer ou sauter vers l'application principale. Le code peut reprogrammer via toute interface disponible, par exemple lire un binaire chiffré via Ethernet. Atmel fournit des notes d'application et du code pour de nombreux bus.
ROM – La série AT90SC d'AVR est disponible avec une ROM de masque en usine plutôt que de la flash pour la mémoire programme. En raison du coût initial élevé et de la quantité minimale de commande, une ROM de masque n'est rentable que pour des volumes élevés.
aWire – Interface de débogage à un fil disponible sur les AVR32 UC3L.
Interfaces de débogage – L'AVR offre plusieurs options de débogage, principalement via un débogage sur puce alors que la puce est dans le système cible.
debugWIRE – La solution d'Atmel pour le débogage sur puce via une seule broche, particulièrement utile pour les puces à faible nombre de broches. Les JTAGICE mkII, mkIII et l'AVR Dragon supportent debugWIRE. Il existe des clones qui le supportent.
JTAG – La fonction JTAG permet d'accéder aux fonctionnalités de débogage sur puce pendant l'exécution. Elle permet d'accéder aux registres internes et à la mémoire, de définir des points d'arrêt et d'exécuter pas à pas.
Atmel propose une série d'adaptateurs JTAG pour l'AVR :
1. JTAGICE 3 – dernier membre de la famille JTAGICE (mkIII) – supporte JTAG, aWire, SPI et PDI.
2. JTAGICE mkII – remplace le JTAGICE, se connecte en USB, supporte JTAG et debugWIRE. Des clones tiers existent après la publication du protocole.
3. AVR Dragon – substitut bon marché (environ 50 $) du JTAGICE mkII pour certaines cibles. Il fournit la programmation ISP, HVSP, parallèle, ainsi que l'émulation JTAG ou debugWIRE pour les parties avec 32 KB de mémoire programme ou moins. Atmel a modifié le support de débogage avec les derniers firmwares d'AVR Studio 4/5, supportant désormais les dispositifs de plus de 32 KB.
4. JTAGICE – adaptateur série hérité, déclaré « fin de vie » par Atmel mais toujours supporté dans AVR Studio.
Le JTAG peut également être utilisé pour le test de boundary scan, testant les connexions électriques entre les AVR et d'autres puces compatibles boundary scan dans un système. Le boundary scan est bien adapté à la production, tandis que le hobbyiste préférera probablement un multimètre ou un oscilloscope.
Outils de développement et kits d'évaluation – Les outils de développement officiels Atmel AVR incluent plusieurs kits de démarrage et outils de débogage supportant la plupart des dispositifs AVR :
STK600 – Kit de démarrage et système de développement, mise à jour du STK500. Il utilise une carte de base, une carte de routage de signaux et une carte cible. La carte de base est similaire au STK500, fournissant alimentation, horloge, ISP, port RS-232 et CAN via DE9, et broches pour tous les signaux GPIO. Les cartes cibles ont des supports ZIF pour boîtiers DIP, SOIC, QFN ou QFP. La carte de routage de signaux se trouve entre la base et la cible, et achemine les signaux vers la bonne broche. De nombreuses cartes de routage peuvent être utilisées avec une seule carte cible. Le STK600 permet la programmation ISP depuis le PC via USB, laissant le port RS-232 libre pour le microcontrôleur. Un connecteur 4 broches « RS-232 spare » peut connecter tout port USART TTL à un MAX232 pour des niveaux RS-232.
STK500 – Kit de démarrage avec programmation ISP et HV pour tous les AVR, directement ou via extensions. La carte est équipée de supports DIP pour tous les AVR disponibles en DIP.
Modules d'extension STK500 : STK501 (TQFP 64 broches), STK502 (LCD AVR TQFP 64), STK503 (TQFP 100), STK504 (LCD AVR TQFP 100), STK505 (14 et 20 broches), STK520 (14, 20, 32 broches, familles AT90PWM/ATmega), STK524 (ATmega32M1/C1 CAN/LIN/Motor Control), STK525 (AT90USB TQFP 64), STK526 (AT90USB TQFP 32).
STK200 – Kit de démarrage avec support DIP pour puces AVR 40, 20 ou 8 broches. Horloge 4 MHz, 8 LED, 8 boutons, port RS-232, socket SRAM 32k et E/S générales. Programmation via dongle port parallèle.
Microcontrôleurs supportés (selon le manuel) : AT90S1200 (1k flash, 64 EEPROM, 12 MHz, DIP-20), AT90S2313 (2k, 128, 128, 10, DIP-20), AT90S/LS2323 (2k, 128, 128, 10, DIP-8), AT90S/LS2343 (2k, 128, 128, 10, DIP-8), AT90S4414 (4k, 256, 256, 8, DIP-40), AT90S/LS4434 (4k, 256, 256, 8, DIP-40), AT90S8515 (8k, 512, 512, 8, DIP-40), AT90S/LS8535 (8k, 512, 512, 8, DIP-40).
AVR ISP et AVR ISP mkII – Outils bon marché permettant de programmer tous les AVR via ICSP. L'AVR ISP se connecte en série et tire son alimentation du système cible ; il supporte les deux connecteurs ISP standard (10 broches ou 6 broches). Il a été remplacé par l'AVR ISP mkII, qui se connecte en USB et tire son alimentation de l'USB.
AVR Dragon – Outil peu coûteux se connectant en USB. Il peut programmer tous les AVR via JTAG, HVP, PDI ou ICSP. Il permet également le débogage via JTAG, PDI ou debugWIRE ; une limitation antérieure aux dispositifs de 32 kB ou moins a été levée dans AVR Studio 4.18. Le Dragon dispose d'une petite zone de prototype pouvant accueillir un AVR 8, 28 ou 40 broches, avec connexions à l'alimentation et aux broches de programmation. Un produit tiers appelé « Dragon Rider » ajoute des fonctionnalités.
JTAGICE mkI – Outil de débogage utilisant RS-232, ne supporte que le JTAG. Il n'est plus en production, remplacé par le mkII.
JTAGICE mkII – Outil de débogage supportant SPI, JTAG, PDI et debugWIRE. Il se connecte en USB, avec une alternative série nécessitant une alimentation externe. Il supporte la programmation ISP (adaptateurs 6 ou 10 broches).
JTAGICE3 – Met à jour le mkII avec des capacités de débogage avancées et une programmation plus rapide. Supporte JTAG, aWire, SPI et PDI. Il inclut plusieurs adaptateurs.
AVR ONE! – Outil professionnel pour tous les AVR 8 bits et 32 bits avec débogage sur puce. Supporte SPI, JTAG, PDI, aWire pour la programmation et debugWIRE, JTAG, PDI, aWire pour le débogage.
Carte Butterfly – La carte AVR Butterfly est un ordinateur autonome alimenté par pile, basé sur l'ATmega169V. Elle comprend un écran LCD, un joystick, un haut-parleur, un port série, une horloge temps réel, une puce mémoire flash, des capteurs de température et de tension. Les versions antérieures contenaient une photorésistance CdS (supprimée pour RoHS). Elle peut être portée comme badge. Le firmware d'usine fait défiler votre nom, affiche les capteurs et l'heure. Elle intègre un transducteur piézoélectrique pour reproduire des sons et de la musique. Le microcontrôleur peut être reprogrammé via un bootloader série RS-232.
AT90USBKey – Carte de la taille d'une carte de visite, avec un AT90USB1287 supportant USB On-The-Go, 16 MB de DataFlash, LED, joystick et capteur de température. Elle peut agir comme un périphérique de stockage de masse USB, un joystick USB, etc. Elle nécessite une batterie pour le mode hôte. Le processeur peut être programmé via USB sous Windows ou Linux. Atmel fournit des exemples et une pile USB propriétaire. LUFA est une pile USB tierce libre (MIT) pour ces cartes.
Kit Raven – Supporte le développement sans fil avec les chipsets IEEE 802.15.4 d'Atmel pour ZigBee. Il comprend deux cartes AVR Raven (ATmega1284p pour la radio, ATmega3290p pour l'affichage LCD) et un dongle USB (AT90USB1287) pour la connexion hôte. Les Raven ont des périphériques similaires à la Butterfly.
Programmateurs tiers – Une grande variété d'outils de programmation et de débogage tiers est disponible, utilisant RS-232, port parallèle ou USB.
Utilisation d'Atmel AVR – Les AVR sont utilisés dans des applications automobiles (sécurité, sécurité, powertrain, divertissement), avec des clients comme BMW, Daimler-Chrysler et TRW. La plateforme Arduino est basée sur ATmega328 (ou ATmega168/8) ; les versions Mega utilisent ATmega1280/2560. Les AVR USB sont utilisés dans les manettes Xbox. De nombreuses entreprises produisent des cartes basées sur AVR pour les amateurs (Cubloc, gnusb, BasicX, Oak Micros, ZX Microcontrollers, myAVR, et de nombreuses compatibles Arduino). Schneider Electric produit la puce M3000 avec un cœur AVR pour le contrôle de moteurs.
Clones FPGA – Avec la popularité croissante des FPGA, des clones open source compatibles avec le jeu d'instructions AVR ont été développés : pAVR (VHDL, haute performance), avr_core (VHDL, clone ATmega103), Navré (Verilog, haute performance, pas d'interruptions).