MAX 1113 an den IO-Warrior24 anschliessen ?

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
philips
Posts: 8
Joined: Thu Jan 05, 2006 3:32 pm

MAX 1113 an den IO-Warrior24 anschliessen ?

Post by philips »

Habe da eine Frage, die man evtl. beantworten kann.
Ist es möglich, den MAX1113 AD Wandler an den IO-Warrior24 anzuschließen. Welche Pins vom MAX1113 gehören an den IO-W24 und wo?
Vielen Dank für ein Antwort.
philips
towaibw
Posts: 198
Joined: Sat Dec 27, 2003 10:55 pm
Location: Berlin / Germany
Contact:

Anschluß

Post by towaibw »

Stichwort "SPI" und im Datenblatt vom MAX1113 mal page 8, figure 3 ansehen (und natürlich etwas lesen).
philips
Posts: 8
Joined: Thu Jan 05, 2006 3:32 pm

Post by philips »

Hallo towaibw,
danke dir vielmals für die Infos. Entschuldige, wenn ich jetzt erst antworte, aber war im Ausland.
Also, wenn ich es richtig gecheckt habe, müsste man die Zuordnungen folgendermassen machen

IO-Warrior ------- MAX113
P0.4/SS ----------- /CS
P0.7/SCK --------- /SCLK
P0.6/MISO -------- /Din
P0.5/MOSI -------- /Dout

Damit müsste sich der IO-Warrior 24 Starterkit um einen AD-Wandler erweitern lassen? Vielleicht hab ich aber auch noch was übersehen.
ciao
philips
Guido Körber
Site Admin
Posts: 2876
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Die Datenleitungen sind genau verdreht, der IOW24 ist der Master.
philips
Posts: 8
Joined: Thu Jan 05, 2006 3:32 pm

Post by philips »

Hallo Guido,
danke für den Hinweis !
Glaube, so müsste es stimmen...


IO-Warrior ------- MAX113
P0.4/SS ----------- /CS
P0.7/SCK --------- /SCLK
P0.6/MISO -------- /Dout
P0.5/MOSI -------- /Din

Bin schon gespannt, wie gut die Sache funktioniert.
ciao
philips
eggman
Posts: 4
Joined: Thu Sep 14, 2006 10:08 pm

Post by eggman »

Hallo,

ich habe gerade auch ein Projekt am Laufen, bei dem ich mit dem IOW24 und dem MAX1113 Temperaturen messen möchte.

Die Schaltung ist auch aufgebaut, der IOW wird von Windows erkannt und auch mein Programm kommuniziert mit dem IOW respektive dem MAX1113. Lediglich was ich als Ergebnis zurückbekomme, ist merkwürdig. Zwar finde ich einen gewissen Zusammenhang zwischen dem testweise angeschlossenen Poti und der Ausgabe, aber als Messwert würde ich das nicht bezeichnen :-( Es ändert sich schon was, wenn ich an einem Poti drehe, aber auch Werte von Kanälen, die ich fest mit GND verbunden habe und die Antwort hat ein Format, die laut Datenblatt gar nicht existieren dürfte.

Ich befürchte mein Problem liegt in der Kommunikation mit dem MAX 1113. Das Datenblatt des MAX 1113 ist meiner Meinung nach etwas widersprüchlich.

Zum Lesen schreibe ich einen Report { 9,3,cf,0,0,0,0,0 } mit drei Bytes Daten für das SPI Interface und bekomme auch drei Bytes wieder zurück (z.B. {9,3,0,17,60,0,0,0}. cf ist das Control-Byte für das Lesen von CH 1 (oder nicht?).

Hat jemand den MAX 1113 (oder auch 1112) am Laufen und kann mir vielleicht Tipps geben. Gerne stelle ich auch meinen Schaltplan und die Software zur Verfügung.

Schonmal vielen Dank,

Frank Eyermann
Guido Körber
Site Admin
Posts: 2876
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Nicht verwunderlich, $CF selektiert externe Clock, dazu müsste die SPI Clock ständig laufen.
eggman
Posts: 4
Joined: Thu Sep 14, 2006 10:08 pm

Post by eggman »

Danke für die Antwort. Da habe ich wohl was falsch verstanden.

Ist es nicht so, dass S_CLK solange Daten zu versenden sind schwingt und die Daten je nach CPOL und CPHA dann von MOSI und MISO gelesen/geschrieben werden. Solange ich nur genug Daten für eine Wandlung schreibe, müsste doch ein entsprechender Takt generiert werden. So verstehe ich aucu das "Simple Software Interface" im Datenblatt zum MAX1113 auf Seite 12. Deswegen muss ich auch entsprechende Bits ausmaskieren.

Können sie mir einen Tipp geben, wo mein Verständnisproblem liegt?

Mit freundlichen Grüßen,

Frank Eyermann
Guido Körber
Site Admin
Posts: 2876
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Die SCLK wird nur erzeugt wenn Daten übertragen werden, ist also nicht kontinuierlich, sondern unterbricht nach jedem Byte. Das würde alleine schon die Qualität der A/D Wandlung zunichte machen, da dafür eine konstante Clock benötigt wird.

Ausserdem erzeugt so eine variierende Clock auch noch Interferenzen zusätzlich zu den Problemen durch den Jitter. Desshalb ist der Betrieb mit interner Clock auf jeden Fall notwendig.
eggman
Posts: 4
Joined: Thu Sep 14, 2006 10:08 pm

Post by eggman »

Ich glaube mein Problem liegt noch auf einer anderen Ebene. Der MAX1113 interpretiert meine Controll-Bytes nicht so, wie ich es gerne hätte und aus dem Datenblatt lese.

Viele Versuche haben gezeigt, dass ein einzelnes 1-Bit nicht zum Starten einer Wandlung reicht. Wenn ich zum Beispiel binär:

10101010 11101111 hinschicke, beginnt der ADC erst im zweiten Byte ab Bit 6 mit der Wandlung (zu Erkennen, wann ich das Ergebnis zurückerhalte und welcher Kanal gemessen wird.) Bei den Ergebnissen kann ich jeden beliebigen Wert als Antwort erhalten.

Aber auch mit einer einzelnen Null gibt es Probleme. Schreibe ich z.B. 11011111, wird trotzdem Kanal 0 gemessen (also Bit 4 als Null interpretiert).

Meine Idee war jetzt dass CPOL und CPHA nicht stimmen. Aber im Datenblatt von Maxim ist ja extra geschrieben, dass beide auf null sein sollen. Auch stimmt die verbale Beschreibung in den Datenblättern überein. Zum Setzen des SPI Modes verwende ich somit {8,1,3,0,0,0,0,0}.

Viele Grüße,

Frank Eyermann
Guido Körber
Site Admin
Posts: 2876
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Also CHPA und CPOL sind nicht wirklich fest definiert, die können variieren.

So weit ich mich erinnere braucht man beim Max1113 immer erst einen Transfer mit dem der kanal ausgewählt wird und die Wandelung angestossen wird, mit dem nächsten Transfer wird dann erst der Wert ausgelesen.
eggman
Posts: 4
Joined: Thu Sep 14, 2006 10:08 pm

Post by eggman »

Ich habe das Problem gelöst.

Entgegen der expliziten Aussage des Datenblattes vom MAX 1113 muss man CPHA auf 1 setzen, also als SPI Modus beim IOW 6 oder 7 setzen.

Ich weiß jetzt nicht, wer das Bit jetzt verkehrt rum definiert hat, aber so funktioniert es auf jeden Fall.

Vielen Dank nochmal für die Hilfe,

Frank Eyermann
Guido Körber
Site Admin
Posts: 2876
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Wie bereits gesagt: CPHA und CPOL sind nicht fest definiert, sondern hängen von der Implementierung des jeweiligen Chipherstellers ab. Es gibt auch Hersteller bei denen Chips mit unterschiedlicher Implementierung existieren.
Post Reply