Grs problème avec les ATTINY85 et les fuses

Salut,

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.

Merci de votre aide. :~

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.

Salut,

eh bien non je n'ai pas essayé avec cette librairie. Comme programmateur j'utilise la carte arduino directement avec le "ArduinoISP"

pour l'instant ce que je souhaiterai c'est récupérer mes pauvres attiny :disappointed_relieved:

Auriez vous une astuce ? Je ne pense pas qu'ils soient "casser" mais pour l'instant ils ne sont pas utilisables.

Ok avec Arduino ISP c'est tout bon.

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

Salut,

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?

Bonjour,

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85

Problème de configuration dans avrdude.conf, à ignorer c'est rien de grave (ça devrait marcher même avec ce warning).

avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

Au choix (par ordre de probabilité) :

  • mauvais câblage du connecteur ICSP
  • ATtiny en mode "external clock" sans quartz (ou autre) de câbler sur l'entrée d'horloge
  • ATtiny cramé

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.

Question sait-tu si par hasard la signature ne correspondrait pas à des ATMega85 "tout court" et non pas à des ATMega85pu ?

Cela m'est arrivé avec des 328 commandé sur Ebay ce n'était pas des 328p mais bien des 328.

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"

-c arduino

Tient les ATtiny ont un bootloader optiboot maintenant :wink:

-c usbasp

Un bootloader optiboot ? A quoi peut servir cette commande?

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 :cold_sweat:

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

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)

avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
avrdude: stk500_cmd(): protocol error

Je pense acheter le kit de réparation attiny.

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 ?

EDIT : Wayne's Tinkering Page - ATTiny Fuse Reset j'ai trouvé celà, je vous en fait le partage; j'essaierai de tester ce schéma

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" :wink: