Grs problème avec les ATTINY85 et les fuses

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:

Oui mais pour programmer les fusibles avec arduino tiny c'est ce qu'il faut faire
Arduino tiny utilise un bootloader vide

Upload with programmer c'est pour le sketch, après avoir flasher les fusibles

Bonjour!
Voici le message complet lors d'un "burn bootloader" pour changer l'horloge en 16 mHz interne via la librairie arduino tiny core :

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

Ce message apparait aussi lors d'un envoi de sketch mais seulement pour la version arduino 1.0.1. Une idée ?