Hi Leute, ich hatte vor Sensoren mit SPI Interface über die ferne abzufragen. 2m Kabel von einer zu anderen Platine. Naja, wie man so liesst ist SPI ja nicht das mittel der Wahl. Kann man das irgendwie geschickter machen? Ohne die Platine des Sensor maßgeblich zu vergrößern bzw zu verkomplizieren? Danke
SPI über 2m ist gar kein Problem Wenn du keine hohe Datenrate brauchst (<= 100Mbit/s)... 1. Möglichkeit: An Clk_in & MOSI & MISO R-C-Tiefpass mit Tau~1/7 Datenperiode... ...und einen Schmitt-Trigger (oder 2 Schmittinverter hintereinander: 74HC14) + evtl. EMV-Schutzbeschaltung. Möglicherweise musst du noch den SPI-Modus der Master-SPI zwischen senden und empfangen umschalten 2. (beste) Möglichkeit (auch für deutlich längere Strecken): RS-485-Sender & -Empfänger. Braucht aber 2 Leitungen pro Signal. 3. Möglichkeit: Verwende (langsame) RS-232
Danke Alexx für deine kompetente Antwort. okay, das RS-485 find ich am besten. Das hatte ich auch schonmal gelesen. Ist mir am sympatischsten. Dh. ich brauche 3x2 Leitungen um die Twisted Pair Sache hinzubekommen. MOSO, MISO, CLK. Wenn ich mehrere Sensoren abfragen will schalte ich die entsprechenden Pegelwandler ab, damit die Sensoren nichts mitbekommen. Das ist sozusagen das CS. Der Chipselect am Sensor ist dauerhaft ein, richtig? Wenn ich ein Ethernetkabel nehme, dann kann ich das restliche Paar für GND und 5V nehmen um damit den Sensor zu versorgen.
Eine andere Möglichkeit wäre, alle Sensoren hintereinander zu hängen (in einer großen Schleife) und quasi alle in einem Rutsch abzufragen: µC-Master-SPI-MOSI => MOSI-Sensor1(Slave) + MISO-Sensor1 => MOSI-Sensor2(Slave) + MISO-Sensor2 => .... => µC-Master-SPI-MISO. Und so viele CLKs generieren, bis die Daten des ersten Sensors (oder die Kennung des Masters wieder) im Master gelandet sind. Dann sollte aber vom Master irgend eine Kennung kommen, damit der Master merkt, wann seine Kennung zurück ist. Theoretisch kann man natürlich auch einfach die erforderliche CLK-Anzahl generieren (Anzahl der Sensoren muss fest&bekannt sein). Ein Bus-System (parallele Verschaltung) wäre aufwendiger, könnte aber mit einem µC in jedem Sensor über ein Adress-Paket vom Master realisiert werden, der nur bei passender Adressierung das CS aktiviert. dann bräuchte man aber hard-codierte Empfänger-Adressen und viel Software. Da wäre dann wahrscheinlich I2C die nahe liegendere Realisierung. Mit Schottky-Dioden in den RS-485-Sender-Leitungen (+Pull-Up / pull-down) könnte man den open-Collector-Ausgang von I2C nachahmen - habe das aber nicht komplett durchüberlegt...
Ein anderes paralleles Verfahren fällt mir gerade ein - ein Time-Slot mit fester Datenpaketlänge: Master schickt eine bestimmte Master-Kennung (an jeden Sensor), danach (kleine Wartezeit für Verarbeitung) hat jeder Sensor - je nach seiner Adresse/Rang seinen Slot wann er senden darf... Wäre robust & noch relativ einfach zu programmieren.
Ok, das mit dem ansprechen bekomme ich denke ich hin. Ist es den richtig, dass die Clock Leitung auch nochmal extra über ein Twisted Pair übertragen werden muss?
Fragt sich, wie verteilt und in welcher bösen, verseuchten Umgebung das System betrieben werden soll. Maschinenhalle? Jedes Kabel ist auch eine schöne Antenne. Je nach Art der Störung/Messung würde ich die Signale mehrfach senden und auf Plausibilität prüfen. Netzwerkkabel ist zwar evtl. eine Lösung, könnte aber auch leicht zu rauchigen Verwechsungen im Patchfeld führen, wenn noch andere Spannungen mitgeführt werden. Deshalb guuut beschriften!
Gut mein Plan: 2 Adern f. MISO 2 Adern für MOSI 2 Adern f. Clock 1 Masse 1 5V Die Frage ist nur ob CS auf DauerLow gezogen werden draf. Ich mein mann muss nach jedem Byte einmal die CS Leitung High werden lassen oder? Das ginge dann nicht.
Ich will die Sensorplstine über Strom versorgen, kann man auch die Masse über die Schirmung führen oder ist das eher dumm? Sonst bräuchte ich 10 Pol bzw 9 und das ist ja mit Netzwerkkabeln nicht mehr so gut.
FLorian Unbekannto schrieb: > Die Frage ist nur ob CS auf DauerLow gezogen werden draf. Ich mein mann > muss nach jedem Byte einmal die CS Leitung High werden lassen oder? Hängt vom SPI-Slave ab. Manche brauchen es, manche nicht. Irgendwann könnte es sich auch lohnen, an Stelle des SPI mit RS485 oder RS422 Transceivern beispielsweise echtes RS485 oder CAN zu verwenden, und den dezentralen Sensoren einen kleinen µC für die Umsetzung SPI/Bus zu verpassen. Aber bei 2m in wenig störverseuchter Umgebung gehts auch mit normalen Logikpegeln und passendem Abschluss.
:
Bearbeitet durch User
ja gut, aber es muss alles klein sein. µC mit der ganzen Peripherie braucht auch wieder Platz. Dann der CAN Transceiver... So spar ich mir wenigsten den µC.
Ein µC mit integriertem CAN Transceiver wie der LPC11C24 braucht eher weniger Platz als deine 3-4 RS485 Transceiver.
:
Bearbeitet durch User
Gibt es denn irgendwo einen Schaltplan, wie man das ganze verschalten muss? Habt nirgendwo was gefunden.
:
Bearbeitet durch User
Hat das noch keiner mal erfolgreich aufgebaut und ne Verschaltungsskizze?
Die sparsame Reaktion könnte darauf zurück zu führen sein, dass die Leser allesamt von der Detailfreude deiner Posts förmlich erschlagen wurden.
A. K. schrieb: > Die sparsame Reaktion könnte darauf zurück zu führen sein, dass die > Leser allesamt von der Detailfreude deiner Posts förmlich erschlagen > wurden. Ich lese gerade das 3. Datenblatt zu den angegebenen SPI-Sensoren, wahrscheinlich komme ich am Donnerstag zu seinem Mikrocontroller, ist ja recht kompliziert das kleine Ding, dass er sich ausgesucht hat..
FLorian Unbekannto schrieb: > es muss alles klein sein. µC mit der ganzen Peripherie > braucht auch wieder Platz Ich verstehe nicht was du machst und brauchst, weil ich über deine Sensoren nichts finde. Wenn du die Signale digital übertragen willst, hast du doch sowieso einen µC im Sensor. Ich würde das mit RS485-Bus machen. Das kostet dann in jedem Sensor nur zusätzlich den RS485-Treiber. 2 Adern für den Bus und durchgeschleift zu jeden Sensor. Das ist jedenfalls der Standard. So habe ich das auch gemacht. Besonders praktisch finde ich die billigen Patch-Kabel. Alles fertig konfektioniert und reichlich freie Adern für Versorgung usw. Nätürlich brauchst du dann die Software für Master und Slave, aber so dramatisch ist das nicht. Die Daten werden dann einfach über den USART geschickt.
FLorian Unbekannto schrieb: > Gibt es denn irgendwo einen Schaltplan, wie man das ganze verschalten > muss? Wo ist da das Problem?
Entschuldigung! Habe nicht genau genug gelesen und bin wohl über das Ziel hinausgeschossen. Die SPI-Sensoren kannte ich noch nicht. Die sind wohl für ein Bus-System nicht geeignet, da sie nicht auf eine Adresse reagieren können. Also braucht jeder sein eigenes CS. Alle anderen Signale sollte man parallel verdrahten können. Es sieht wohl so aus, dass sie bei CS high auf TriState gehen (deute ich aus dem Signalverlauf). Habe nur diesen Sensor angesehen: http://de.rs-online.com/web/p/temperatur-und-feuchte-sensoren/7833891/ FLorian Unbekannto schrieb: > Die Frage ist nur ob CS auf DauerLow gezogen werden darf. Das geht jedenfalls nicht, da sie dann gar keinen Messwert erfassen (siehe Datenblatt). Die Twisted Pair für jedes Einzelsignal halte ich für sinnlos, da man den Rückstrom nicht für jedes Signal getrennt zur Verfügung hat. Geht also nur alle Signale einzeln zur verdrahten. Das ist vermutlich bei 2m kein Problem.
Marc Vesely schrieb: > Ich lese gerade das 3. Datenblatt zu den angegebenen SPI-Sensoren, Vielleicht sollte ich mal wieder zum Optiker, aber wo in diesem Thread sind irgendwelche Sensoren konkret angegeben?
Wenn schon verteilt, dass eher unabhaengige Module mit Controller an einem Vierdrahtbus. als RS485 plus Speisung.
A. K. schrieb: > Vielleicht sollte ich mal wieder zum Optiker, aber wo in diesem Thread > sind irgendwelche Sensoren konkret angegeben? Ja, gerade deswegen gehe ich die ganzen Datenblätter durch ;-D)
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.