Go Down

Topic: TTL full duplex -> Half duplex (Read 1 time) previous topic - next topic

Jean-François

Donc, avec un diode ça pourrait aller ? pas de court-jus  :-?
MacBook intel core 2 duo  os X snow Leopard 10.6
 eMac PPc G4  os X Leopard 10.5
powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

fdufnews

#6
Jan 07, 2011, 11:32 pm Last Edit: Jan 07, 2011, 11:57 pm by fdufnews Reason: 1
Quote
Donc, avec un diode ça pourrait aller ? pas de court-jus

Ben cela dépend lequel des deux force le +5V et le 0 il y a toujours un sens où la diode est passante.

En fait en relisant ton premier post je suis surpris par le niveau 0 tu mets bien le HC126 en haute impédance lorsque tu veux recevoir les infos du servo? Car ce niveau 0 à 3,3V ressemble assez à un conflit sur la ligne de communication. Avec les valeurs par défaut il faut que la ligne qui commande la direction des HC126 soit changée dans les 160µs qui suivent l'envoi du message.

neoirto

Aie, court-circuit, ça raisonne pas bien à mes oreilles...
Le coup de la diode c'est pas bete effectivement mais il faut etre sur de la polarité d'au moins un coté, c'est bien ca ??

Pour le HC126, effectivement c'est bizarre, parce que ça a l'air tout bete sur le principe. Mais c'est 5v à 3.3V, pas 0 à 5, si ça change quelque chose...

En fait je ne vous ai pas tout dit : je controle effectivement l'ouverture des portes logiques alternativement pour Rx puis Tx à l'aide de 2 lignes de controle (AN6 et AN7 utilisées en digital, c'est à dire digital 60 et 61).
Donc j'ai essayé en OUTPUT :
Code: [Select]
     pinMode(PIN_DIGITAL_ENABLE_RX, OUTPUT);
     pinMode(PIN_DIGITAL_ENABLE_TX, OUTPUT);


Je voyais correctement sortir le signal sur mon oscillo de poche, mais pas de réponse des servos, et coté Rx, le temps de la transmission je passe en 0V, puis dès que je passe en Tx, 5V continu (faut dire qu'il n'y a pas de réponse aussi...

Alors j'ai fait :
Code: [Select]
     pinMode(PIN_DIGITAL_ENABLE_RX, INPUT);
     pinMode(PIN_DIGITAL_ENABLE_TX, INPUT);

Et la ça fonctionne, les servos répondent... Deja je pige pas trop la logique. En dehors de la resistance interne en INPUT HIGH je vois pas trop la différence.

Donc les servos répondent correctement immédiatement après la commande mais c'est la que ça ne passe plus en direction de l'arduino, surement à cause du low level à 3.3V.

Autre précision importante : lorsque je suis en transmission :
- porte logique Tx INPUT HIGH
- porte logique Rx INPUT LOW
Normalement je ne devrai rien capter sur Rx, et pourtant j'ai le même signal que sur Tx (les bits envoyés depuis l'arduino donc).

J'ai vérifié la forme du signal de porte logique INPUT Tx et Rx, et c'est moins propre (signal pas vraiment carré contrairement au mode OUTPUT). Mais même si c'est moins immédiat, je suis sur que je devrai capter au moins quelques bytes, et la : nada !  :-/

J'ai un deuxième circuit HC126 de rechange, vous pensez que ca pourrait venir d'un circuit daubé ? Je le change ?

Merci de votre aide  :)      

Go Up