IOW 56 - DG Dongle und I2C in C#

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

Moderator: Guido Körber

hanskarl
Posts: 9
Joined: Sun Aug 03, 2014 12:03 pm

IOW 56 - DG Dongle und I2C in C#

Post by hanskarl »

Der Dongle kann mit dem Slave unter dem Programm Simple-I2C problemlos kommunizieren, d.h.
die I2C Hardware fuktioniert auf beiden Seiten. (Slaveadr. 9, 100 KHz)
Eine eigene Softwareapplikation unter C# bekommt keine Verbindung zum Slave
(die Applikation wurde schon mal mit SPI eingesetzt, funktioniert unter sich auch).
Meine Aufrufe haben also einen Fehler,
leider finde ich kein Beispielprogramm I2C-C#.

Code: Select all

// Initialisiere 
[i]report[0] = 0x01; //I2C Mode   initialisiere I2C Mode
report[1] = 0x01; //Enable I2C-Mode
report[2] = 0x00; // 100 KHz
status=IowKitWrite(ioHandle, IOW_PIPE_SPECIAL_MODE, report, SPECIAL_REPORT_SIZE);[/i]
//status == 64

// Write Aufruf
[i]report[0] = 0x02; //I2C write mode
report[1] = 0xC3; //Start + Stop + count==3
report[2] = 0x09;  // Wo steht das Addressbyte??  Adresse des slave ist 9
report[3] = 0x09; //[/i]
[i]//report[4...] = 0x00;
IowKitWrite(ioHandle, IOW_PIPE_SPECIAL_MODE, report, SPECIAL_REPORT_SIZE);
//zur Kontrolle
IowKitRead(ioHandle, IOW_PIPE_SPECIAL_MODE, returnReport, SPECIAL_REPORT_SIZE);
//returnReport[0]==0x02  returnReport[1]==0x80[/i]
//auf Slave blinken LEDs in Datenleitung, es wird aber nichts empfangen


// Read Aufruf
[i]report[0] = 0x03;  //I2C read mode
report[1] = 0x03;  //count
report[2] = 0x00;[/i]
//Frage: Wohin kommt das Addressbyte ???
//versetze warrior in read mode
[i]IowKitWrite(ioHandle, IOW_PIPE_SPECIAL_MODE, report, SPECIAL_REPORT_SIZE);[/i]
//lese Daten
[i]IowKitRead(ioHandle, IOW_PIPE_SPECIAL_MODE, returnReport, SPECIAL_REPORT_SIZE);[/i]
//returnReport[0]==0x03  returnReport[1]==0x88
//auf Slave blinken LEDs in Datenleitung, es wird aber nichts empfangen
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IOW 56 - DG Dongle und I2C in C#

Post by Christoph Jung »

Im Aktuellen SDK ist ein Beispiel in C# enhalten. Ist zwar für den IO-Warrior24 aber das unterscheidet sich nicht wirklich zum IO-Warrior56.

Für den IOW56 müssen andere Report-Größen benutzt werden. Beim IOW24 und IOW40 reichen "byte[] report = new byte[9]", beim IOW56 sollten es 64 sein. Und die 64 sollten auch bei der Read() / Write() Funktion als größe angegenen werden (SPECIAL_REPORT_SIZE).

Und das Byte für die Adresse ist beim Report der 3te Wert. Die Adresse selber sollte im Datenblatt zum I2C-Slave stehen. Und falls das eine 7Bit Adresse ist muss die um eins nach links geschoben werden. Der IO-Warrior nutzt 8Bit Adressen
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
hanskarl
Posts: 9
Joined: Sun Aug 03, 2014 12:03 pm

Re: IOW 56 - DG Dongle und I2C in C#

Post by hanskarl »

Danke für die Hinweise. Simple-I2C erkennt die Adresse als 9. Auch mit Adresse 0x12 statt 0x09 geht es noch nicht.
Es gelingt mir nicht das SDK unter /Downloads/Software IO-Warrior SDK Pack zu laden, der Virenscanner blockiert mir dies als verdächtiges Objekt. Gibt es das Beispiel auch so?
hanskarl
Posts: 9
Joined: Sun Aug 03, 2014 12:03 pm

Re: IOW 56 - DG Dongle und I2C in C#

Post by hanskarl »

Mit Adresse 0x12 geht es jetzt doch, sorry war ein Fehler von mir.
Der Hinweis auf 7 und 8 Bit Adressen war wichtig, vielen Dank!
Dennoch bin ich an einigen Programmstellen unsicher, ich würde gerne an das Beispiel drankommen.
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IOW 56 - DG Dongle und I2C in C#

Post by Christoph Jung »

Das Beispiel ist im SDK enthalten und kann bei uns Runtergeladen werden: http://www.codemercs.com/uploads/tx_sbd ... er/SDK.zip
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
hanskarl
Posts: 9
Joined: Sun Aug 03, 2014 12:03 pm

Re: IOW 56 - DG Dongle und I2C in C#

Post by hanskarl »

Wie gesagt, der Virenscanner blockiert mir das File.
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IOW 56 - DG Dongle und I2C in C#

Post by Christoph Jung »

Das ZIP ist Virenfrei
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
hanskarl
Posts: 9
Joined: Sun Aug 03, 2014 12:03 pm

Re: IOW 56 - DG Dongle und I2C in C#

Post by hanskarl »

Ich komme aber trotzdem nicht dran.
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IOW 56 - DG Dongle und I2C in C#

Post by Christoph Jung »

Hier ist eine andere Version des SDK : http://www.codemercs.com/files/SDK_2014.zip
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
hanskarl
Posts: 9
Joined: Sun Aug 03, 2014 12:03 pm

Re: IOW 56 - DG Dongle und I2C in C#

Post by hanskarl »

Danke, aber dasselbe Problem.
Hier die Meldung des Virenscanners avast:


URL
hxxp://www.codemercs.com/files/SDK_2014.zip|SDK 2014\Windows\bin\SPI_MAXIM6675.exe

Infektion
Win32:Evo-gen [Susp]
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IOW 56 - DG Dongle und I2C in C#

Post by Christoph Jung »

Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
hanskarl
Posts: 9
Joined: Sun Aug 03, 2014 12:03 pm

Re: IOW 56 - DG Dongle und I2C in C#

Post by hanskarl »

Dasselbe Problem

URL
hxxp://www.codemercs.de/files/c-sharp.zip|C#\Voltmeter (MAX127A)\Voltmeter\obj\x86\Release\Voltmeter.exe

Infektion
Win32:Evo-gen [Susp]
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IOW 56 - DG Dongle und I2C in C#

Post by Christoph Jung »

Interessant, dann werden Sie evtl. auch nachher Probleme haben, denn das ist das Projekt direkt aus Visual Studio.
Sobald Sie dann das Projekt kompilieren wird Ihr virenscanner wohl wieder rummeckern....

Hier ohne irgendwelche EXE datein.
http://www.codemercs.de/files/c-sharp2.zip
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
hanskarl
Posts: 9
Joined: Sun Aug 03, 2014 12:03 pm

Re: IOW 56 - DG Dongle und I2C in C#

Post by hanskarl »

Danke für die Bereitstellung.
hanskarl
Posts: 9
Joined: Sun Aug 03, 2014 12:03 pm

Re: IOW 56 - DG Dongle und I2C in C#

Post by hanskarl »

Es läuft und ohne Virenwarnung.

Kurz zusammengefasst was beim C# Interface zu beachten ist:

1.) Slave Adresse ist 8 bit (7 bit Adresse *2)
2.) report[2] ist immer die Slaveadresse, im Datenblatt wird das bei Read mit command bezeichnet, wohl weil der Slave evtl. verschiedene Adressen hat unter denen verschiedene Werte geholt werden können.
3.) Beim write wird unter report[1] Start- Stopbit und Anzahl Daten angegeben. Die Anzahl ist um 1 höher zu wählen, weil offenbar bei der Anzahl Daten die Slaveadresse mitgezählt wird.
4.) Ein sofortiger Read oder Write Aufruf nach der Initialisierung wird evtl. mit einem Aufhänger belohnt.
Post Reply