Forum: Mikrocontroller und Digitale Elektronik SPI CS-Pin auf Gnd schlimm?


von Cell85 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe ein Board mit einem STM32F103 und einem LIS331DL Accelerometer 
von ST. Dieser kann SPI und I2C.

In dem Manual: 
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00172345.pdf

steht, dass ich den Pin CS auf 0 stellen soll wenn ich SPI verwenden 
will. (siehe Screenshot)

So hab ich ihn auf gegroundet gehabt in meinem Layout.

Ich würde jetzt gerne wissen ob das so richtig war. Weil in dem 
Übertragungsbild vom SPI in der Anleitung ist CS am Ende der Übertragung 
high.

Sobald meine MCU Spannung hat sollen eigentlich so lange Daten 
ausgelesen werden bis das Board abgeschaltet wird. Also kein Start/Stop 
zwischen drin.

Was meint ihr?

Viele Grüße
Sven

von Tobias P. (hubertus)


Lesenswert?

Im Datenblatt vom Chip steht, ob CS nach jeder Übertragung deaktiviert 
werden soll oder nicht.
Manche Chips können das, andere benötigen einen Pegelwechsel am CS damit 
sie funktionieren. Mein Tip: CS verbinden. Hast ja noch einen Pin frei 
;-)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Cell85 schrieb:
> Ich würde jetzt gerne wissen ob das so richtig war.
SPI braucht i.A. 4 Leitungen: MOSI, MISO, SCLK und SS
Den SlaveSelect kannst du dir bei bestimmten geeigneten Slaves sparen, 
wenn du entweder
1. niemals die Synchroinisation zzum Slave verlierst (sag niemals Nie)
oder
2. andere Synchronisationsmechanismen hast (z.B. Timeout)

Der von dir verwendete Sensor ist kein solcher Slave. Du brauchst den 
SS unbedingt. Das steht auch im Datenblatt:
1
The Serial Interface interacts with the outside world with 4 wires: 
2
CS, SPC, SDI and SDO.

> Weil in dem Übertragungsbild vom SPI in der Anleitung ist CS am Ende
> der Übertragung high.
Mit der steigenden Flanke von CS werden die Daten in den Baustein 
übernommen.

von Cell85 (Gast)


Lesenswert?

Hmm shit!
Ich könnte von dem CS Pin der gegroundet ist an einen Kondensator und 
dann an einen MCU Pin. Wäre das eine Möglichkeit?


Viele Grüße

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Cell85 schrieb:
> Ich könnte von dem CS Pin der gegroundet ist an einen Kondensator und
> dann an einen MCU Pin.
Was? Beim SPI hat ein Kondesator nichts auf der SS Leting zu suchen. 
Wofür der Kondensator?

> Wäre das eine Möglichkeit?
Du trennst die Masseverbindung auf und fädelst einen Draht zu einem 
uC-Pin. Das ist der übliche Weg...

von Cell85 (Gast)


Angehängte Dateien:

Lesenswert?

OK,

ich dachte vielleicht geht das so ohne auftrennen.

Ich hab mal ein Bild vom Sensor Layout angehängt

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Cell85 schrieb:
> ich dachte vielleicht geht das so ohne auftrennen.
Ich denke, der Pegel dieser Leiterbahn ist GND.
Nur, weil, da wäre dann ja noch der Pin 5, der GND sehen will...

von Karl H. (kbuchegg)


Lesenswert?

Cell85 schrieb:
> OK,
>
> ich dachte vielleicht geht das so ohne auftrennen.

Wie willst du denn ohne Auftrennen eine direkte Masseverbindung umlegen? 
Wenn der Pin auf Masse liegt, dann liegt er auf Masse. und da kannst du 
machen was du willst, ohne auftrennen geht das nicht.

> Ich hab mal ein Bild vom Sensor Layout angehängt

Schnapp dir ein Messerchen mach einen Schnitt durch die Leiterbahn um 
den Pin vom Kondensator und von Masse zu trennen. Aber so, dass dir noch 
ein bischen Fläche übrig bleibt, so dass du dort ein Drähtchen auflöten 
kannst. Gegebenenfalls musst du dann eben den Stoplack dort etwas 
wegkratzen.

So ist das nun mal, wenn man Layoutfehler hat. Das sollte nicht 
passieren, passiert aber immer wieder mal. Wobei dein Fehler natürlich 
besonders dämlich ist.
Ist kein Beinbruch und mit ein wenig Fummelarbeit zu beheben.

von Cell85 (Gast)


Angehängte Dateien:

Lesenswert?

ja da hast du recht.

Ich hab noch auf der selben platine einen zweiten Sensor, der hat aber 
leider unter dem package eine via zu gnd, ich weiß nicht wie ich das 
auftrennen kann.

von Karl H. (kbuchegg)


Lesenswert?

Cell85 schrieb:
> ja da hast du recht.
>
> Ich hab noch auf der selben platine einen zweiten Sensor, der hat aber
> leider unter dem package eine via zu gnd, ich weiß nicht wie ich das
> auftrennen kann.

Tja. Jetzt sitz du in der Bredullie.
Den IC wirst du runter nehmen müssen, damit du da rann kommst.


Wie hast du dir eigentlich vorgestellt, dass 2(!) IC am selben SPI Bus 
mit dem µC reden, ohne dass sich die gegenseitig in die Quere kommen?
CS ist die Abkürzung für "Chip Select". Auf deutsch: Was immer jetzt 
auch über die anderen Leitungen kommt, es ist für dich gedacht oder 
eben: es ist nicht für dich gedacht.
D.h. Chip Select ist der Mechanismus, mit dem der µC auswählt mit 
welchem anderen CHip er eigentlich reden will. Du hast 2 IC, also muss 
auch der µC den jeweils richtigen anwählen. Und das macht er, 
Überraschung, indem er die CS Leitung von demjenigen auf Low zieht, mit 
dem er palavern will.

von Cell85 (Gast)


Lesenswert?

Hallo Karl,

die Sensoren hängen an zwei völlig verschiedenen SPI Ports, also nicht 
wie du vermutet hattest an dem selben.

Das Problem ist einfach das ich das mit CS nicht richtig bedacht hatte. 
Ich ging davon aus ChipSelect wie in der Anleitung 1 für I2C Betrieb und 
0 für SPI Betrieb.

Dämlich ist es alle mal, da hast du vollkommen recht!

von Lattice User (Gast)


Lesenswert?

Du kannst versuchen CS (Pin7) mit SDO (Pin8) verbinden und das Ding im 
SPI 3wire Mode betreiben (Datasheet 5.2.3). Die µC Seite wirst du dann 
aber zu Fuss programmieren müssen.

Wenn ich mir das Layout aber so anschaue, braucht es einen Lötkünstler 
um das so oder so zu reparieren.

von Karl H. (kbuchegg)


Lesenswert?

Cell85 schrieb:

> Dämlich ist es alle mal, da hast du vollkommen recht!

Egal. Stecks weg, sowas passiert.
Es ist nicht ungewöhnlich, dass in der Version 0.1 der Platine an 
manchen Stellen mit Draht nachgeholfen werden muss. Fädeldraht eignet 
sich für solche Korrekturen ganz ausgezeichnet. Ansonsten musst du eben 
in der Bastelkiste kramen, ob du wo dünnen(!) isolierten Draht findest. 
zb Draht aus einer alten Spule, bei dem die Isolierung noch intakt ist.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Cell85 schrieb:
> der hat aber leider unter dem package eine via zu gnd
Gelernt: in Zukunft keine Versorgungskontaktierung unter dem Package. 
Ein Signal-Via ist da schon eher als "praktisch" einzustufen.

Lattice User schrieb:
> Wenn ich mir das Layout aber so anschaue, braucht es einen Lötkünstler
> um das so oder so zu reparieren.
Ja, insbesondere, weil die Pads des CSP so unglaublich kurz sind. Ich 
mach die für Prototypen gern länger, dass ich wenigstens noch zum Messen 
dran komme.

Karl Heinz Buchegger schrieb:
> Draht aus einer alten Spule
Ich hab da für Extremfälle noch ein zerlegtes Relais herumliegen. Der 
Draht ist extrem, aber der reicht ewig...  ;-)

von Ersi (cell85)


Lesenswert?

Also ich glaube, den einen Sensor noch retten zu können, in dem ich die 
Leiterbahn raustrenne und meinem Isolierdraht an einen GPIO gehe.

von Ersi (cell85)


Lesenswert?

Hier begann damals meine Reise. Aus nostalgischen Gründen mal 
reingepostet.
12 Jahre später, ist das Produkt inzwischen stark weiterentwickelt und 
ich selbst arbeite nicht mehr dran. War bzw. ist eine tolle Zeit!

intranav.com

: Bearbeitet durch User
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.