[Avr-list] uart0_send et buffers

2008-01-24 Par sujet JD
Salut,

Nous essayons actuellement d'implémenter une communication série
full-duplex sur ATmega.

Pour se faire on utilise le module uart d'aversive, deux buffers sur
TX / RX et un port pour la direction.

Toutefois on se confronte à un petit problème, les données ne semblent
pas envoyées directement après l'appel d'uart0_send.
Je crois savoir que l'ATmega possède un buffer sur l'envoi.

D'où la question :
- Peut-on, en utilisant le module UART, forcer l'envoi du buffer ?

Donc voilà, je prend toutes bonnes idées :)

JD. (et ~salva qui se cache, le faible)

___
Avr-list mailing list
Avr-list@droids-corp.org
CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive
WIKI : http://wiki.droids-corp.org/index.php/Aversive
DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/
BUGZILLA : http://bugzilla.droids-corp.org
COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog


Re: [Avr-list] uart0_send et buffers

2008-01-24 Par sujet Olivier MATZ
Yop,

 Pour se faire on utilise le module uart d'aversive, deux buffers sur
 TX / RX et un port pour la direction.

Qu'entends-tu par un port pour la direction ?

 Toutefois on se confronte à un petit problème, les données ne semblent
 pas envoyées directement après l'appel d'uart0_send.
 Je crois savoir que l'ATmega possède un buffer sur l'envoi.

En fait il n'est pas hardware, mais soft. Le buffer d'envoi de
l'ATmega en hard fait un octet.

 D'où la question :
 - Peut-on, en utilisant le module UART, forcer l'envoi du buffer ?

si tu as les interruptions masquées et que tu as configuré l'uart en
mode interruption, effectivement certaines données restent dans le
buffer. Celà dit une fonction de flush serait la bienvenue (c'est
d'ailleurs prévu : 
http://bugzilla.droids-corp.org/cgi-bin/bugzilla/show_bug.cgi?id=71 )

++
Olivier

___
Avr-list mailing list
Avr-list@droids-corp.org
CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive
WIKI : http://wiki.droids-corp.org/index.php/Aversive
DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/
BUGZILLA : http://bugzilla.droids-corp.org
COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog


Re: [Avr-list] uart0_send et buffers

2008-01-24 Par sujet JD
2008/1/24 Olivier MATZ [EMAIL PROTECTED]:
 Yop,

  Pour se faire on utilise le module uart d'aversive, deux buffers sur
  TX / RX et un port pour la direction.

 Qu'entends-tu par un port pour la direction ?

Un PIN en fait... pas un port complet :P

Relié à deux buffer pour brancher soit TX soit RX sur la ligne de
communication full-duplex.

  Toutefois on se confronte à un petit problème, les données ne semblent
  pas envoyées directement après l'appel d'uart0_send.
  Je crois savoir que l'ATmega possède un buffer sur l'envoi.

 En fait il n'est pas hardware, mais soft. Le buffer d'envoi de
 l'ATmega en hard fait un octet.

Ah okay ;) donc j'avais pas tout pigé moi.

  D'où la question :
  - Peut-on, en utilisant le module UART, forcer l'envoi du buffer ?

 si tu as les interruptions masquées et que tu as configuré l'uart en
 mode interruption, effectivement certaines données restent dans le
 buffer. Celà dit une fonction de flush serait la bienvenue (c'est
 d'ailleurs prévu : 
 http://bugzilla.droids-corp.org/cgi-bin/bugzilla/show_bug.cgi?id=71 )


Okay j'vais voir ce que je peux faire.

m'ci bien.
JD.

___
Avr-list mailing list
Avr-list@droids-corp.org
CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive
WIKI : http://wiki.droids-corp.org/index.php/Aversive
DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/
BUGZILLA : http://bugzilla.droids-corp.org
COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog


Re: [Avr-list] uart0_send et buffers

2008-01-24 Par sujet tof
JD a écrit :
 2008/1/24 Olivier MATZ [EMAIL PROTECTED]:
   
 Yop,

 . 
 Pour se faire on utilise le module uart d'aversive, deux buffers sur
 TX / RX et un port pour la direction.
   
 Qu'entends-tu par un port pour la direction ?
 

 Un PIN en fait... pas un port complet :P

 Relié à deux buffer pour brancher soit TX soit RX sur la ligne de
 communication full-duplex.
   

normalement on n'utilise pas un pin pour commuter, mais on utilise un 
bus avec un etat recessif. En plus ya plein de drivers pour ca.
et des protocoles en plus.

des pistes :
ISO9141
K-line
MS33199 (vieillot, ya mieux)
...


tof



___
Avr-list mailing list
Avr-list@droids-corp.org
CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive
WIKI : http://wiki.droids-corp.org/index.php/Aversive
DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/
BUGZILLA : http://bugzilla.droids-corp.org
COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog