dimanche 7 février 2016

Programmer l'Attiny85 avec une arduino UNO

Le Tiny AVR Programmer de chez Saperkfun est très pratique et simple d'emploi après une légère configuration comme nous l'avons décrit ici

Mais il est intéressant aussi de savoir le programmer avec juste une carte arduino un breadboard et quelques fils.

Aller je me lance. Encore une fois je n'invente rien je suis un tuto et retranscrit ici ce que je fait.

Je pars du tutoriel suivant trouvé sur hackster.io  ICI

Il y a en premier lieu toute la partie configuration arduinoUNO comme ISP (In-System Programming)

Je connecte l'arduinoUNO, je lance le soft arduino IDE. J'ouvre l'exemple ArduinoISP.

File -> Examples -> ArduinoISP

Je le téléverse dans l'arduinoUNO

J'ajoute le support du Attiny85 dans le soft arduino IDE.

J'ouvre Fichiers > Préférences   puis dans la fenêtre qui s'ouvre dans la case nommées "Additional Boards Manager URLs" je colle l'adresse suivante :
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json


Je clique OK


Après quoi j'ouvre le gestionnaire de cartes



Ceci ouvre une fenêtre comme ceci :

Je descend jusqu'à la ligne "attiny by Davis A. Mellis". Et je clique dessus.

Voila c'est installé.

Je vérifie dans >Outil




Voilà qui est fait, il maintenant temps de passer à la partie matériel.

Le matériel nécessaire :

  • une carte arduino UNO (originale)
  • l’ATtiny85 à programmer.
  • des câbles
  • une breadboard
  • un condensateur 10µF  25 V
Je connecte l' arduino UNO avec Attiny85 en utilisant un breadboard comme ci dessous :

Arduino Uno – ATtiny85
  • 5V – Vcc
  • Gnd – Gnd
  • Pin 13 – Pin 2
  • Pin 12 – Pin 1
  • Pin 11 – Pin 0
  • Pin 10 – Reset
Un schéma plus simple qu'un long discour :


Et dans la réalité j’obtiens :



J'ajoute le condensateur de 10µF entre Resest et GND sur l'arduino UNO.

Ceci pour prévenir le reset de l'arduino UNO quand le programme est chargé sur l'Attiny85.

Comme j'utilise un condensateur électrolytique je m'assure que l'anode est sur le GND (sinon c'est mal).

Téléversement du programme sur l'Attiny85.

Nous retournons donc maintenant sur le logiciel.

>outils>type de carte  sélectionner "attiny" 

>outils>processeur>  sélectionner "attiny85"

>outils>clock  sélectionner 8 MHz (internal)


Je m'assure pour finir que l'arduino comme isp est sélectionné.

>outils>programmateur  sélectionner "arduino as isp"


Par défaut le ATtiny85 fonctionne à 1Mhz, pour le faire fonctionner à 8Mhz :

>outils>   "graver la séquence d'initialisation"

Je devrais avoir un message du type de celui ci dessous


Mais en fait j'ai ça :



Et là je sèche total

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00

après quelques recherches sur le toile j'ai trouvé ceci :

http://www.lesusinesnouvelles.com/wiki/index.php?title=Microcontrolleur_ATTINY85

J'ai
donc téléversé sur l'arduino après avoir :
tout déconnecté
sélectionné type de carte "Arduino Genuino/Uno"
le port
et programateur : "parallel programmer"

le téléversement se passe normalement

je reconnecte tout comme ci dessus

lance la séquence 

>outils>   "graver la séquence d'initialisation"

et là pas de message d'erreur, juste un écran noir



je  charge maintenant le code exemple  "Blink"


Je le téléverse, et là tout semble se passer nomalement :




Maintenant il faut vérifier que cela fonctionne :

J'enlève toutes les connection et réalise le cablage suivant :

Mais là rien ne se passe

à suivre ...

eureka, j'ai compris pourquoi j'ai oublié de modifier le 13 en zéro
 à suivre































Aucun commentaire:

Enregistrer un commentaire