Forum: Mikrocontroller und Digitale Elektronik Mehrere SPI-Slaves an einem Bus?


von Peter (Gast)


Lesenswert?

Hi,
Ich habe 3 Slaves an einem SPI-Bus (WLAN, Dataflash und SD-Karte). Eine 
bestimmte SD-Karte (bei 4 Anderen gibt es keine Probleme) sorgt 
irgendwie dafür, dass das WLAN-Modul nicht mehr will. Woran kann das 
liegen? Wird sie vielleicht nicht hochomig genug, wenn sie nicht 
selected ist? Kennt jemand ein ähnliches Problem? Vielleicht kann man 
was mit Pull-Ups machen? (Am MISO ist schon ein 100K Pull-Up).
Danke für alle Tips,
 --> Peter

von Ralph (Gast)


Lesenswert?

Haben alle Slave eine eigenen Chipselect ?
Haben alle Slaves und der µC die gleiche Portspannung ?
Wie lang sind die Busleitungen ( in cm)?
Wie sehen die Spannungen auf dem Bus aus ?
Wie sehen die Signale aus (Oszi) ?
Wieviel zeit lässt du von Chipselect HIGH bis zum nächsten Chipselect 
LOW?

von Peter (Gast)


Lesenswert?

Hallo Ralph,

> Haben alle Slave eine eigenen Chipselect ?
Ja, anders geht's ja auch nicht.

> Haben alle Slaves und der µC die gleiche Portspannung ?
Ja, alles wird mit 3.3V gespeist

> Wie lang sind die Busleitungen ( in cm)?
Erwa 2..3cm, der Takt für alle Slaves ist 15Mhz. Ist aber nicht zwingend 
so. Ich kann jeden Slave mit einer eigenen Clockrate ansprechen, 
allerdings nicht höher als 15Mhz.

> Wie sehen die Spannungen auf dem Bus aus ?
> Wie sehen die Signale aus (Oszi) ?
Ich muss zu meiner Schande eingestehen, daß ich die noch nicht gemessen 
habe.

> Wieviel zeit lässt du von Chipselect HIGH bis zum nächsten Chipselect
LOW?
Wenige µs. Im schnellsten Fall die Zeit, die ein paar Instructions 
brauchen, um das SPI-Peripheral umzuprogrammieren (SPI-Settings und 
Taktrate) und die Zeit für's Lösen der Einen und Setzen der anderen 
/CS-Leitung.

von Peter (Gast)


Lesenswert?

Hallo,
Ich habs jetz mal mit dem Oszi gemessen. Die Signale ändern sich nicht, 
egal, ob ich diese merkwürdige SD-Karte eingesteckt habe oder nicht. 
Auch ist das Verhalten unabhängig von der SPI-Taktfrequenz (ich bin bis 
auf 1Mhz runtergegangen). Irgendwelche Delays, die ich an allen 
möglichen Stellen eingefügt habe, haben nichts bewirkt. Selbst Pull-ups 
(Ich habe sogar Pull-downs versucht) hatten keinen Einfluss.

Der Fehler äussert sich folgendermassen:

Steckt diese eine bestimmte SD-Karte nicht, dann läuft der 
Firmware-download zum WLAN-Modul so ab, daß das WLAN-Modul abwechselnd 
16 und 512 Bytes des Firmware-Images anfordert. Diesen Wert kann man 
vorher aus einem Register des WLAN-Moduls ausgelesen.

Steckt aber diese SD-Karte, dann wird irgendwann (immer an der gleichen 
Stelle!!) dieses Wechselspiel von 512/16 Bytes kurz unterbrochen indem 2 
mal hintereinander 512 Bytes angefordert werden. Der FW-Download 
scheitert dann.

Mir scheint es ist kein elektrischer Fehler, sondern aus irgendeinem 
Grund scheint die SD-Karte (obwohl nicht selected) kurzzeitig aktiv zu 
werden.
Möglicherweise ist die Karte kaputt? (Es ist eine Nokia Micro-SD) oder 
vielleicht haben ja Micro-SD Karten besonderheiten gegenüber 'normalen' 
SD-Karten?

von Bernd Walter (Gast)


Lesenswert?

Sowas klingt stark nach fehlenden Stützkondensatoren oder schwimmender 
Masse.
Einige SD Karten reagieren da recht empfindlich und wenn die Versorgung 
durch ein anderes aktiviertes Bauteil gerade schwankt kann ich mir 
durchaus vorstellen, dass sich die Karte irrt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.