Hallo zusammen, für mein Projekt möchte ich an einen Teensy 4.1 mehrere SPI-PN532-NFC-Leser hängen. Diese werden sternförmig im Umkreis von bis zu 100cm um den Teensy verteilt und hängen alle am selben SPI-Bus. Das ganze soll veränderlich sein, also keine fest verlöteten Anschlüsse haben. Laut Datenblatt (https://www.nxp.com/docs/en/nxp/data-sheets/PN532_C1.pdf) sind 5MHz das maximum des PN532 für SPI. Um nicht ewig mit Dupont-Steckern zu fummeln, würde ich gern auf etwas crimp-freies umsteigen. Der Teensy steckt auf einem eigenen PCB, da bin ich also an nichts gebunden. Option 1) Ein normales Flachbandkabel mit IDC-Buchsen, die gibt es ja direkt zum Eindrücken. Auf das PCB kommen dann 2x4 Pins für alle acht Leitungen. Option 2) Ethernet, das ja auch 8 Leitungen hat. Spricht hier was dagegen auf die Distanz? Welche Cat-Klasse wäre ausreichend? Der PN532 hätte auch noch I2C und einen seriellen Port, aber die laufen mit 5V, die der Teensy nicht verträgt (siehe https://www.elechouse.com/elechouse/images/product/PN532_module_V3/PN532_%20Manual_V3.pdf Seite 2 unten). Danke Daniel
Sprich bitte 10 mal nach "SPI und I2C mit normalen 3-5V Pegeln sind für die PCB und nicht für lange externe Verkabelungen." Nimm RS232, RS485, CAN oder gleich Ethernet (nicht nur das Kabel). Alles andere ist Pfusch und bleibt Pfusch.
:
Bearbeitet durch User
Also bräuchte ich entweder an jedem PN532 einen eigenen Microcontroller, der "irgendwas für weitere Strecken" macht oder ich verkürze die Kabel. Welche Entfernung wäre denn noch vertretbar? 50cm? 30?
Ich muß mich da Cyblord anschließen, eine "sichere" Verbindung wird das nie. Mit Glück bringt man das mit wenigen 100kHz Takt und Kondensatoren an den Signalleitungen zum Laufen. Aber vermutlich nicht stabil.
Daniel K. schrieb: > Also bräuchte ich entweder an jedem PN532 einen eigenen Microcontroller, > der "irgendwas für weitere Strecken" macht oder ich verkürze die Kabel. Ja. > Welche Entfernung wäre denn noch vertretbar? 50cm? 30? Alles was die Platine oder zumindest das Gehäuse des Gerätes verlässt ist zu lang. Man sollte sowieso solche Leitungen nach extern gut absichern. Wie machst du das mit SPI? Eben!
:
Bearbeitet durch User
Daniel K. schrieb: > Welche Entfernung wäre denn noch vertretbar? 50cm? 30? Der Störpegel ist letztlich relevant. Wenn keine Störungen (Netz, Handy...) zu befürchten sind, könnte es mit Entstörkondensatoren gehen.
Um mal etwas praktischer zu werden: Was wird es denn? Für einen Experimentieraufbau, kannst du erstmal mit SPI und 100cm anfangen. Wenn es klappt schön, wenn nicht denk dir was anderes aus. Wenn es dabei bleibt. Kein Problem. Aber jede Art von "produktivem" Einsatz verbietet sich. Weil das ständig Problem machen wird. In der Realität. Evt. laufen die Leitungen parallel zu Stromkabeln. Dann schaltet jemand das Licht ein, oder die Klimaanlage geht an usw. usw. Dann spinnt dein SPI rum.
:
Bearbeitet durch User
Wenn SPI über lange Strecken, dann per LVDS. Gibt sogar entsprechende LVDS-TRXe mit der richtigen Anzahl RXen und TXen
Daniel K. schrieb: > SPI-PN532-NFC-Leser hängen. Diese werden sternförmig im Umkreis von bis > zu 100cm um den Teensy verteilt und hängen alle am selben SPI-Bus. Naja. Sternförmige Verteilung ist bei SPI nicht so das gelbe vom Ei. Man kriegt es hin, wenn man weiß wie. > (https://www.nxp.com/docs/en/nxp/data-sheets/PN532_C1.pdf) sind 5MHz das > maximum des PN532 für SPI. Das ist nebensächlich. Entscheidend ist die Flankensteilheit, siehe Wellenwiderstand. > Option 1) Ein normales Flachbandkabel mit IDC-Buchsen, die gibt es ja > direkt zum Eindrücken. Auf das PCB kommen dann 2x4 Pins für alle acht > Leitungen. Ja, aber ich würde 2x5 nehmen. 2x4 ist schwer beschaffbar. > Option 2) Ethernet, das ja auch 8 Leitungen hat. Spricht hier was > dagegen auf die Distanz? Welche Cat-Klasse wäre ausreichend? CAT5, ggf. sogar darunter CAT3. > Der PN532 hätte auch noch I2C und einen seriellen Port, aber die laufen > mit 5V, die der Teensy nicht verträgt (siehe Dafür gibt es Pegelwandler. Wenn du kannst, nimm lieber I2C, das ist gutmütiger. Da gibt es auch keine großen Probleme mit der sternförmigen Verkabelung. Und lass dich von den Reichsbedenkenträgern hier nicht irre machen. I2C geht wunderbar, auch bei 1m und mehr Kabellänge. Auch SPI kriegt man hin, wenn man weiß was man tut. Beitrag "Re: Skurriles Problem mit BS170 Mosfets"
Ich überlege, die RFID zur Positionsbestimmung auf einer H0-Modellbahnanlage zu nutzen. Störeinflüße sind also durchaus vorhanden (Licht, DCC-Signal, Motoren). Daher war meine Idee mit Ethernet ein abgeschirmtes Kabel zu nutzen.
100 cm sind nur 5 ns. Das ist nicht das Problem. Aber man müsste an die MOSI-, CLK-Ausgänge jeweils acht schnelle Puffer hängen und vor MISO auch, damit man die Leitungen sauber mit Serien-Widerständen terminieren kann. Das sind 3 zusätzliche ICs und 32 Widerstände (inkl. der 8 separaten /CS-Leitungen). Komplex!
Falk B. schrieb: > Sternförmige Verteilung ist bei SPI nicht so das gelbe vom Ei. Yep. Selbst mit ringförmig habe ich schon ein blaues Wunder erlebt, und das waren nur 10 … 15 cm auf einer Platine, aber halt mehrere "Anzapfungen", und ein Steckverbinder für den LA, der teilweise offen war. An dem musste ich einen Snubber nachrüsten, und die beiden treibenden Leitungen (SCK und MOSI) brauchten 100-Ω-Serienterminierung an der MCU. Wenn, dann würde ich das ringförmig und mit irgendeiner Art Transceiver machen. LVDS ist sicher nicht zwingend, auch RS485 oder so müsste gehen.
Thomas R. schrieb: > 100 cm sind nur 5 ns. Das ist nicht das Problem. > > Aber man müsste an die MOSI-, CLK-Ausgänge jeweils acht schnelle Puffer > hängen und vor MISO auch, damit man die Leitungen sauber mit > Serien-Widerständen terminieren kann. Nö. Ersten nimmt man dafür eher LANGSAME Puffer, die nur so schnell wie NÖTIG sind! Bei 5 MHz SPI-Takt braucht es keine 3ns Anstiegszeit. MISO, MOSI und CS brauchen die nicht, die kann man einfach parallel schalten. Nur SCK braucht eine Serienterminierung. > Das sind 3 zusätzliche ICs und 32 Widerstände (inkl. der 8 separaten > /CS-Leitungen). Komplex! Quark!
Daniel K. schrieb: > Ich überlege, die RFID zur Positionsbestimmung auf einer > H0-Modellbahnanlage zu nutzen. Störeinflüße sind also durchaus vorhanden > (Licht, DCC-Signal, Motoren). Daher war meine Idee mit Ethernet ein > abgeschirmtes Kabel zu nutzen. Also willst du quasi einen täglichen Einsatz über Jahre. Und genau dann würde ich so einen murks nicht machen. Es gibt aber sicher irgendwelche SPI->XXX Umsetzer so dass es ohne extra Controller an jedem Ende gehen sollte.
Bin am Rande mal über so Isolierwandler gestolpert die dann doch ned des richtige waren, evtl wäre das ne Lösung für dich (SPI 1MHz bis 100M) oder du kannst was adaptieren... https://www.analog.com/media/en/technical-documentation/data-sheets/ltc6820.pdf
Ich weis nicht, Einesteils, sagen die "Spezialisten" hier: Ein Föhn in die Badewanne zu schmeißen, sei Unbedenklich und Machen jetzt bei I²C so ein Zinober. Welleman hat es mit dem K8000 System vorgemacht, das I²C auch über meterlange Leitungen funktioniert. Ich selber Mache mit I²C 12V Pegel sogar Steuerungen mit bis zu 1km Kabel ohne irgend welche Probleme und verwende dazu Normale CAT II und CAT III Netzwerkkabel. Man muss halt die Termination und die Treiber richtig berechnen dann läuft das mit 0% Errorr. Wir machen das seit Jahrzehnten in Industrieanlagen so und haben teils sogar Zertifikate (Wo gefordert) Inkl ESD und Anderen Schutzbestimmungen. Also wegen den paar CM Kabel Sternförmig I²C jetzt Probleme sehen, verstehe ich nicht ganz.
Patrick L. schrieb: Aber der Unterschied zwischen > Ich selber Mache mit I²C 12V Pegel sogar Steuerungen mit bis zu 1km > Kabel ohne irgend welche Probleme und verwende dazu Normale CAT II und > CAT III Netzwerkkabel. Man muss halt die Termination und die Treiber > richtig berechnen dann läuft das mit 0% Errorr. und einem Anfänger einfach nur 3,3V SPI über lange Leitungen macht ist dir klar oder? Am Ende kann man alles irgendwie machen, wenn man genug Wissen, Tests und Erfahrung reinsteckt. Und Technik drauf wirft. Es wurden ja auch bereits Treiber empfohlen.
Patrick L. schrieb: > jetzt bei I²C so ein Zinober Eigentlich bei SPI. Aber früher war halt alles langsamer. Wenn man CD4000 als Leitungstreiber verwendet, kommt man dank der gemächlichen Flanken bei SPI ohne zusätzlichem Gefummel weiter als mit aktuellen Port-Treibern.
:
Bearbeitet durch User
Patrick L. schrieb: > Welleman hat es mit dem K8000 System vorgemacht, das I²C auch über > meterlange Leitungen funktioniert. Ich hatte mal mit einer Schaltung zu tun, da war ein Digitalpoti und noch bissel Krümelkram über 100m (einhundert Meter) mittels geschirmten Kabel bei 10kHz Takt anschlossen. In einer rauhen Industrieumgebung! Das lief! Die Stromversorgung per 5V lief auch über das Kabel, waren ja nur wenige mA.
Cyblord -. schrieb: > und einem Anfänger einfach nur 3,3V SPI über lange Leitungen macht ist > dir klar oder? Der Anfänger holt sich eine Velleman K8000 und guckt wie die das machen und Kopiert. Ja logisch aber es gibt ja genügend Literatur und Applikations Example was I²C anbelangt. Wenn man ja schon Steuerungen "Bastelt", sollte man ja schon wenigstens mal in einem I²C Kochbuch geschmökert haben. Da gibt es genügend Formeln und Beispiele ja sogar schon Onlinekalkulatoren die die Widerstände berechnen.
:
Bearbeitet durch User
(prx) A. K. schrieb: > CD4000 als Leitungstreiber verwendet, kommt man dank der gemächlichen > Flanken bei SPI ohne zusätzlichem Gefummel weiter als mit aktuellen > Port-Treibern. BINGO! CD4050 ist dein Freund. Lammfromm bei 5V! Und auch nicht wirklich bissig bei 15V.
Ich hab in jede VCC Leitung einen kleinen Widerstand(10R?, muss ich nachsehen) und eine 3V6 Z-Diode gelegt, parallel zur Z-Diode einen kleinen Elko 100µ/6v3. Jede Datenleitung und Chip Select mit 2Dioden gegen VCC und GND. Direkt auf den Reader-Platinen am Steckverbinder. Ich hatte im Projekt 4 RFID-Reader am SPI, 1xRTC und Display am I2C, 1xEpson Bon-Drucker an RS232. Hatte anfangs, alles wunderbar und wie gewünscht, funktioniert. Man durfte nur den Drucker während das laufenden Betriebs nicht aus der Steckdose ziehen. Wenn man den wieder eingesteckt hatte, starben alle vier RFID-Reader an Überspannung(?kAhnung). Nachdem ich dann die Flachbandleitungen zu den Card-Reader-Platinen mit Widerstand und Clamp-Dioden versehen hatte, ging dann endlich alles. Mit der Datenübertragung ansich gab es nie Probleme. Nur mit dem blöden Schaltnetzteil vom Bon-Drucker. Aber: auch hier wieder: Leute, malt euch genau auf, was ihr da bastelt! Auch, wenn s nur n kleiner Gefallen ist oder die Meinung vorhersscht: "Aber hallo, hier sind drei Schieberegister und ne RTC drann, was willst du da aufzeichnen?" Ich bereue das jetzt schon so manches Mal.
Axel R. schrieb: > Wenn man den wieder eingesteckt hatte, starben alle vier RFID-Reader an > Überspannung(?kAhnung). Es gibt Extra HotSwap fähige I²C Treiber IC, mitunter sogar galvanisch getrennte. Man bedenke in 90% der Fälle ist I²C eine CMOS Schnitstelle und ohne eine Hotswap fähige Anbindung, kann man schon mal einen CMOS rösten. Aber dass ist eigentlich Grundlagenwissen und fast bei jedem mit I²C Schnittstellen beinhaltendem IC dokumentiert.
Warum redet ihr eigentlich alle über I²C? Gefragt war doch SPI …
Jörg W. schrieb: > Warum redet ihr eigentlich alle über I²C? Gefragt war doch SPI … Weil der OP eine I2C Option ansprach. "Der PN532 hätte auch noch I2C und einen seriellen Port, aber die laufen mit 5V, die der Teensy nicht verträgt" Ein Pegelwandler löst das Problem.
:
Bearbeitet durch User
Falk B. schrieb: > Nur SCK braucht eine Serienterminierung Endlich einer, der mal Ahnung und Erfahrung hat! Die Clock ist empfindlich, weil Doppelimpulse (im Umschaltaugenblick, nicht bei satten Pegeln) Fehler verursachen. Wenn es bei unter 1m und wenigen MHz bisher Probleme gab, dann weil die Übernahme-Flanke falsch gewählt war (meist funktionieren 2 der 4 Einstellmöglichkeiten, die eine jedoch nur ganz knapp). Das ist dann wo es auf der Platine funktioniert aber nicht im fliegenden Aufbau. Oder nicht mit restlicher HW. Und zu suggerieren, dass I2C auch nur in die Nähe der Störfestigkeit*Länge*Takt kommt wie SPI, ist realitätsfremd. Es kann sein, dass 5 MHz für den TO zu viel sind. Dann ist 200k SPI noch immer mehr Durchsatz als 400k I2C. Notfalls bei SPI alle 4 Kombinationen durchspielen. Wenn 2 funktionieren, dann mit LSA und Datenblatt die richtige identifizieren oder mit Oszi und Kondensatoren verschleifen um die falsche zu erkennen. ,
Cyblord -. schrieb: > Sprich bitte 10 mal nach > > "SPI und I2C mit normalen 3-5V Pegeln sind für die PCB und nicht für > lange externe Verkabelungen." Quatschkopf 1. Zwischen SPI und I2C liegen Welten in der Geschwindigkeit. 2. I2C für über 100 Meter lange Platinen geht, wenn man sich ein bisschen Mühe gibt (Fig.3), aber wahrscheinlich hat NXP da nicht so die richtige Ahnung. https://www.nxp.com/docs/en/application-note/AN10658.pdf
Wolfgang schrieb: > Cyblord -. schrieb: >> Sprich bitte 10 mal nach >> >> "SPI und I2C mit normalen 3-5V Pegeln sind für die PCB und nicht für >> lange externe Verkabelungen." > > Quatschkopf > > 1. Zwischen SPI und I2C liegen Welten in der Geschwindigkeit. > > 2. I2C für über 100 Meter lange Platinen geht, wenn man sich ein > bisschen Mühe gibt (Fig.3), aber wahrscheinlich hat NXP da nicht so die > richtige Ahnung. > https://www.nxp.com/docs/en/application-note/AN10658.pdf Du willst doch nicht etwa einen der Universalgelehrten des µCNets auf die Füße treten? So etwas läppisches, wie eine technisch physikalische Argumentation ist einfach unangebracht und nicht fair.
isoSPI klingt in der Tat interessant, werde ich mir mal merken. Der PN532 unterstützt auch UART, da werde ich mich mal an einem MAX3490 oder so versuchen, wenn die Verbindung zu instabil wird. Danke für eure Tipps!
Martin schrieb: > So etwas läppisches, wie eine technisch physikalische > Argumentation ist einfach unangebracht und nicht fair. Diese Argumentation hilft dir halt auch nicht mehr wenns nicht ordentlich läuft. Um das verhindern geht man erstmal den Weg der mit größter Sicherheit funktioniert und erprobt ist. Nur in der Not würde man mit I2C und SPI an die physikalischen Grenzen gehen. Sind denn so Schlauberger wie du am Ende dann auch hier um dem TE zu erklären warum sein Zeug nicht ordentlich läuft oder wird dann ins Physikbuch abgetaucht, nach dem Motto "müsste eigentlich laufen". Als Gast schnell was rausrotzen und dann auf nimmer wiedersehen. Das ist halt einfach. In der Praxis schon mal was zum laufen gebracht? Mein Zeug läuft nämlich zufällig. Weil ich auf solche Abenteuer verzichte.
:
Bearbeitet durch User
Cyblord -. schrieb: > Nur in der Not würde > man mit I2C und SPI an die physikalischen Grenzen gehen. Das gilt für jedes Verfahren. Und 100cm sind für SPI bei 100kHz keine Herausforderung.
A. S. schrieb: > Cyblord -. schrieb: >> Nur in der Not würde >> man mit I2C und SPI an die physikalischen Grenzen gehen. > > Das gilt für jedes Verfahren. Und 100cm sind für SPI bei 100kHz keine > Herausforderung. Auf deinem Labortisch vielleicht. Kommt halt drauf an was du daneben noch so laufen hast. Lass da mal einen Motor anlaufen, oder schöne Funken der Modellbahn (um die es ja hier geht), schaltende Magnetartikel mit 16V Wechselstrom usw. usw. dann mal sehen was die 100cm Antenne so auffängt und ob das Programm damit umgehen kann. Man kann da viel auch in Software ausbügeln. Aber damit ist grade bei Anfängern eben auch mau. Die sind darauf angewiesen dass wenigstens die Hardware mal meistens das tut was man auch programmiert und nicht lustig die Bits der SPI Kommunikation kippt wenn man ne Weiche umschält.
:
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.