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
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 ;-)
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.
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
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...
OK, ich dachte vielleicht geht das so ohne auftrennen. Ich hab mal ein Bild vom Sensor Layout angehängt
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...
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.
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.
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.
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!
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.
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.
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... ;-)
Also ich glaube, den einen Sensor noch retten zu können, in dem ich die Leiterbahn raustrenne und meinem Isolierdraht an einen GPIO gehe.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.