Re: Le système Arduino
Publié : 15 févr. 2013 04:20
Dans la pratique quelques homs suffisent...
Prenons un des fils, le SDA. Si j'ai déjà ma résistance au pull-up. Mon fil sera à 5V en permanence et tu peux avoir plusieurs composant avec une seul résistance. Ok.
Si tu a des modules, mettons que chacun ai sa résistance de quelques Khoms. Tu te retrouve sur ton fil avec ((1/R1)+(1/R2)).
Pour répondre à ta question. Non, tu peux avoir plusieurs résistances sur le même fil au pull-up. Chaque module ayant sa paire.
Dans mes tests, j'ai fait fonctionné sans mal le bus avec une dizaine d'homs comme avec une cinquantaine de Khoms. Sans problèmes. Tu a donc de la marge
Te voila rassuré je pense.
Si j'ai pris la peine d'attirer l'attention sur ce point, c'est qu'on ne mentionne pas toujours ce cas. Dans les tests, si le signal part dans les choux, on cherche... on cherche... Et c'est la base de tout bus série. Donc, à ce sujet pour le dépannage je procède comme suit:
1/ Je vérifie l'adresse au niveau composant. Si c'est Ok, he passe au 2
2/ Je regarde que le data (SDA) face bien clignoter une led. (Ça c'est facile, une résistance de 1Khom monté sur le fil à testé qui part vers une led sur son Anode. Sa cathode étant sur la passe) Si c'est ok, je passe au 3
3/ Je fais la même manip sur l'horloge (SCL). La diode clignote-t-elle ? Si c'est ok, je passe au 4
4/ Au repos, sans que le master (le maître n'envoie de signal, je vérifie que j'ai du +5V. Test avec un multimètre... Attention au calibre !! Si c'est Ok, je passe à la suite
5/ Et je fini par les connexions.
J'indique la démarche car j'ai eu de nombreuses fois des ennuis de code et je cherchais pourquoi le montage n’acquittais pas les ordres que je donnais. L'erreur N°1 devinez... C'étais mes résistances oubliés... La seconde, une pure erreur de codage. J'écrivais 01010001 au lieu de 01011111. Dans mon cas, mon composant était [Adresse 4bits][num de carte 3 bits][sens écriture/lecture 1 bit] Ce qui donne [0101][111][1] soit 8 bits. En arduino, vous serez surpris mais on écrit sur 7 bits, le dernier bit étant un High pour 1 et un Low pour 0. à adapter avec vos datasheet !
J'espère ne pas vous avoir perdu en cours de route. Il est important d'avancer par petit pas et de vous faire une idée du concept. Pour l'avoir utiliser un paquet de fois, je sait que c'est efficace et qu'une fonction vitale peut être mise en oeuvre sans problème avec ce type de bus.
Par contre, comme je dis souvent (prévoyais dans vos code, un bouton pour se passer de la fonction en panne de façon à naviguer quand même). Il vous suffit d'une ou deux pin avec un micro switch pour ne pas à avoir à intervenir sur le code au bord du bassin.

N'hésitez pas à demander des infos, sur le sujet, je suis tout ouvert à vous aider dans cette voie.
[EDIT]Geeks : Edit de 15h42
[/EDIT]
Je me suis interroger sur la capacité d'une ATTinny85 à communiquer en I2C. Genre pour voir si j'étais un ses seuls fous à faire l'emploie de ce vieux machin inventé par philips ! Et bien, surprise, oh miracle ! Jugez par vous même : AtTinny en mode capteur universel sur I2C. Quand on cherche... On trouve
Prenons un des fils, le SDA. Si j'ai déjà ma résistance au pull-up. Mon fil sera à 5V en permanence et tu peux avoir plusieurs composant avec une seul résistance. Ok.
Si tu a des modules, mettons que chacun ai sa résistance de quelques Khoms. Tu te retrouve sur ton fil avec ((1/R1)+(1/R2)).
Pour répondre à ta question. Non, tu peux avoir plusieurs résistances sur le même fil au pull-up. Chaque module ayant sa paire.
Dans mes tests, j'ai fait fonctionné sans mal le bus avec une dizaine d'homs comme avec une cinquantaine de Khoms. Sans problèmes. Tu a donc de la marge
Si j'ai pris la peine d'attirer l'attention sur ce point, c'est qu'on ne mentionne pas toujours ce cas. Dans les tests, si le signal part dans les choux, on cherche... on cherche... Et c'est la base de tout bus série. Donc, à ce sujet pour le dépannage je procède comme suit:
1/ Je vérifie l'adresse au niveau composant. Si c'est Ok, he passe au 2
2/ Je regarde que le data (SDA) face bien clignoter une led. (Ça c'est facile, une résistance de 1Khom monté sur le fil à testé qui part vers une led sur son Anode. Sa cathode étant sur la passe) Si c'est ok, je passe au 3
3/ Je fais la même manip sur l'horloge (SCL). La diode clignote-t-elle ? Si c'est ok, je passe au 4
4/ Au repos, sans que le master (le maître n'envoie de signal, je vérifie que j'ai du +5V. Test avec un multimètre... Attention au calibre !! Si c'est Ok, je passe à la suite
5/ Et je fini par les connexions.
J'indique la démarche car j'ai eu de nombreuses fois des ennuis de code et je cherchais pourquoi le montage n’acquittais pas les ordres que je donnais. L'erreur N°1 devinez... C'étais mes résistances oubliés... La seconde, une pure erreur de codage. J'écrivais 01010001 au lieu de 01011111. Dans mon cas, mon composant était [Adresse 4bits][num de carte 3 bits][sens écriture/lecture 1 bit] Ce qui donne [0101][111][1] soit 8 bits. En arduino, vous serez surpris mais on écrit sur 7 bits, le dernier bit étant un High pour 1 et un Low pour 0. à adapter avec vos datasheet !
J'espère ne pas vous avoir perdu en cours de route. Il est important d'avancer par petit pas et de vous faire une idée du concept. Pour l'avoir utiliser un paquet de fois, je sait que c'est efficace et qu'une fonction vitale peut être mise en oeuvre sans problème avec ce type de bus.
Par contre, comme je dis souvent (prévoyais dans vos code, un bouton pour se passer de la fonction en panne de façon à naviguer quand même). Il vous suffit d'une ou deux pin avec un micro switch pour ne pas à avoir à intervenir sur le code au bord du bassin.

N'hésitez pas à demander des infos, sur le sujet, je suis tout ouvert à vous aider dans cette voie.
[EDIT]Geeks : Edit de 15h42
Je me suis interroger sur la capacité d'une ATTinny85 à communiquer en I2C. Genre pour voir si j'étais un ses seuls fous à faire l'emploie de ce vieux machin inventé par philips ! Et bien, surprise, oh miracle ! Jugez par vous même : AtTinny en mode capteur universel sur I2C. Quand on cherche... On trouve
