Problem mit IR Transceiver Modul TFDU 4301 von Vishay

OP #1740311
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
Angehängte Dateien:
(Firma: Ingenieurbüro Brand Elektronik) #2125687
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren