Forum

Einloggen | Registrieren | RSS  

Technik_Freak(R)

14.05.2013,
18:22
 

Probleme mit dem Schreiben von Daten auf ein Vinculum-Modul (Elektronik)

Guten Abend,

Ich bin gerade dabei, auf Basis des Vinculum-Moduls[FTDI], einen Datenlogger zu entwickeln. Die endgültige Funktion lautet dabei wie folgt:

Es werden vier Sensoren über einen µC (PIC18F97J60) eingelesen und stündlich erfolgt dann ein Eintrag über den Vinculum an einen USB-Stick. Nach einem Tag wird die aktuelle Datei geschlossen und eine neue Datei erstellt.

Das Vinculum-Modul (genaue Bezeichnung V2DIP1-32 mit der V2DAP-Firmware bespielt) ist über UART (BR = 9600,8,1,N) mit dem PIC verbunden. Der "Hardware-Handshake" wurde auf dem Modul kurzgeschlossen, da

a) eine Nachfrage beim Hersteller ergab, dass diese für die richtige Funktion verwendet werden müsen

und b) mein Zielboard bereits existiert und dieses ohne Handshake hergestellt wurde.

Meine ersten Versuche, den Vinculum anzusprechen waren erfolgreich (Terminalprogramm und Adapterkabel, sowie die ersten Ansteuerungen über den PIC), jedoch scheint das Schreiben von Daten in eine geöffnete Datei, mit dem PIC nicht zu funktionieren. (Erstellen einer Datei und Einstellung auf ASCII-Eingabe sind erfolgreich).

Ich habe hier den Auszug aus dem PIC-Programm, welcher zwar richtig gesendet wird (Terminalprogramm lief und die Kommunikation wurde angezapft[lief aber ohne Probleme])

do //Schreibe Stunde
{
//printf("WRF 9r";);
//DelayMs(10);
if (hour_alt < 10) //Ist der Stundenwert unter 10, so schreibe eine 0 davor
{
printf("WRF 9rStunde 0%u",hour_alt);
}
else
{
printf("WRF 9rStunde %u",hour_alt);
}
ReadStringUART(logger_received,11);
}
while (strcmp(logger_received,(BYTE*)false_command) == 0); //BAD COMMAND als Antwort => Neu senden

hour_alt = hour_count;


Zu dem Ausschnitt:

Es wird dem Modul gesagt, dass 9 Bytes gesendet werden ["WRF 9r"]. Anschließend wird die Zeit abgefragt und dann als Daten weitergegeben (ein abschließendes CR wurde laut der Anleitung nicht mehr benötigt, da dieses sonst in die Datei geschrieben wird).
Nach dem Senden, wird die UART nach daten abgefragt (die Funktion ReadStringUART ist eine While-Schleife, welche ihre empfangenen Werte in die Variable logger_received einträgt, mit Abbruch durch r ,n oder mehr als 11 Zeichen)


Jetzt nochmal zu meinem eingentlichen Problem und der dazugehörigen Frage:

Das Programm läuft so lange, bis der obere Ausschnitt aufgerufen wird. Es scheint, als ob der PIC die Daten nicht schnell genug ausgelesen hat (Der Vinculum gibt teilweise als Antwort D:> [Entspricht richtig empfangenen Daten] oder Bad Command [Befehl nicht bekannt, mit dem Terminal alleine klappt es aber immer]), oder der Vinculum verschluckt manche Informationen während dieses Schreibbefehls und gibt so keine oder falsche Antworten.

Kann mir einer von Euch helfen?

Vielen Dank im Vorraus dafür.