IOW24 SPI MCP3204

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
cjf
Posts: 5
Joined: Mon May 18, 2015 8:38 am

IOW24 SPI MCP3204

Post by cjf »

Hallo Forum,

mittlerweile experimentiere ich seit einigen Stunden mit einem MCP3204 ADC, IOW24 und c#. Nunja - meine Kentnisse bezüglich Elektronik liegen 22 Jahre zurück..... C# ca 12 Jahre....

Hat jemand ein Codebeispiel mit einem MCP3204 in C#? Es würden eigentlich die ByteArrays zum SPI Mode aktiviern, Datenschreiben Channel 0 (0-3) und Datenempfang reichen. Der Rest sollte klappen.

Datenblatt MCP3201: http://ww1.microchip.com/downloads/en/d ... 21298c.pdf

Code: Select all


            byte[] datensend_ini = new byte[8];
            byte[] datensend_c0 = new byte[8];
            byte[] datenget_c0 = new byte[8];

//            byte[] datensend_c1 = new byte[8];
//            byte[] datenget_c1 = new byte[8];
//            byte[] datensend_c2 = new byte[8];

//            byte[] datenget_c2 = new byte[8];
//            byte[] datensend_c3 = new byte[8];
//            byte[] datenget_c3 = new byte[8];

            datensend_ini[0] = 8;
            datensend_ini[1] = 1;
            datensend_ini[2] = 3; // Modus 0; 62,5 

            datensend_c0[0] =  6;  //0b00000110
            datensend_c0[1] =  0;  //0b00000000 CH1 = 0b0100000......
            datensend_c0[2] =  0;  //0b00000000

            datenget_c0[0] = 0;
            datenget_c0[1] = 0;
            datenget_c0[2] = 0;
            
            IowKitWrite(IowHandle, 1, ref datensend_ini[0], 8);
            IowKitWrite(IowHandle, 1, ref datensend_c0[0], 8);
            IowKitRead(IowHandle, 1, ref datenget_c0[0], 8);

Beim Lesen hängt es. Mit All_In_One scheint es zu funktionieren also habe ich einen Fehler.....
Hoffe es kann mir jemand helfen - habe keine Ahnung was ich falsch mache.
Die Arrays sind nicht gerade Elegant - werde es noch auf Mehrimensional ändern - so ist es übersichtlicher.

Besten Dank im Vorraus für die Hilfe
Christian
Last edited by cjf on Thu May 21, 2015 5:17 pm, edited 1 time in total.
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IOW24 SPI MCP3204

Post by Christoph Jung »

Ich glaube der Fehler liegt im verwendeten Special-Mode beim Schreiben / Lesen für den SPI-Modus.

datasend_c0[0] muss hier "9" sein um auf den SPI zu schreiben.

Das erste Elemet im Array bei C# ist IMMER die Report-ID (bzw. der Special-Mode). Danach folgen die Flags, Daten, etc.

Code: Select all

           datensend_c0[0] =  9;  //SPI Write/Read
           datensend_c0[1] =  6;  //0b00000110
            datensend_c0[2] =  0;  //0b00000000 CH1 = 0b0100000......
            datensend_c0[3] =  0;  //0b00000000
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
cjf
Posts: 5
Joined: Mon May 18, 2015 8:38 am

Re: IOW24 SPI MCP3204

Post by cjf »

Hallo Hr. Jung,

danke für die prompte Antwort. Ich habe eigentlich gedacht, das durch das Initialisiern des SPI der Special Mode aktiviert ist.
Habe natürlich sofort Ihre Lösung ausprobiert und nun stürtzt es nicht mehr ab - die Ausgelesenen Date ergeben aber keinen Sinn...
Habe heute leider keine Zeit mehr aber Morgen werde ich mich wieder Reinhängen.

Besten Dank für die schnelle Hilfe!!!
cjf
Posts: 5
Joined: Mon May 18, 2015 8:38 am

Re: IOW24 SPI MCP3204

Post by cjf »

Danke - das war die Lösung!
Post Reply