MISO beeinflusst MOSI

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
Franz Peter Zantis
Posts: 97
Joined: Wed Aug 03, 2011 3:46 pm
Contact:

MISO beeinflusst MOSI

Post by Franz Peter Zantis »

Heute habe ich noch etwas merkwürdiges entdeckt:
Der IO-Warrior56 ist wie folgt eingestellt:

'setting the SPI-frequency low
lspisettings(0) = &H8 'initilization of SPI
lspisettings(1) = &H1 'activate SPI
lspisettings(2) = &H0 'MSB first; clock is low if idle; data is driven on the falling edge and sampled on the rising edge
lspisettings(3) = 254 'clock frequency 24MHz/(254+1)=94kHz, frequency to begin with the SD-card
lretint = IowKitWrite(iohandle, 1, lspisettings(0), 64)

Es sieht alles gut aus. Wenn ich aber nun die MISO-Leitung mit einem Pullup-Widerstand versehe (10kOhm nach +3,3V), dann ist MOSI im IDLE auf High-Pegel (+5V). Ohne den Widerstand ist MOSI im IDLE auf Low-Pegel (0V).
Wieso beeinflusst ein Pullup-Widerstand an der MISO-Leitung die MOSI-Leitung?

Viele Grüße
Franz Peter Zantis
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Re: MISO beeinflusst MOSI

Post by Guido Körber »

Was für einen Wert hat denn das Byte 4? Also das, was das Flag für die Pullups enthält?
Franz Peter Zantis
Posts: 97
Joined: Wed Aug 03, 2011 3:46 pm
Contact:

Re: MISO beeinflusst MOSI

Post by Franz Peter Zantis »

Das Array "lspisettings" wird beim Programmstart auf Null gesetzt.
Also hat Byte 4 den Wert 0.
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Re: MISO beeinflusst MOSI

Post by Guido Körber »

Sicher? Dann wären die chipinternen Pullups an und das würde nicht zu dem beschriebenen Verhalten passen.
Franz Peter Zantis
Posts: 97
Joined: Wed Aug 03, 2011 3:46 pm
Contact:

Re: MISO beeinflusst MOSI

Post by Franz Peter Zantis »

Ja, ich möchte die chipinternen Pullups verwenden und habe die Anschlüsse außen über Shottky-Dioden auf +3,3V geklemmt.
Franz Peter Zantis
Posts: 97
Joined: Wed Aug 03, 2011 3:46 pm
Contact:

Re: MISO beeinflusst MOSI

Post by Franz Peter Zantis »

Anbei (Anhang) noch etwas merkwürdiges:
Wenn die SD-Karte eingestzt wurde, dann schafft es der Warrior nicht die MOSI-Leitung rechtzeitig beim ersten Impuls nach Null zu ziehen - das kann doch nicht sein? MOSI bedeutet, die SD-Karte ist hochohmig, denn für diese ist es ein Eingang. Das Verhalten ist identisch bei verschiedenen SD-Karten.
Attachments
tek00000.png
tek00000.png (31.25 KiB) Viewed 12792 times
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Re: MISO beeinflusst MOSI

Post by Guido Körber »

Das sieht allerdings komisch aus. Die Outputs des IOW56 können 25 mA sinken, also sollte da auch eine saubere Flanke zu sehen sein.

Hängt da noch was anderes dran, oder ist die Stromversorgung zu zaghaft ausgelegt?
Franz Peter Zantis
Posts: 97
Joined: Wed Aug 03, 2011 3:46 pm
Contact:

Re: MISO beeinflusst MOSI

Post by Franz Peter Zantis »

Was heißt "die Stromversorgung zu zaghaft ausgelegt"? Der IO-Warrior wird über die USB-Schnittstelle versorgt. Auf der Platine sind die +5V der USB-Schnittstelle zusätzlich mit einem 100µF-Keramikkondensator gebuffert.

Die MOSI-Leitung mit dem seltsamen Verhalten (Pin 5.2 des IO-Warrior) geht an einen DAU MCP4822, einen µC MSP430F2013 und an die SD-Karte. Dort ist die Leitung (bzw. sind alle SPI-Leitungen) mit einer Shottky-Diode auf 3,3V geklemmt. Die 3,3V werden mit Hilfe eines LM1117 aus der 5-V-Spannung der USB-Schnittstelle gewonnen. Die Pegel auf dem SPI-Bus liegen also zwischen 0 und 3,3V.
Das Verhalten ändert sich nicht, wenn ich den Mikrocontroller und den DAU entferne. Ich messe direkt am Pin 5.2. Ich habe auch den IO-Warrior schon ausgetauscht - ohne das sich etwas geändert hätte.

Laut Datenblatt kann jeder Ausgang am IO-Warrior 25 mA übernehmen. Soviel Strom kommt gar nicht zustande, denn laut Datenblatt haben die Pullup-Widerstände im IO-Warrior Werte zwischen 4...8 kOhm. Selbst bei 4 kOhm ist der Strom nur 1,25 mA groß. Eine andere Stromquelle gibt es nicht im Aufbau.

Hat noch jemand eine Idee?
Franz Peter Zantis
Posts: 97
Joined: Wed Aug 03, 2011 3:46 pm
Contact:

Re: MISO beeinflusst MOSI

Post by Franz Peter Zantis »

Ich habe nun die SD-Karte herausgenommen und die MOSI-Leitung überprüft.
Nach der Initialisierung der Karte (die bei entnommener Karte natürlich fehlschlägt) liegt die MOSI-Leitung auf High-Pegel. Die Spannung am Kartenanschluss ist (MOSI-Leitung) beträgt 3,8V (3,3V Klemmspannung + 0,5V Schleusenspannung der Klemmdiode). Belaste ich den Anschluss nun mit 120 Ohm, dann sinkt die Spannung auf 3,6V.
Dann habe ich die Klemmdiode ausgelötet. Nun messe ich am MOSI-Anschluss (also unbeeinflusst, direkt am IO-Warrior56) 5V. Belaste ich nun den Anschluss mit 120 Ohm, sinkt die Spannung auf 4,1V.
Nach Angaben aus dem Datenblatt hat der im IO-Warrior enthaltene Pullup-Widerstand mindestens 4000 Ohm. Somit müsste bei Belastung mit 120 Ohm, die Spannung auf 146 mV zusammenbrechen. ????
Sind die Angaben im Datenblatt korrekt?
Was ändert sich im Special-Modus?
Vor der SPI-Initialisierung entspricht das Verhalten dem erwarteten nach Datenblatt.
Habe ich etwas überlesen?
Franz Peter Zantis
Posts: 97
Joined: Wed Aug 03, 2011 3:46 pm
Contact:

Re: MISO beeinflusst MOSI

Post by Franz Peter Zantis »

Problem gelöst:
Ursache war die fehlende Angabe im Datenblatt bezüglich der Treiberleistung im Special (SPI) -Mode.

Da offensichtlich starke Treiber an den SPI-Ausgängen (Port 5) vorhanden sind (und eben nicht PullUp-Widerstände) kann man die SPI-Leitungen nicht einfach auf eine kleinere Spannung klemmen. Ich habe nun in die MOSI- und CLK-Leitung jeweils einen 220-Ohm-Widerstand geschaltet und erst hinter diesem Widerstand nach 3,3V geklemmt. So funktioniert meine Schaltung mit allen mir verfügbaren SD-Karten. :-)

Empfehlung: Update des Datenblatts
Beschreibung der Ausgangsteiber im Special Mode (SPI) - Wie ausgeführt? Welche Ströme können geliefert werden?
Optimal: Schaltvorschläge für die Anpassung an 3,3-V-Systeme (bitte jetzt nicht mit Spezial-Konverter-ICs - die werden nächste Woche sowieso abgekündigt).

Viele Grüße
Franz Peter Zantis
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Re: MISO beeinflusst MOSI

Post by Guido Körber »

Das steht doch im Datenblatt unter 4.2.3, die Ausgänge werden im SPI Modus als CMOS Ausgänge gefahren. Da steht auch drin, dass für Betrieb mit Slaves mit niedrigerer Versorgungsspannung ein Betriebsmodus mit Open Drain zur Verfügung steht.
Post Reply