Aller au contenu


Photo
- - - - -

Communication PIC/ port série


3 réponses à ce sujet

#1 Son Of Sparda

Son Of Sparda

    Membre

  • Membres
  • 43 messages

Posté 10 juillet 2010 - 12:50

Salut tout le monde voilà pas de souci je sais comment marche le "passage" de données en série mais j'ai quelques questions assez ciblées:

les cables série sont-ils droits ou croisés?
 _____= ____
|           |
O O O O O   o o o o o
 O O O O     o o o o
ou   |___=_____|


Deja c'est le PIC le DCE et c'est le pc le DTE j'ai bon?

ensuite dans le protocole si on dit que le pc envoie les données:
Data carrier detect est à 1 depuis que le PIC est branché
Data set ready est à 1 : monsieur le PIC est dispo à écouter le pc
ring indicator: on s'en fout non?
Request to send: bon bah ça c'est le pc
Clear to send: on passe cette sortie du pic a 1 quand request indicator et data set ready sont a 1, j'ai bon?
et apres on envoie jusqu'au bit de stop

Ca marche comment apres? faut passer à zero dans l'ordre: clear to send et data set ready du temps que le pic trifouille les données recues?

Et j'espere que c'est des signaux logiques, bon apres sinon j'ai vu ça

Un niveau logique "0" est représenté par une tension de +3V à +25V et un niveau logique "1" par une tension de -3V à -25V (codage NRZ). Ordinairement, des niveaux de +12V et -12V sont utilisés.

Donc faut pas brancher le pic direct en réception sinon il va souffrir mais c'est obligé de répondre au pc avec du 12 volt? Si ça m'évitait le méli melo de transistors :lol: . Et quelqu'un confirme le +12 / -12v?

Bon bein voilà j'espère que quelqu'un a de l'expérience dans le domaine ce serait très cool, m'aider a franchir le pas entre théorie et pratique sans tout casser. :unsure:

#2 Leon

Leon

    Membre passionné

  • Membres
  • PipPipPipPipPip
  • 1 289 messages
  • Gender:Male

Posté 10 juillet 2010 - 02:10

Deja c'est le PIC le DCE et c'est le pc le DTE j'ai bon?

D'habitude, on fait de la communication avec un PIC sans contrôle matériel de flux, c'est à dire juste avec 3 fils: RXD, TXD et masse. Dans ces conditions, les définitions DCE/DTE n'ont plus lieu d'être. Tu peux éventuellement avoir besoin d'un contrôle XON/XOFF, mais ça n'est pas indispensable, surtout si le débit est raisonnable. Je n'ai pour l'instant jamais eu besoin de contrôle de flux avec un PIC, mais ça dépend des applications. Le plus simple, c'est 3 fils, sans aucun contrôle de flux.

Après, tu as peut-être un besoin particulier pour t'intéresser aux lignes de contrôle... A toi de nous dire.

Enfin, les tensions sont effectivement incompatibles. Un PC c'est entre -12V et +12V, et un PIC c'est entre 0 et 5V. Pour transformer l'un en l'autre et réciproquement, on utilise un circuit MAX232 (ou équivalent), qui permet de convertir 2x2 signaux.
Attention, petite subtilité, côté PIC, un 0 logique se traduira par 5V; et 1 logique par 0V. C'est inversé côté "RS232": -12V pour 0 logique, et +12V pour 1 logique.

Leon.

BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)


#3 Son Of Sparda

Son Of Sparda

    Membre

  • Membres
  • 43 messages

Posté 10 juillet 2010 - 04:13

Nickel merci !

Dans ces conditions, les définitions DCE/DTE n'ont plus lieu d'être. Tu peux éventuellement avoir besoin d'un contrôle XON/XOFF, mais ça n'est pas indispensable, surtout si le débit est raisonnable. Je n'ai pour l'instant jamais eu besoin de contrôle de flux avec un PIC, mais ça dépend des applications. Le plus simple, c'est 3 fils, sans aucun contrôle de flux.

Après, tu as peut-être un besoin particulier pour t'intéresser aux lignes de contrôle... A toi de nous dire.


Je pensais que la fonction d'envoie était bloquante et attendait que le PIC lui dise "ok" mais tout compte fait c'est cool, moi j'avais juste peur que le PIC reçoive le bit de start alors qu'il était entrain de faire un traitement et qu'après il interprète un bit de donnée comme start. Mais tout compte fait si j'ai une grossière idée du temps de traitement c'est clair un petit sleep de quelques ms sur le pc après la fonction d'envoi je pense que ça tuera personne.

et c'est génial ce circuit moi qui m'imaginais déjà faire le truc, un énorme merci pour tout ces conseils !

#4 Leon

Leon

    Membre passionné

  • Membres
  • PipPipPipPipPip
  • 1 289 messages
  • Gender:Male

Posté 10 juillet 2010 - 05:23

Si tu utilises le périphérique USART de ton PIC (ce que je pense), alors ce périphérique peut émettre et recevoir des données même si le coeur de ton PIC fait autre chose. Dès que tu recois un octet, celui-ci est placé dans un buffer, en attente d'être lu par le coeur, donc par le soft. Tu n'as donc aucun risque de louper un bit de start, vu que c'est un périphérique dédié qui gère tout ça, et non directement ton soft.

Leon.

BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)




Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users