Forum: Mikrocontroller und Digitale Elektronik Problem mit IR Transceiver Modul TFDU 4301 von Vishay


von Dominik E. (noventa)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

Ich benutze ein IR Modul von Vishay um eine Verbindung zwischen dem uC 
(PIC24FJ128) und einem PDA von Motorola zu erstellen. Über den PDA kann 
ich diverse Variablen auf dem uC verändern. Vorher habe ich den Typ 
TFDU4300 von Vishay eingesetzt, alles ohne Probleme. Jetzt ist dieser 
Typ nicht mehr verfügbar und ich musste auf den Ersatztyp von Vishay 
TFDU4301 ausweichen. Bei diesem Typ funktioniert aber meine 
Kommunikation nicht mehr richtig, da laut Vishay nach jedem Senden der 
Receive Buffer gelöscht werden muss, da beim neuen Bauteil dieser nicht 
automatisch gelöscht wird. Ich habe das OBEX Protokoll angehängt, das 
ich benutze, weiss aber nicht wo ich diesen ReceiveBuffer löschen muss 
(nach jedem Senden...)
Kann mir jemand bitte helfen? Das C-File ist im Anhang. Vielen Dank.

Gruss Domi

von Dirk B. (Firma: Ingenieurbüro Brand Elektronik) (dwb)


Lesenswert?

Hallo Domi,

Dein Problem ist das der TFDU4301 auch empfängt was er sendet "mirrors 
the transmit signal.", Du must also wenn du etwas gesendet hast immer 
den Empfangspuffer löschen und vorallem den Receive-Interrupt abschalten 
bevor Du sendest.

//Echo verhindern
  _U1RXIE = 0; //Receive-Interrupt ausschalten
IrgendwasSenden();
   while (U1STAbits.URXDA==1) k = U1RXREG; //lesen bis das fifo leer 
ist.
   if (U1STAbits.OERR==1) U1STAbits.OERR=0;     //Overflow löschen
   _U1RXIF = 0;  //Receive-Interrupt clearen
   _U1RXIE = 1; //Receive-Interrupt einschalten

Grüße Dirk

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.