Go Down

Topic: Problème code AtTyni45 (Read 6414 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 tutos et plein de bonnes choses 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 tutos et plein de bonnes choses 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 tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

jihelbi

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

al1fch

#36
Jul 28, 2012, 05:04 pm Last Edit: Jul 28, 2012, 05:09 pm by al1fch Reason: 1
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
Quote
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

cyle

Bonjour

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

et c'est ce que je veux  faire  :smiley-mr-green:


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

skywodd

Bonjour,


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

et c'est ce que je veux  faire  :smiley-mr-green:

C'est un sacré déterrage de topic ça :smiley-mr-green:


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.


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


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

Par défaut l'ATtiny25 avec l'oscillateur interne tourne à 8 MHz.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

cyle


Bonjour,


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

et c'est ce que je veux  faire  :smiley-mr-green:

C'est un sacré déterrage de topic ça :smiley-mr-green:


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.


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


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

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



skywodd


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

Le compilateur c'est forcément Avr-gcc ...
Pour le reste regarde ici : http://code.google.com/p/arduino-tiny/


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

Si tu utilise un quartz externe de 8MHz oui, si tu utilise un quartz externe de 16MHz non.
Si tu utilise l'oscillateur interne il est toujours de 8MHz et tu n'as pas besoin de quartz externe.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

cyle

Salut

ok je vais regardé pour telecharger AVR-gcc and co.

je cherche à faire ca



et ma question sur la frequence c'etait pour savoir si

ATTINY45-20PU ou ATTINY45-10PU ou bien ATTINY25-20PU ou ATTINY25-10PU 

sachant que les 10 ont l'air de fonctionner à des tensions d'alimentation plus basse (c'est mieux pour des systemes portables sur piles ou atteries)

@+

cyle

barbudor


Si tu utilise un quartz externe de 8MHz oui, si tu utilise un quartz externe de 16MHz non.
Si tu utilise l'oscillateur interne il est toujours de 8MHz et tu n'as pas besoin de quartz externe.


Le board.txt de arduino-tiny définit aussi un mode 16MHz Internal-PLL.


@cyle
Quand la sortie de l'ATtiny est à 0V, la led est allumée mais le transistor est bloqué (pas de conduction).
Quand la sortie est à VCC, la led est éteinte et le trasistor est saturé (conduit)
C'est bien ce que tu veux ?
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

cyle



Si tu utilise un quartz externe de 8MHz oui, si tu utilise un quartz externe de 16MHz non.
Si tu utilise l'oscillateur interne il est toujours de 8MHz et tu n'as pas besoin de quartz externe.


Le board.txt de arduino-tiny définit aussi un mode 16MHz Internal-PLL.


@cyle
Quand la sortie de l'ATtiny est à 0V, la led est allumée mais le transistor est bloqué (pas de conduction).
Quand la sortie est à VCC, la led est éteinte et le trasistor est saturé (conduit)
C'est bien ce que tu veux ?



Salut


je vais remplacer le transistor par un optocoupleur pour proteger un peu plus l'appareil photo

ce que je veux c'est que la led soit allumée et qui il y ait  mise en commun des deux fil de par et d'autre du mot APN sur la photo

@+
cyle

barbudor


ce que je veux c'est que la led soit allumée et qui il y ait  mise en commun des deux fil de par et d'autre du mot APN sur la photo


Pour l'instant dans ton montage à transistor, c'est l'inverse qui se produit.
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Go Up