Go Down

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

skywodd


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


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 :smiley-mr-green:

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 ;)
Est que pour le amis du manchot il existe aussi de tres bon simulateur d'AVR opensource.
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

jihelbi

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

skywodd


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


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 :smiley-mr-green:
Bon donc je retire ce que j'ai dit, il reste 2 broches hors du port ICSP sur un ATtiny :smiley-mr-green:


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 ;)
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

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

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

JLB

skywodd


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 ;)
(Et franchement l'avr-c + makefile c'est vraiment pas plus compliqué que de l'arduino en y regardant ...)


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 :smiley-mr-green:
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Go Up