Datenbuffer beim Einlesen über I2C mittels IO-Warrior

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
fuulpelz
Posts: 4
Joined: Wed Dec 09, 2015 4:11 pm

Datenbuffer beim Einlesen über I2C mittels IO-Warrior

Post by fuulpelz »

Zum Testen einer Applikation mit AD-Wandler, will ich die Daten zuerst über einen IOW24-DG IO-Warrior Dongle einlesen, bevor ich mich an die Programmierung des Mikroprozessors mache. 12-Bit Samples sollen mit 128 Samples/s eingelesen werden, d.h. ca. 200 Bytes/s. Der AD-Wandler schickt die Werte im Continous-Mode mit der angegebenen Sampling Rate.
Ich will dazu die Desktop Applikation 'Simple I2C Windows' benutzen. Nach dem Schicken der Konfigurations-Kommandos empfängt das Programm die AD-Werte fortlaufend.

Kann mir jemand sagen, ob ich sicher sein kann, dass ich keine Daten verliere? Und besitzen die empfangenen Daten des IOW24-DG einen Timestamp? USB verhaltet sich ja nicht real-time und somit müssten die Daten im Dongle gebuffert werden. Ist dies der Fall?

Vielen Dank für Tipps!
David
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: Datenbuffer beim Einlesen über I2C mittels IO-Warrior

Post by Christoph Jung »

Die IO-Warrior senden keinen Timestamp mit, die Daten kommen so im OS an wie sie vom IO-Warrior eingelesen werden.
Einen Puffer haben die IO-Warrior nicht eingebaut, allerdings puffert das API, wenn ich mich nicht irre 256 Byte Max.

Wenn der IO-Warrior56 genommen wird kann man ein Datenpacket (64Byte) alle 1ms abholen, das sollte eigentlich ausreichen
um auf die Datenrate des AD-Wandlers zu kommen. Der IOW24 ist dafür etwas zu Langsam (USB 1.1), der schafft nur alle 8ms ein 8Byte Datenpacket.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
fuulpelz
Posts: 4
Joined: Wed Dec 09, 2015 4:11 pm

Re: Datenbuffer beim Einlesen über I2C mittels IO-Warrior

Post by fuulpelz »

Vielen Dank für die Angaben!
fuulpelz
Posts: 4
Joined: Wed Dec 09, 2015 4:11 pm

Re: Datenbuffer beim Einlesen über I2C mittels IO-Warrior

Post by fuulpelz »

Können die empfangenen Daten mittels Simple-I2C irgendwie (Text File, Binary File) gespeichert werden? Oder muss dazu doch wieder eine Applikation mit der API geschrieben werden?
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Re: Datenbuffer beim Einlesen über I2C mittels IO-Warrior

Post by Guido Körber »

Ich verstehe die grundlegende Frage nicht. Auf dem I2C kann ein Slave nicht einfach Daten senden wie er will, sondern nur so wie der Master die Daten abholt.

Der IOW24 ist I2C Master, gibt also vor wann und wie viele Daten übertragen werden. Dazu muss jedes mal erst ein Lesekommando gesendet werden, auf das dann der Slave mit Daten antworten kann.

Dementsprechend ist SimpleI2C auch nur dazu geeignet einzelne Datenpakete ab zu holen, ein kontinuierliches Streamen von Daten ist so nicht möglich.
fuulpelz
Posts: 4
Joined: Wed Dec 09, 2015 4:11 pm

Re: Datenbuffer beim Einlesen über I2C mittels IO-Warrior

Post by fuulpelz »

Danke für den Input, ich habe nun die AD-Wandler Specs nochmals genauer angesehen. Ich dachte, dass im Continous Modus der AD-Wandler seine Daten in der konfigurierten Sampling-Rate rausschickt. Aber klar, der Master muss für jeden neuen Wert wieder ein Lesekommando schicken.
Somit komme ich wohl oder übel nicht darum herum, selber eine Applikation mit der API zu schreiben.
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: Datenbuffer beim Einlesen über I2C mittels IO-Warrior

Post by Christoph Jung »

Naja das Simpe-I2C reicht für die ersten Gehversuche schon aus. Es hat im Moment keine Möglichkeit die
Ausgabe in eine Textdatei zu sichern.
Aber sich ein kleines Programm zu schreiben ist mit der API und unseren Beispielen eigentlich schnell gemacht.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
Post Reply