www.mikrocontroller.net

Forum: Projekte & Code Logger für VNC1L/VDIP1 via SPI für m88 in c


Autor: Michael S. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

hier habe ich einen Datenlogger, der Daten über einen VNC1L (z.B. VDIP1) 
auf einem USB-Stick schreiben kann.
Die Daten können über RS232, TWI oder SPI empfangen werden.
Sie werden in einem Ringpuffer zwischengespeichert und in 
512Byte-Blöcken via (Software-) SPI auf den VDIP1 weitergeleitet.

Bei Tests konnte ich eine 152kB Datei auf dem Stick in ca. 40sec 
kopieren.
Das Loggen einer 152kB großen Datei, die über die serielle Schnittstelle 
mit 38400 Baud versandt wurde, war möglich (bei höherer Baudrate stürzte 
leider mein PC ab).

Der Quellcode ist dokumentiert und Erläuterungen sind in einer readme 
beigefügt.

Viel Spaß beim Loggen

Michael S.

Autor: Michael S. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

zwischenzeitlich ist mein Logger vom Steckbrett auf eine 
Lochrasterplatine umgezogen - und ein Gehäuse habe ich ihm auch 
spendiert.
Ein baugleicher 2. Logger ist auch bereits in Betrieb.

Beim Aufbau und Einbau in das Gehäuse haabe ich noch einige 
Veränderungen vorgenommen:

- Bedienung ausschließlich mit ein einzigen Taste (Jumper entfällt)
- Zusätzliche 2. Led zur Statuskontrolle

Neben der Systemzeit kann nun auch das Speicherintervall (gegen 
Datenverlust) in Minuten angegeben werden.
Ausserdem kann nach dem Speichern der Datei entweder die Ursprungsdatei 
neu geöffnet - oder jeweils eine neue Datei angelegt werden.
Speicherintervall und Speicheroption werden im Eeprom abgelegt und sind 
nach eine Reset wieder aktiv.

Systemzeit, Speicherintervall und Speicheroption können geändert werden, 
wenn beim Systemstart die Taste solange gedrückt gehalten wird, bis Led2 
schnell zu blinken beginnt.

Während des Loggens toggled die Led2 jeweils dann, wenn ein Datensatz 
(von 512 Byte) geschrieben wurde.

Weitere Beschreibungen finden sich in der beigefügten readme.

Bei diesem Projekt werden die Daten via Software-SPI an den VDIP 
geschickt.
Im letzten Jahr hatte ich ein Programmbeispiel für die Kommunikation via 
RS232 ins Netz gestellt:
Beitrag "USB-Stick mit Vinculum / mega8 über UART betreiben (in C)"


viel Spaß beim Loggen

Michael S.

Autor: Michael S. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

nach nunmehr 1 1/2 Jahren habe ich meinen USB-Logger zum ersten Mal 
praktisch einsetzen wollen.
Gut das es da eine Readme gab ...

Aber aus heutiger Sicht erschien mir die Bedienung vereinfachungswürdig 
- und auch die Readme spiegelt nicht überall den Programmablauf korrekt 
wider.

Also war Überarbeitung des Programmes und der Readme angesagt - und auch 
ein Schaltplan musste her.

Die wesenliche Veränderung ist:

Nach der Initialisierung gibt nur noch die Zustände WARTEN oder LOGGEN.
Während des Wartens darf der Stick beliebig entfernt und wieder 
verbunden werden.
Während des Loggens wird das mit Datenverlusten bestraft.

Als Schutz vor diesen Datenverlusten (durch versehentliches Entfernen 
des Sticks) wird die Logdatei kurze Zeit nach einem Schreibzugriff 
wieder geschlossen.
Weiterhin werden in festen Zeitintervallen die Daten im Puffer 
automatisch auf den Stick geschrieben, auch wenn noch kein kompletter 
Datenblock von 512 Byte zusammengekommen ist.

Weitere Hinweise in der Readme.

Viel Spaß beim Loggen

Michael S.

Autor: Patrick K. (patrick_k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Michael,


tolles Projekt. Setze gerade die gleichen komponenten ein, bis auf 
Controller, da ist es der ATMega644.

was für eine Baudrate müsste man dimit denn schaffen? 38400 ist doch 
etwas wenig für meine anwendung...

grüße
Pak

Autor: Michael S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Patrick,

die Baud-Rate hat mit dem eigentlichen "Projekt" nichts zu tun, da die 
Kommunikation mit dem VDIP1 via SPI abläuft.

Wie schnell Du die Daten dem Logger zuführst, das ist eine andere Frage.
Sie müssen halt noch vom VDIP verarbeitet werden und der Ringpuffer darf 
nicht überlaufen.

In meinen Anwendungen ist keine Höchstgeschwindigkeit gefragt.
Daher habe ich keine Erfahrung, wo die Grenzen des Loggers liegen.

Bei dem Vorläuferprojekt habe ich den VDIP via RS232 angeprochen.
Da hatte ich dann wirklich Probleme bei höheren Baud-Raten (ab 38400).

mfg

Michael S.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.