Go Down

Topic: Problème code AtTyni45 (Read 6370 times) previous topic - next topic

jihelbi

Absolument faux skywood...

attiny45.build.mcu=attiny45
attiny45.build.f_cpu=1000000L
attiny45.build.core=arduino:arduino
attiny45.build.variant=tiny8

Voila ce qui indique (dans les fichiers boards.txt de l'utilisateur) à l'IDE Arduino de compiler pour un Tiny. Rien d'autre à faire que de choisir la bonne board.

Voici à nouveau mon lien sur ce qui va bien pour les chips ATtiny et ATmega autre que le 328P et qui permettent aussi de faire du FULL FLASH ou de charger l'Optiboot et aussi et surtout de positionner les fusibles du Tiny pour varier sa clock.

http://balbarie.com/arduino/Mes documents-Arduino.zip

JLB

jihelbi

Skywood tu te trompes aussi la dessus :

Quote
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
avrdude: stk500_recv(): programmer is not responding


Si les deux premières lignes sont effectivement des messages sans conséquence, la troisième ligne indique clairement que la communication avec le programmateur ne fonctionne pas.

Je réitère mes conseils :

- As tu téléverseé le soft ArduisoISP dans ton Arduino ?
- As tu mis un condensateur de 10 uF entre masse et reset avant de téléverser ton programme Tiny ?

JLB

metalos

As tu téléverseé le soft ArduisoISP dans ton Arduino ?

Oui

As tu mis un condensateur de 10 uF entre masse et reset avant de téléverser ton programme Tiny ?

Oui

Pour les branchements je pense être bon...

jihelbi

As tu choisi dans le menu options le programmateur "Arduino as ISP" ?

As tu choisi dans le menu type de carte l'un des 3 ATtiny45 qui sont apparus maintenant que tu as placé mes fichiers au bon endroit ?

JLB

jihelbi

Détail complet de la manip :

1) Enlever le condensateur de 10 uF de l'Arduino.
2) Choisir comme type de carte "Arduino Uno" (je crois que c'est ta carte).
3) Téléverser normalement (pas téléverser avec un programmateur) le programme exemple "Arduino as ISP".
4) Placer un condensateur de 10uf entre GND et RESET de l'Arduino.
5) Connecter les pins 13, 12, 11 et 10 de l'Arduino Uno aux pins 7, 6, 5 et 1 de l'ATtiny.
6) Choisir comme programmateur "Arduino as ISP".
7) Charger ton programme pour le Tiny.
8) Choisir comme type de carte une des ATtiny45 que tu vois apparaître depuis que tu as mes fichiers.
9) Dans le menu fichier choisir "Téléverser avec un programmateur".

Pendant la programmation tu dois voir la led TX de l'Arduino clignoter très vite (presque fixe) puis la la led RX faire de même (c'est la phase de relecture).

A la fin tu n'as plus que les deux premières lignes d'erreur et ton Tiny est programmé.

Attention le choix d'une carte à 1, 8 ou 16 MHz ne jouent que sur la compilation (adaptation des fonctions liées aux timers). Pour que le Tiny changent exffectivement de fréquence il faut faire "Graver la séquence d'initialisation". Cela génère une erreur mais fonctionne car la programmation des fuses est effectuée en tout premier.

JLB

metalos

Nouvelle essaie sur windows et voici ce que le compilateur me donne en erreur.

Code: [Select]

Taille binaire du croquis : 924 octets (d'un max de 4 096 octets)
avrdude: stk500_getsync(): not in sync: resp=0x00

skywodd


Absolument faux skywood...

attiny45.build.mcu=attiny45
attiny45.build.f_cpu=1000000L
attiny45.build.core=arduino:arduino
attiny45.build.variant=tiny8

Voila ce qui indique (dans les fichiers boards.txt de l'utilisateur) à l'IDE Arduino de compiler pour un Tiny. Rien d'autre à faire que de choisir la bonne board.

T'as pas compris ce que je voulais dire ...
De base le core arduino n'est pas fait pour les ATtiny, la "variante" tiny8 (par exemple) n'existe pas dans le core arduino.
Pour compiler sur ATtiny il faut bien évidement le boards.txt mais aussi le pin_arduino.h qui va bien !
Tu semblait dire qu'il suffisait du fichiers boards.txt, mais il faut aussi le dossier variant (enfin tu le précise dans ton 1er post).

Tu remarquera aussi que tout ce qui est Serial (hardware, pas software), Wire, ... par en sucette, alors qu'avec un core optimisé ATtiny (comme arduino-tiny) tu conserve ces fonctionnalités (bien quelle soit trés réduite au final de pars le hardware de l'ATtiny).
Tu as aussi un gain en taille non négligeable vu le "peu" de mémoire flash disponible.


Skywood tu te trompes aussi la dessus :
(...)
Si les deux premières lignes sont effectivement des messages sans conséquence, la troisième ligne indique clairement que la communication avec le programmateur ne fonctionne pas.

Zut j'avais pas vu la 3eme ligne, il y a donc bien un probléme entre l'arduinoISP et l'ordi.

Ps: Tu utilise quoi comme carte (je m'en rappelle plus) si c'est une UNO rev1 ou rev2 il faut une diode "à l'envers" entre reset et GND (ou VCC, il y avait un topic sur le sujet sur le forum).
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

metalos

C'est une arduino Uno Rev 3 officiel.

skywodd


C'est une arduino Uno Rev 3 officiel.

Ça peut venir de là :
http://arduino.cc/forum/index.php?topic=88146.0
(dernier post, vérifie que tu as la bonne vitesse de port série)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

metalos

La vitesse et bien de 9600. Voici de nouvelle erreurs au moment de graver la séquence de boot. c'est à devenir fou ce truc.

Code: [Select]

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


Et voici au moment de téléverser

Code: [Select]

Taille binaire du croquis : 924 octets (d'un max de 4 096 octets)
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


Les LED TX et RX de la carte arduino clignote bien pourtant.

metalos

Je suis une grosse burne  :) :) :) :)

J'ai trouvé le problème, en deux problèmes.

1- Une puce Attiny45 et dead
2- J'avais décalé le cable de GND sur le Vin de la carte arduino.

Maintenant tous marche bien j'ai enfin injecter le code dans l'AtTiny45. Un grand merci à vous vous m'avez franchement bien aidé. Merci.

skywodd


Je suis une grosse burne  :) :) :) :)

J'ai trouvé le problème, en deux problèmes.

1- Une puce Attiny45 et dead
2- J'avais décalé le cable de GND sur le Vin de la carte arduino.

Ha ouai, effectivement ça marche beaucoup moins bien comme ça ^^""
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

jihelbi

Skywood réfléchis un peu...

Comment veux tu que la librairie Serial fonctionne alors qu'il n'y a pas d'USART sur le tiny.

Par contre toutes les autres différences sont gérées. Les timers se comportent comme celui du Tiny avec les Noms de registres conformes à la doc ATMEL. Les ressources inutilisables sortent une erreur à la compil. Les instructions assembleurs nont présentes dans le tiny ne sont pas utilisées, etc...

Ne pas oublier le burn bootloader pour régler la fréquence du Tiny. Moi j'utilise surtout le 16 Mhz  et aussi la librairie SerialSoftware. Mon décodage IR RC5 hyper concis (dispo dans projets finis) fonctionne à merveille même à 1 MHz.

Le Tiny permet même du "fast fast" PWM...

JLB

skywodd


Skywood réfléchis un peu...

Comment veux tu que la librairie Serial fonctionne alors qu'il n'y a pas d'USART sur le tiny.

Les ATtiny ont un module USI (universal serial interface) qui permet au choix de faire :
- TWI (I2C sauce ATMEL),
- SPI,
- UART

Note application officielle d'ATMEL sur l'utilisation de L'USI en UART :
http://www.avrfreaks.net/index.php?module=Freaks%20Tools&func=viewItem&item_id=525

Les modules USI sont beaucoup plus répandu que les modules UART/TWI/SPI dans les petits microcontrôleurs, ça coute moins rien à produire, c'est générique et ça marche partout de la même façon ;)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

jihelbi

Tous les Atmel ont cela. Mais il est utilisé par le SPI et est donc difficilement utilisable si on veut programmer et reprogrammer la flash jusqu'à ce que bon fonctionnement s'ensuive...

JLB

Go Up