Table des matières:

Programmation des ATTiny85, ATTiny84 et ATMega328P : Arduino en tant que FAI : 9 étapes (avec photos)
Programmation des ATTiny85, ATTiny84 et ATMega328P : Arduino en tant que FAI : 9 étapes (avec photos)

Vidéo: Programmation des ATTiny85, ATTiny84 et ATMega328P : Arduino en tant que FAI : 9 étapes (avec photos)

Vidéo: Programmation des ATTiny85, ATTiny84 et ATMega328P : Arduino en tant que FAI : 9 étapes (avec photos)
Vidéo: PROGRAMMER DES ARDUINO en 10 MIN !! (Tuto débutant) 2024, Juillet
Anonim
Programmation des ATTiny85, ATTiny84 et ATMega328P: Arduino As ISP
Programmation des ATTiny85, ATTiny84 et ATMega328P: Arduino As ISP
Programmation des ATTiny85, ATTiny84 et ATMega328P: Arduino As ISP
Programmation des ATTiny85, ATTiny84 et ATMega328P: Arduino As ISP

Avant-propos

J'ai récemment développé quelques projets IoT basés sur ESP8266 et j'ai découvert que le processeur central avait du mal à effectuer toutes les tâches dont j'avais besoin pour gérer, j'ai donc décidé de distribuer certaines des activités les moins importantes à un ou plusieurs microcontrôleurs différents dans de cette façon, libérant l'ESP8266 pour continuer son travail d'appareil IoT.

Étant donné que je voulais publier mon projet auprès d'un public aussi large que possible, j'ai choisi d'utiliser l'IDE Arduino comme plate-forme de développement de choix car il dispose d'une communauté très largement prise en charge.

Contraintes de conception

Afin de fournir une répartition raisonnable des dispositifs cibles permettant la sélection d'un microcontrôleur approprié pour l'application à portée de main, j'ai opté pour les pièces Atmel suivantes; ATMega328P, ATTiny84 et ATTiny85. Pour limiter la complexité du programmeur nécessaire, j'ai contraint le choix de l'horloge à interne pour tous les appareils et à 16 MHz externe uniquement pour l'ATMega328P et l'ATTiny84.

Ce qui suit est une collection de notes sur la programmation avec l'Arduino et une description de la façon dont j'ai mis en place un programmeur simple basé sur Arduino Uno pour ces appareils (photos ci-dessus).

De quelles pièces ai-je besoin ?

Pour construire le programmeur, vous aurez besoin des pièces suivantes

  1. 1 hors Arduino Uno
  2. 2 prises DIP à force d'insertion nulle (ZIF) 28 broches (pour contenir ATMega328P, ATTiny85, ATTiny84)
  3. 1 bouclier prototype Arduino (j'ai le mien ici;
  4. 2 LED de 5 MM
  5. 2 résistances 1K
  6. 1 résistance 10K
  7. 4 condensateurs céramiques 22pF
  8. 2 cristaux 16MHz
  9. 3 condensateurs céramiques 0,1 uF
  10. 1 condensateur électrolytique 47uF
  11. 1 condensateur électrolytique 10uF
  12. Fil d'enroulement de fil de différentes longueurs.

De quel logiciel ai-je besoin ?

IDE Arduino 1.6.9

De quelles compétences ai-je besoin ?

  1. Connaissance de l'IDE Arduino
  2. Une certaine connaissance de l'électronique et de la soudure
  3. Une grande dextérité manuelle
  4. Beaucoup de patience et une bonne vue

Sujets couverts

  1. Introduction générale à la programmation des microcontrôleurs Atmel
  2. ISP ou Bootloader: tout cela est un peu déroutant
  3. Aperçu du circuit
  4. Configuration de votre programmateur
  5. Utilisation de votre programmeur Arduino ISP
  6. Développer du code sur votre système cible
  7. des trucs
  8. Conclusion
  9. Références utilisées

Clause de non-responsabilité

Comme toujours, vous utilisez ces instructions à vos risques et périls et elles ne sont pas prises en charge

Étape 1: Introduction générale sur la programmation des microcontrôleurs Atmel

Introduction générale sur la programmation des microcontrôleurs Atmel
Introduction générale sur la programmation des microcontrôleurs Atmel
Introduction générale sur la programmation des microcontrôleurs Atmel
Introduction générale sur la programmation des microcontrôleurs Atmel
Introduction générale sur la programmation des microcontrôleurs Atmel
Introduction générale sur la programmation des microcontrôleurs Atmel

Il existe deux méthodes disponibles pour programmer les microcontrôleurs Atmel;

  1. Dans la programmation système (ISP),
  2. Autoprogrammation (via un bootloader).

La première méthode (1) programme directement le microcontrôleur via l'interface SPI après avoir d'abord mis l'appareil en réinitialisation. Sauf indication contraire, un programme source exécutable compilé est écrit sur le périphérique de manière incrémentielle dans la mémoire de code à partir de laquelle il est exécuté au démarrage. Il existe de nombreux appareils ISP capables de programmer des appareils Atmel, dont quelques-uns (photo 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. L'image 2 montre comment le périphérique ISP se connecte à l'ATMega328P (noté ICSP étrangement) sur la carte Arduino Uno R3 (la photo 3 donne le brochage ISP). Il est également possible de programmer un microcontrôleur Atmel via son interface SPI en utilisant un Arduino Uno comme FAI (image 4), ici l'Uno est utilisé pour programmer un ATMega328P.

Cette dernière méthode (2) utilise un petit bout de code connu sous le nom de « bootloader » résidant en permanence dans la mémoire du code exécutable (généralement verrouillé pour empêcher l'écrasement accidentel de l'image 5). Ce code est exécuté en premier lors de la mise sous tension ou de la réinitialisation de l'appareil et permet au microcontrôleur de se reprogrammer avec un nouveau code reçu via l'une de ses interfaces d'une source externe à lui-même. La méthode du chargeur de démarrage est utilisée par l'IDE Arduino pour reprogrammer les Arduinos mappés en tant que port de communication USB sur le PC (ou MAC, boîtier Linux, etc., photo 6) et dans le cas de l'Arduino Uno, communique avec le périphérique Atmel via son interface série sur les broches IC 2 et 3 de l'ATMega328P. De plus, l'Arduino Uno (avec le microcontrôleur ATMega328P retiré) peut être utilisé pour programmer un ATMega328P via la méthode du chargeur de démarrage agissant efficacement comme un périphérique adaptateur USB vers série (photo 7).

Qu'est-ce qu'un adaptateur USB vers série ?

Un adaptateur USB vers série est un élément matériel qui se branche sur le port USB de votre PC et ressemble à un port de communication série (un héritage de l'époque où les ordinateurs utilisaient une norme de communication série connue sous le nom d'EIA-232, V24 ou RS232) vous permettant de envoyer et recevoir des données série aux mêmes niveaux électriques du microcontrôleur. Lorsque vous sélectionnez Outils -> Port -> COMx à partir de l'IDE Arduino, vous connectez/interfacez votre PC à votre Arduino.

Un appareil comme celui-ci est parfois appelé FTDI (photo 8, qui est en fait un nom de marque) ou CH340G, etc. L'USB vers série sur l'Arduino uno est réalisé via un ATMega16U2-MU (R) IC ZU4 comme dans le schéma Arduino au dessous de.

Pour plus de clarté, l'image 9 identifie les deux appareils Atmel et leurs connecteurs ISP respectifs sur l'Arduino Uno R3.

Remarque 1: Si vous choisissez de suivre la voie des appareils FTDI, assurez-vous d'acheter auprès d'un vendeur réputé, car de nombreux appareils contrefaits bon marché sur le marché ont échoué lors de l'application d'une mise à jour Windows.

Conseillé: