j'ai reçu des attiny85-pu tout neuf et j'ai voulu les tester.
Pour faire simple, j'ai commencé par ne rien changer et envoyer simplement un programme qui allume une LED et qui l'éteint via l'arduino.
Ça marchait très bien jusque là.
Puis, j'ai voulu changé la fréquence d'horloge pour la mettre en 16mHz tout comme arduino : j'ai suivis ce tutoriel : http://eletronicacuriosa.blogspot.fr/ ( en espagnol )
bref, via avrdude j'ai entré la commande :
Puis, quand je l'ai éxécuté, il m'a demandé au bout d'un moment trois questions avec [y/n] que j'ai répondu par y et il me mettait "COULD NOT BE CHANGED" quelque chose comme ça, je ne me souvient pas du message.
J'en ai déduit que la fréquence n'a pas été changé. Tant pis, je vais essayer de réenvoyer un programme qui allume une LED
Problème !
Binary sketch size: 756 bytes (of a 8192 byte maximum)
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
Que ce passe t-il ? Ça n'envoie plus rien...
Mon premier attiny ne fonctionne plus donc car je n'arrive pas à envoyer de programme. Du coup, j'en prend un deuxième
Je retourne sur internet et je trouve une autre commande pour les fuses : avrdude -p attiny85 -P com18 -c arduino -b 19200 -B 250 -u -U lfuse:w:0xfd:m -U hfuse:w:0xdf:m
et j'essaie encore : Résultat : Cette fois la commande s'est bien éxécuté MAIS, pareil, je ne peu plus envoyer de programme ! Même message d'erreur, que ce passe t-il ? Ai-je fais une mauvaise manip ?
Savez vous si je peux récupéré mes attiny ? J'en ai perdu 3 en faisant cette manipulation ... je voulais simplement changer la fréquence d'horloge à 16 mHz.
As tu installé arduino-tiny ?
Le fichier boards définit tout ce qu'il faut pour configurer correctement des Tiny à 1MHz, 8MHz et 16MHz.
Ca se fait depuis l'IDE Arduino avec la fonction "burn bootloader"
J'ai essayé et ca marche très bien.
Tu as quoi comme programmateur ? J'ai un USBasp chinois.
Mais il faut que tu installes arduino-tiny. C'est plus qu'une lib car l'environnement de base Arduino core pour ATmega ne supporte pas les tiny (ou plutot les tiny ne supportent pas les fonctions avancées des ATmega (comme la liaison série hardware par example).
Une fois que tu aura installé cette lib, choisira comme "carte" le bon ATtiny.
La première fois tu fait un "burn bootloader" pour flasher les fusibles concernés.
Après tu fait "Upload sketch with programmer" pour mettre ton code dans la puce
NE PAS CHERCHER A CHANGER LES FUSIBLES POUR RECUPERER LA BROCHE 1 (RESET)
Si cette broche perd sa fonction reset, on ne peut plus programmer le chip par ICSP (j'ai donné).
Pour récupérer mon chip mal programmé (mauvais fusibles) j'ai bricolé ceci : HV Rescue Shield 2 | MightyOhm
Sur un shield de prototypage (en simplifiant pour garde que ce qu'il fallait pour mes ATtiny85)
Ca a bien marché.
Voir ici : [RESOLU] ATtiny85 - Impossible de reflasher - Français - Arduino Forum
D'accord, je prends note, merci du conseil !
Bien, je vais déjà voir du côté de cette fameuse librairie puis je verrais pour essayer de récupérer mes attiny.
Merci ! Je vous tiens au courant
j'ai donc installé la librairie arduino tiny core, et sélectionné le bon attiny avec fuse de 16mHz en horloge interne.
Résultat : même erreur.
Je vais donc essayer de voir le kit de réparation, sauf si vous avez encore d'autres solution plus simple à me proposer?
68tjs:
Comme avrdude te le dis tu peux ajouter l'option -F, la signature sera vérifiée et affichée mais le programme ne se bloquera pas.
Ne jamais forcer l'upload avec -F, si il y a une erreur lors de la lecture de la signature c'est que quelque chose ne va pas.
(si le programme n'arrive pas à lire 2 octets autant arrêter tout de suite et regarder ou ça merde)
skywodd -> J'ai bien cablé mon microcontrolleur, je pense donc à la deuxième solution : "- ATtiny en mode "external clock" sans quartz (ou autre) de câbler sur l'entrée d'horloge"
J'ai donc branché un quartz avec deux condensateurs de 12 pF et là, j'obtiens une autre erreur :
Binary sketch size: 746 bytes (of a 8192 byte maximum)
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
avrdude: stk500_cmd(): programmer is out of sync
Je vais essayer de faire des recherches sur cette erreur ... !
68tjs -> Hmm non je ne pense pas avoir fait cette erreur, sur le tutoriel que j'ai lu il était bien précisé "pu"
Kouaaks:
Un bootloader optiboot ? A quoi peut servir cette commande?
C'était de l'ironie ...
Pour te faire remarquer le fait que justement les ATtiny n'avait pas de bootloader et que par conséquent utiliser "-c arduino" ne pouvait forcément pas fonctionner
barbudor:
On est bien d'accord que tu es en train de faire un "burn bootloader" a partir d'une UNO en mode ArduinoISP et que donc tu as désactivé l'autoreset
Il n'y a pas de bootloader sur un ATtiny ...
Pour programmer un sketch avec arduino-tiny il faut utiliser "upload using a programmer".
"burn bootloader" sur un ATtiny ne fait qu'envoyer un .hex vide ...
J'ai bien fait un "burn bootloader" car j'ai vu qu'il fallait passer par là quand on a un microcontrolleur sortie d'usine (je vais essayer de retrouver le lien du tutoriel). L'autoreset est donc désactivé ?
(Voici donc l'erreur quand je compile cette fois, pas de burnloader)
Quand tu veut envoyer ton programme dans l'ATtiny il faut utiliser l'option "upload using programmer" ou faire shift + bouton upload.
Les ATtiny n'ont pas de bootloader, donc l'upload "classique" ne peut pas fonctionner (STK500 c'est le protocole de communication du bootloader "optiboot" pour les cartes arduino "normales").
D'accord, merci de l'info alors.
Donc pour changer la fréquence d'horloge d'un attiny85, je dois utiliser la librairie arduino tiny core et sélectionner Attiny85 16mHz en mode horloge interne et envoyer un programme. C'est bien cela ?
Eh bien bonne nouvelle, ça fonctionne grace à ce schéma.
MAIS ! ne fonctionne que sous arduino 0022 et pas avec la librairie tiny core ...
avec la librairie tiny core sous arduino 1.0.1 j'ai une erreur : protocol error
Kouaaks:
Eh bien bonne nouvelle, ça fonctionne grace à ce schéma.
MAIS ! ne fonctionne que sous arduino 0022 et pas avec la librairie tiny core ...
avec la librairie tiny core sous arduino 1.0.1 j'ai une erreur : protocol error
Le message complet ce serait plus clair que juste "protocol error"