Problème code AtTyni45

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

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

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.

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.

jihelbi:
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).

C'est une arduino Uno Rev 3 officiel.

metalos:
C'est une arduino Uno Rev 3 officiel.

Ça peut venir de là :

(dernier post, vérifie que tu as la bonne vitesse de port série)

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.

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

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.

Je suis une grosse burne :slight_smile: :slight_smile: :slight_smile: :slight_smile:

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.

metalos:
Je suis une grosse burne :slight_smile: :slight_smile: :slight_smile: :slight_smile:

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 ^^""

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

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.

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

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

jihelbi:
Tous les Atmel ont cela.

Non pas du tous, je dirai même que seul un nombre limité d'AVR ont un module USI hardware (un vrai module USI, pas SPI, c'est pas la même chose).

jihelbi:
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...

En même temps sur un ATtiny à 8 broches faut le vouloir pour trouver une broche qui soit pas compris dans le connecteur ICSP ... à 8 broches :grin:

Pour ce qui est de la "difficulté" à reprogrammer la flash, il suffit de lire le datasheet et les notes d'application d'ATMEL.
-> http://www.atmel.com/images/doc2521.pdf

De plus pour la partie debuggage du code il faut bien se rappeler que ATMEL fourni un ide complet comprenant un simulateur trés puissant :wink:
Est que pour le amis du manchot il existe aussi de tres bon simulateur d'AVR opensource.

J'ai répondu un peu vite. Autant pour moi. L'ICSP laisse l'usage des pins MOSI, MISO et CLK comme entrée et comme sortie à condition de ne pas cabler directement dessus une charge ou une source qui empêche le programmateur de bouger les signaux. Il est donc possible de reprogrammer un Tiny par ICSP tout en ayant cablé un port série dessus.

Le connecteur ICSP n'a pas 8 broches mais 6 (les 4 SPI + l'alim).

En fait il n'y aucun rapport entre le core Arduino et le fait que la librairie Serial ne gère que l'USART. Rien ne t'empêche d'écrire une librairie qui prenne cela en considération. Moi je fais du Serial Software qui va aussi bien (surtout à 16Mhz).

De toute façon l'usage des librairies est très limité sur le Tiny à cause de la taille de la flash. Par exemple IRremote n'est pas utilisable et j'ai d'ailleurs mis à dispo dans "Projets finis" une réception RC5 sous interruption mais ultraconcise.

Dans tous les cas le core Tiny est intégré dans l'environnement Arduino sans avoir besoin de librairies particulières. Evidemment certaines librairies n'ont pas de sens sur un Tiny et c'est au développeur de prendre cela en considération. Egalement les librairies personnelles mises à dispo par certains ne prennent généralement pas en considération le core utilisé ou plutôt ne considère que la famille ATmega.

JLB

jihelbi:
L'ICSP laisse l'usage des pins MOSI, MISO et CLK comme entrée et comme sortie à condition de ne pas cabler directement dessus une charge ou une source qui empêche le programmateur de bouger les signaux. Il est donc possible de reprogrammer un Tiny par ICSP tout en ayant cablé un port série dessus.

Un port série ou autre port/bus, suffit de bien suivre la procédure décrite par ATMEL.
Il faut aussi faire trés attention si on utilise des modules SPI et un ATmega alimenté en 3v3, la moindre erreur de câblage et c'est le drame.
De même, ne jamais oublier la résistance de 10K entre RESET et +VCC, sinon lors de l'activation du ICSP le circuit peut partir en fumé (retour de tension dans +VCC).

jihelbi:
Le connecteur ICSP n'a pas 8 broches mais 6 (les 4 SPI + l'alim).

MISO, MOSI, SCK, RESET, GND, VCC, ... ok donc je sait plus compter jusqu'à 6 :grin:
Bon donc je retire ce que j'ai dit, il reste 2 broches hors du port ICSP sur un ATtiny :grin:

jihelbi:
De toute façon l'usage des librairies est très limité sur le Tiny à cause de la taille de la flash. Par exemple IRremote n'est pas utilisable et j'ai d'ailleurs mis à dispo dans "Projets finis" une réception RC5 sous interruption mais ultraconcise.

Sur un Attiny45 pourquoi pas, mais sur un ATtiny85 il y a quand même pas mal de place (8Ko).
Moi je programme en avr-c sur ATtiny, mes programmes ne dépasse jamais 4Ko du coup :wink:

Si tu programmes avec l'IDE Arduino mais sans utiliser les fonctions Arduino (digitalRead/Write, analogRead/Write, pinMode, delay, etc... Et bien tu ne prends pas plus de place qu'en avr-c...

Le problème ce sont les librairies. On peut s'en passer et tout écrire soi-même.

JLB

jihelbi:
Si tu programmes avec l'IDE Arduino mais sans utiliser les fonctions Arduino (digitalRead/Write, analogRead/Write, pinMode, delay, etc... Et bien tu ne prends pas plus de place qu'en avr-c...

Oui mais ça ne vaut pas un bon makefile du coup, avec ton choix d'optimisation, de linker, etc ...
Tu peut aussi prévoir ta routine de flash / fusibles et faire un affichage de la taille du prog + sections.
Quitte à programmer en avr-c autant le faire avec un makefile, c'est pas plus compliqué mais tu est libre de faire ce que tu veut :wink:
(Et franchement l'avr-c + makefile c'est vraiment pas plus compliqué que de l'arduino en y regardant ...)

jihelbi:
Le problème ce sont les librairies. On peut s'en passer et tout écrire soi-même.

Moi j'utilise le moins de librairie possible, je fait tout en bas niveau.
J'aime pas ne pas savoir ce que j'utilise :grin:

Je suis d'accord avec toi mais en même temps j'apprécie beaucoup le projet Arduino qui tend à une simplification extrême de l'ensemble de l'IDE tout en assurant une bonne garantie de cohérence.

Je suis surtout ici parce que j'aime bien aider et encourager les débutants. Je m'efforce de présenter correctement mes bouts de code et j'aime montrer qu'on peut tout faire avec l'IDE Arduino sans avoir besoin de devenir un spécialiste des micro-contrôleurs.

Exemple : La compil et le build d'un projet (un sketch, un croquis) sont effectués à chaque téléversement. Ca te parait sans doute rien mais pour un débutant dont le but n'est pas forcément de denir un expert en uControleurs, mais plutôt de faire aboutir un projet, c'est carrément énorme...

JLB

Bonjour
Vu que l'échange, intéressant pour ma part, entre jihelbi et skywodd élargit quelque peu le champs du fil initial au dela d'Arduino j'en profite pour signaler qu'un compilateur C commercial sous Windows, CodeVision, prend en charge de manière assez efficace les Tiny , les 'costauds' comme le 85 et les tout petits...
+++ Bonne aide '=Wizard' pour configurer les périphériques. (l'utilisation de ce Wizzard est même bénéfique à l'utilisateur d'Arduino qui n'est plus débutant et veut commencer à exploiter un peu les périphériques internes au delà de ce que l'IDE propose.... ça permet de vérifier si on a compris la datasheet. Personellement c'est l'utilisation que j'en fait = complément d'Arduino, en lever de doute de lecture de datasheet)
La version d'évaluation de CodeVision est limitée à 4kb .....juste ce qu'il faut pour un Tiny45 !
http://www.hpinfotech.ro/html/cvavr.htm

Chips supported by CodeVisionAVR Standard:
ATtiny4, ATtiny5, ATtiny9, ATtiny10, ATtiny20, ATtiny40 (reduced core)
ATtiny13, ATtiny13A
ATtiny1634
ATtiny167, ATtiny87
ATtiny22
ATtiny2313, ATtiny2313A, ATtiny4313
ATtiny24, ATtiny44, ATtiny84
ATtiny25, ATtiny45, ATtiny85
ATtiny26, ATtiny46, ATtiny86, ATtiny166
ATtiny261, ATtiny461, ATtiny861
ATtiny43U

Bonjour

en fouillant dans le forum j'ai trouvé cà :slight_smile:

et c'est ce que je veux faire :grin:

par contre j'ai 3 petites questions

  1. est ce qu'un tel code rentrerai dans une attiny25 (place disponible suffisante)?
  2. y a t il de la marge pour faire une petite modification ( en gros rajouter un delay)?
  3. a quelle frequnce c'est cadencé? 10 ou 20?

@+

cyle

Bonjour,

cyle:
en fouillant dans le forum j'ai trouvé cà :slight_smile:

et c'est ce que je veux faire :grin:

C'est un sacré déterrage de topic ça :grin:

cyle:

  1. est ce qu'un tel code rentrerai dans une attiny25 (place disponible suffisante)?

A voir, vu le nombre très restreint de ligne de code je pense que oui.

cyle:
2) y a t il de la marge pour faire une petite modification ( en gros rajouter un delay)?

Le meilleur moyen est de faire la modif et de compiler le tout.
Pas besoin d'avoir l'ATtiny sous la main pour compiler :wink:

cyle:
3) a quelle frequnce c'est cadencé? 10 ou 20?

Par défaut l'ATtiny25 avec l'oscillateur interne tourne à 8 MHz.

skywodd:
Bonjour,

cyle:
en fouillant dans le forum j'ai trouvé cà :slight_smile:

et c'est ce que je veux faire :grin:

C'est un sacré déterrage de topic ça :grin:

cyle:

  1. est ce qu'un tel code rentrerai dans une attiny25 (place disponible suffisante)?

A voir, vu le nombre très restreint de ligne de code je pense que oui.

cyle:
2) y a t il de la marge pour faire une petite modification ( en gros rajouter un delay)?

Le meilleur moyen est de faire la modif et de compiler le tout.
Pas besoin d'avoir l'ATtiny sous la main pour compiler :wink:

cyle:
3) a quelle frequnce c'est cadencé? 10 ou 20?

Par défaut l'ATtiny25 avec l'oscillateur interne tourne à 8 MHz.

Salut

Merci de me repondre :slight_smile:

j'ai rien encore pour compiler et flasher dans une attiny.
N'importe quel compilateur peut suffire?je testeterai des modifs ensuite.

je peux donc prendre des attiny -10 à la place des 20

@+

cyle