Programmateur ISP pour Atmega 328

De FunLab Documentation
Aller à : navigation, rechercher
Utiliser un Arduino en guise de programmateur.

\\ Matériels : \\ 1 Arduino UNO ou équivalent \\ 1 ATmega328P \\ 1 Plaque d'essais \\ 1 Quartz 16Mhz \\ 2 condensateurs non polarisé 22pF====== Utiliser un Arduino en guise de programmateur. ====== \\ Matériels : \\ 1 Arduino UNO ou équivalent \\ 1 ATmega328P \\ 1 Plaque d'essais \\ 1 Quartz 16Mhz \\ 2 condensateurs non polarisé 22pF \\ 1 résistance 10 Kohms \\ 3 Leds ( Orange, Rouge, Verte) \\ 3 résistances 220 ohms \\ Des fils pour les liaisons

\\ - Câbler l'ATMEGA328P comme indiquer sur le schéma « bootloaderATMEAG328P.fzz » \\ TODO:uploader le fzz \\ (tuxun le reproduit en ce moment meme, ainsi qu'une version lite: sans quartz ni led) Schéma Bootloader_ATMEGA328P :

Bootloader atmega328p1 bb.jpg

\\ - Lancer l'environnement de développement IDE arduino et sélectionner le programme « ArduinoISP » ( programme dans les exemples)\\ File:atmega328_comme_programmateur_isp.ino.zip Ide arduino isp.png


\\ - Sélectionner dans le menu outils le type de carte , ici « Arduino UNO » \\ - Toujours dans le menu outils sélectionner ensuite « Graver la séquence d'initialisation » \\ - Terminé à l'extinction de la LED orange (7) \\ - Si la LED (8) est allumée , cela signifie une erreur , il faut recommencer après avoir vérifié tous les connecteurs et fils . \\ - Si il y a toujours des erreurs après plusieurs essais , passer à l'IDE version 0022 \\ [[1]] \\ télécharger la version correspondant à votre environnement et décompresser là dans un dossier, connecter votre carte Arduino \\ UNO , charger le programme "Exemple --> ArduinoISP", verifier dans "Outils" votre carte , le port série, et dans le menu \\ BurnBootloader cliquez sur "w/Arduino as ISP", la LED Rx doit clignoter rapidement pendant quelques secondes et le \\ téléchargement doit se terminé. Vérifier l'ATméga328P sur un autre Arduino UNO pour controler qu'il prend bien votre \\ programme : exemple "Blink"


    • Pour programmer l'ATMEGA328P avec votre programme :**

\\ - Enlever l'ATMEGA328P de l'arduino UNO \\ - Câbler comme indiqué au schéma « téléchargement ATMEGA328P »

Schéma téléchargement ATMEGA328P :

Telechargement8atmega328p bb.jpg

\\ - Lancer l'IDE et sélectionner votre programme.


\\ - Téléverser le .

Vous avez un ATMEGA328P qui est chargé avec VOTRE programme qui peut être inséré sur une plaque de CI indépendante avec une alimentation de 5V.

Attiny85

Programmation "out of board" d'AtTiny85 avec un Arduino Uno (merci didier)\\

L'Attiny est un microcontrolleur puissant avec une faible consommation électrique.\\ La version tiny85 dont je dispose contient:\\ ^ version\capacité ^ memoire flash^ EEPROM ^ SRAM ^ GPIO ^ registres ^ competur/timer ^ with compare modes^ timer internee ^ interruptions ^ ad converter |85-20PU|8Ko|512o|512o|6|32|8-bit|USI|, 4-channel 10-bit|20 MIPS|MHz|2.7-5.5 volts.|\\

Matériels nécessaire pour ce tuto:\\ Arduino Uno\\ Breadboad\\ Attiny85\\ 1 led\\ 1 résistance 220 Ohm ou plus\\ Câbles\\

Seules ces fonctions sont supportées((http://tronixstuff.com/2011/11/23/using-an-attiny-as-an-arduino/)):\\

   pinMode()
   digitalWrite()
   digitalRead()
   analogRead()
   analogWrite()
   shiftOut()
   pulseIn()
   millis()
   micros()
   delay()
   delayMicroseconds()
   SoftwareSerial
   

graver le sketch ArduinoISP sur votre Uno déconnecté (a part l'USB, bien sur)\\

puis cabler votre attiny comme ceci:\\ Tinyisp bb.png

Vous devez installer ces [[2]] dans l'IDE Arduino afin de créer sketchbook/hardware/attiny/board.txt\\ Relancez le logiciel et sélectionnez:\\ dans "outils->programmateur":**Arduino as ISP** \\ et dans "outils->type de carte":**Attiny85(internal 8mhz clock)\\

Gravez le bootloader/firmware Arduino sur votre Atiny si c'est la première fois que vous vous en servez ainsi\\ "outils->Graver le bootloader"\\


Les adresses des pattes sont différentes d'un Arduino UNO classique, qui basé sur un atmega328.(voir ci-dessus)\\

#include <avr/pgmspace.h>

// ATMEL ATTINY45 / ARDUINO
//
//                  +-\/-+
// Ain0 (D 5) PB5  1|    |8  Vcc
// Ain3 (D 3) PB3  2|    |7  PB2 (D 2)  Ain1
// Ain2 (D 4) PB4  3|    |6  PB1 (D 1) pwm1
//            GND  4|    |5  PB0 (D 0) pwm0
//                  +----+

J'ai donc du modifié un peu l'exemple "blink" disponible avec l'IDE pour faire clignoter une led sur sa patte n°2:\\

/*
  Blink_tiny
  fait clignoter une LED sur la patte PB3 (la 2ème, physiquement)
 
  This example code is in the public domain.
 */

int led = 3;//aka D3,PB3,pin 2 (voir pins_arduino_tiny.h)

//routine de configuration
void setup() {                
  // declare la patte comme sortie
  pinMode(led, OUTPUT);     
}

// boucle encore et encore:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

À "téléverser avec un programmateur"


voir aussi:\\ http://www.instructables.com/id/Turn-Your-Arduino-Into-an-ISP/\\ http://www.semageek.com/tuto-programmation-des-attiny45-avec-un-arduino/\\

Foire Aux Questions

Si vous avez des questions, posez-les ici!\\ Retour aux tutos Arduino

Foire Aux Questions

Si vous avez des questions, posez-les ici!\\ tutoriels:Archives