Guten Abend, Für ein Projekt nutze ich einen ATMega644 um 8 Bit Daten zu loggen, die maximal mit 500 Hz ankommen und einen VNC1L (Firmware VDPS 3.68) um die Daten auf einen USB-Stick zu schreiben oder/und an einen PC zu senden. Beim ersten Prototypen habe ich das VDIP1 Modul verwendet und RX/TX vom ATMega und VNC1l gekreuzt, und CTS vom VNC1L mit Masse verbunden. Baudrate ist auf 57600 eingestellt. Mit dieser Version läuft das Logging mal 30 Minuten mal 1.5h, bis der VNC1L hängen bleibt. Ich schreibe immer 1,5kByte auf einmal auf den Stick. Bei der nächsten Platinen-Version habe ich den VNC1L direkt auf die Platine gelötet und RX/TX wieder gekreuzt und RTS/CTS Pins vom VNC1L mit zwei Pins des ATMega verbunden, um den Handshake nutzen zu können und so Verzögerungen beim VNC1L feststellen zu können. Ich habe zuerst mit 1MBaud getestet. Hier bleibt der VNC1L regelmäßig beim zweiten 1,5KByte Block hängen und seine LED blinkt ewig vor sich hin. Und in dem was er auf den Stick schreibt sind einige Fehler enthalten. Dann habe ich auf 57600 Baud umgestellt und bisher gab es damit keine Probleme. Der ATMega läuft mit 16MHz, kann also die 1MBaud ohne Fehler produzieren. Hat schon jemand den VNC1L zuverlässig mit serieller Verbindung und hohen Baudraten über längere Zeiträume laufen gehabt? Es gibt ja einige Beträge zum VNC1L mit angefangenen Projekten, wo man nie erfährt wie es ausgegangen ist. Anderen Beiträge von Projekten die erfolgreich waren, scheinen sehr geringe Datenraten zu benötigen. Ich werde die nächsten Tage mit einem Oszi schauen, ob der Handshake auch wirklich funktioniert. Aber eine andere Idee warum das schief läuft habe ich nicht. Fällt jemand vielleicht noch etwas ein, was man testen könnte? Grüße. PS: Es gibt scheinbar einen Nachfolger http://www.electropages.com/viewArticle.aspx?intArticle=15224
- Hast du die neueste Firmware? - Ist das auch bei USB Sticks anderer Hersteller der Fall (fang mit den besten und schnellsten an)
Hallo Michael Schildt, bei meinen Tests mit dem VNC hatte ich bei kontinuierlichen Datenübertragungen mit mehr als 19200 Baud keine echte Freude. Allerdings habe ich auch kein Handshake benutzt. Wenn Du "nur" max. 500 Byte/Sekunde übertragen musst (das sind dann brutto ca. 5000 Bit/Sekunde), dann sollte sogar eine Baudrate von 9600 Baud ausreichend sein. Versuch's doch einfach mal mit 'Gemütlichkeit'. Denn wenn Du mit 57KBbaud 1.5kB Daten versendest, dann hat der VNC einiges zu packen - und er hat ja auch nur einen beschränkten Puffer (wieviel ist mir aber nicht bekannt). Wenn jetzt der Einwand kommt, dass Dein Controller bei dieser geringen Baudrate keine Zeit mehr für andere Arbeiten hat: Schreibe die zu sendenden Daten in einen Ringpuffer und lass den Controller per Interrupt senden - dann kommen sich Datenverarbeitung und Datenversand nicht in die Quere. mfg Michael S.
-Gast_XIV schrieb: > - Hast du die neueste Firmware? Ja. > - Ist das auch bei USB Sticks anderer Hersteller der Fall > (fang mit den besten und schnellsten an) Ja, 4 getestet, zwei gingen (mehr oder weniger) @ Michael S: Wo ich das las mit deiner Datenratenrechnung, kam mir das wenig vor. Da ist mir aufgefallen, dass ich einen Faktor 8 unterschlagen habe. Pro aufgenommen Byte kommen noch 7 Byte für Timestamp, ID und Type hinzu. Das wären dann netto 40000Baud. Mit Start und Stoppbit so ca. 50000Baud. Ich nutze zwei Buffer, damit in einen aufgenommen und der Andere gespeichert werden kann. Grüße.
Nabend, Der Test mit einem Oszi hat sich gelohnt. Der Fehler hat sich schnell gezeigt. Auch wenn der VNC1L das Signal /CTS auf logisch 1 gesetzt hat, hat der ATMega trotzdem lustig weiter Daten gesendet. Da ging Einiges verloren (Bild1). Ich hatte in der Firmware die Leitungen für CTS und RTS vertauscht. Nachdem ich das korrigiert hatte, sah die Welt schon ganz anders aus (Bild2). Jetzt habe ich mit 57600Baud und 1MBaud getestet und bisher keine Probleme. :) Ist halt Freitag der 13. Aber erst der Langzeittest wird zeigen, ob das System stabil läuft. Grüße.
Habe einen Teensy mit einem VDIP1 per UART mit der Standard Baud Rate verbunden, um mehrere Human Interface devices am VDIP1 über Teensy dann als ein zentrales hunman interface device an den PC zu übertragen. Dabei reichte die Standard Baud Rate nicht. Laut Hersteller Beschreibung habe ich dann versucht die Baud Rate per VDIP1 Monitor Commands als auch über die VDIP1 Firmware zu erhöhen. Dies gelang mir aber zunächst nicht. Habe dann den Hersteller angeschrieben, der mich dann an deren manuals verwies, was mir aber nicht weiterhalf, da ich diese kannte und erfolglos nach deren Massgabe kein Baud Raten Erhöhung hinbekam. Nachdem ich diesen Zustand per mail an den Hersteller weitergab mit der Bitte um Hilfe gab es 3 Wochen lang keine Antwort. Als ich mich darüber bei der Marketingabteilung beschwerte gabs ledichlich eine Entschuldigung - der Laden sei z. Zt. überlastet, er würde sich aber darum kümmern, wenn ich das Problem noch hätte. Ich hatte, aber nach weiteren 3 Wochen immer noch keine Antwort ( seltsamer Laden, dort kaufe ich nicht mehr). Zwischenzeitlich aber ich per Zufall in einem Forum gelesen, dass die zu erzeugene Firmwaredatei einen bestimmten Namen (ftrfb.ftd) haben musss und siehe da es funktionierte jetzt auch für mich. Das VDIP1 manual beschreibt diese Einschränkung nicht. Der Laden Future Technology Devices International Ltd (FTDI) ist gar nicht kundenfreundlich, allerdings läuft die Schaltung mit 57600 Baud einwandfrei über mehrere Wochen.
Nach meiner Messung wird CTS gesetzt, sobald 50 Zeichen an den VDrive2 gesendet worden sind, gemessen @ 115200. Befehlssequenz: 08h 20h 00h 00h 00h 4dh 0dh 01h 02h 03h ... 4dh Cursor A: 0ms Cursor B: 4.57ms, CTS geht auf H Cursor C: 23.76ms, CTS geht wieder auf L In dieser Messung gibt es einen Überlauf beim VDrive2 und er "hängt". Somit dürften 50 Bytes / 28ms = 1770 Bytes / s als Dauertransfer erreichbar sein. Wahrscheinlich ist diese Messung abhängig vom verwendeten Stick.
Sorry, es muss heissen RTS und nicht CTS. Im Bild ist es richtig.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.