Kurzschlussschutz von Hochgeschwindigkeitsdatenleitungen

Ich muss Datenleitungen eines PIC32-Mikrocontrollers (SPI und parallel) schützen, der mit ~ 10 MHz läuft, vor Kurzschluss gegen Masse / Vcc oder Fehlverdrahtung.

Ich benutze normalerweise (bei niedrigen Geschwindigkeiten) Vorwiderstände, um den Strom zu begrenzen, und es hat gut funktioniert, aber das funktioniert jetzt natürlich nicht wegen der Geschwindigkeit.

Ich denke darüber nach, einen Leitungspuffer/Inverter (so etwas wie 74LVC04) zu verwenden. Dadurch wird die MCU gerettet, aber der Puffer wird beschädigt.

Ich habe viele Logikfamilien (ACT, HCT, LVC usw.) durchsucht, aber keine bietet Kurzschlussschutz.

Gibt es eine bessere Lösung?

Bearbeiten nach Kommentaren: Dies ist ein Entwicklungsboard zum Testen und Validieren, aufgrund von Codierungsfehlern können Pins falsch konfiguriert werden. oder falsch verdrahtet, Verbinden des MCU-Ausgangs mit dem Zielausgang anstelle des Eingangs.

Edit #2: Ein PTC ( 0603L004 ) könnte eine Lösung sein, aber es ist langsam!

„Miswiring“: Das ist also ein externer Bus. Geht es über Anschlüsse? Wo geht es hin? Was ist die Entfernung? Was für Daten transportieren Sie da drüben? Wie viele parallele Linien?
Es ist wahrscheinlich am besten, Ihren Anwendungsfall insgesamt zu beschreiben. "Fehlverdrahtung" klingt nach etwas, das Sie vermeiden, wenn Sie Stecker verwenden, die nicht falsch eingesteckt werden können.
Hast du das Micros-Referenzhandbuch gelesen? Normalerweise hat das Mikro einen eigenen Schutz. Versuchen Sie, etwas anderes als das Mikro zu schützen?
@Marcus, ich habe die Frage bearbeitet. Carl. Das Mikro kann reichlich 20 mA liefern, ist aber nicht geschützt, sodass es keine Strombegrenzung durchführt.
Ahh. Nun, vielleicht können Sie zuerst als IO konfigurieren. Sie stellen den Ausgang kurz ein und lesen das Ergebnis ab. Wenn es auf 0 sitzt, wenn Sie eine 1 fahren, oder auf 1, wenn Sie eine 0 fahren, dann lehnen Sie es ab, den SPI zu aktivieren.
netter trick gilbert :)
@CarlGilbert, lesen Sie einfach die Frage und hätten die "Testfahrt zuerst als E / A" als Antwort gepostet, aber Sie haben es bereits vorgeschlagen. Erweitern Sie Ihren Kommentar und posten Sie ihn als richtige Antwort. Ich werde es positiv bewerten.

Antworten (6)

CMOS-Treiber haben eine inhärente Strombegrenzung, die durch den Drain-Source-'Ein'-Widerstand der Ausgangstreiber-FETs, Rds(on), festgelegt wird. Sie können dies aus dem Datenblatt anhand von Vo(h) und Vo(l) für einen bestimmten Ausgangsstrom ableiten.

Als Beispiel listet das PIC32-Datenblatt Vo(l) als 0,36 V bei 6 mA auf, was einem Rds(on) von 60 Ohm entspricht. Das ist ein schwacher Treiber. Ein Kurzschluss auf 3,3 V würde 55 mA ergeben, was mehr ist, als das Datenblatt zulässt (16 mA), eine ziemlich enge Grenze. Allerdings wird ein Kurzschluss an einem Stift das Teil nicht unbedingt beschädigen.

Das größere Problem sind oft ESD-Schäden. Dinge, die von Bord gehen, können von zusätzlichen TVS-Dioden profitieren, um die ESD-Robustheit zu erhöhen.

beste antwort bisher. Guter Punkt, den Sie zum RDSon angesprochen haben, ESD kann verwaltet werden, da so viele TVS-Arrays verfügbar sind. Also würde ich vielleicht einen kleinen Widerstand in Reihe schalten, so dass er die Geschwindigkeit nicht beeinflusst (47 Ohm?), Aber hilft, Rds On zu erhöhen, um sicherzustellen, dass ein Kurzschluss das Teil nicht beschädigt, was denkst du?
Der Serienwiderstand führt zu einem Kompromiss zwischen Begrenzung und Geschwindigkeit. Bei 60 Ohm ist die Ausgangsimpedanz genau richtig, um eine Leiterbahn zu treiben (60-65 Ohm typisch für eine nicht kontrollierte Leitung auf 4L-Stapel.) Das Hinzufügen von mehr führt zu einer Fehlanpassung in Nebelfällen und die Anstiegszeit wird beeinflusst .

OK, ganz ehrlich: Dann ist der Zweck des Entwicklungsboards zu lernen, diese Fehler zu vermeiden.

Die Lösungen für dieses spezielle Problem (das eine fehlerresistente Off-Board-Kommunikation mit hoher Geschwindigkeit erfordert) beinhalten normalerweise den Übergang zu einem speziellen Bus mit großer Reichweite.

Ihr "Problem" hat eine "Lösung", die Ihr ursprüngliches Problem, mit Peripheriegeräten zu sprechen, so viel komplexer machen würde, dass es nicht mehr wirklich eine "Lösung" ist.

Wenn Ihr Peripheriegerät Ihren Controller zerstören kann, achten Sie darauf, es nicht falsch zu verdrahten. Das ist normalerweise nicht wirklich schwer im Vergleich zu anderen technischen Fallstricken. Zum Beispiel würden Sie eine Adapterplatine entwerfen, die auf einer Seite sehr deutlich mit „Signal“ und auf der anderen mit „Ausgang“ beschriftet ist und, wenn möglich, jeweils zwei verschiedene Anschlüsse hat. Problem gelöst.

Vielen Dank für die Antwort, aber zu Lernzwecken möchte ich eine Lösung studieren, nicht einen Spaziergang oder eine Vorbeugung. vielleicht spezifischer IC, der mein Problem einfach löst. Beispielsweise gibt es viele RS485-Transceiver, die über solche Schutzmaßnahmen und mehr verfügen. Allerdings habe ich "noch" nichts Ähnliches für SPI oder parallele Ports gefunden
Aber Sie lernen nichts über ein reales Problem: Bei einem richtigen Design sind Fehlverdrahtungen an Bord kein Problem. Wenn Sie einen Off-Device-Bus haben, ja, so etwas wie RS-485 ist die richtige Lösung. Aber du nicht. Daher ist es hier die richtige Lösung, dies nicht zu haben. Wenn Sie etwas über einen Off-Board-Bus erfahren möchten, müssen Sie angeben, um welche Art von Bus es sich handelt (das sind alle Fragen, die ich in meinem ersten Kommentar zu Ihrer Frage gestellt habe), dann entscheiden Sie, um welche Art von Bus es sich handelt.
@ElectronS RS485 als Topologie ist für Milti-Drop-Netzwerke über große Entfernungen gedacht, daher ist zu erwarten, dass freiliegende Drähte von fast jedem normalen Joe an Geräte angeschlossen werden. Schnittstellen wie SPI sind in der Regel intern darauf ausgerichtet, von geschulten oder halbsachkundigen Technikern verkabelt zu werden, oder haben polarisierte Anschlüsse, die nur in eine Richtung gehen.
@DmitriS, ich verstehe Ihren Standpunkt. Bei einem fertigen Produkt ist dies kein Problem. aber bedenken Sie folgendes : Dieses Entwicklungsboard hat die unbenutzten Pins mit einem einfachen Header ( wie Arduino ) verbunden , wenn eine andere Person dieses Board benutzen möchte , um sein Eeprom zu testen , das er auf einem Steckbrett hat . er kann leicht etwas falsch verdrahten und meine Frage war, wie man das verhindern kann.
@ElectronS Ich glaube nicht, dass es eine Lösung für dieses Problem gibt, die nicht viel komplexer ist als das gesamte System, das Sie bisher haben, oder das in Bezug auf die Flexibilität schwerwiegende Mängel aufweist. Sie versuchen, ein Problem zu lösen, das keines ist. Dedizierter, verschlüsselter Anschluss. Wenn sie das falsch verkabeln, ist das wirklich nicht deine Schuld. Wenn Sie mit Elektronik arbeiten, müssen Sie grundlegende Verbindungen mit geringer Kabelanzahl richtig herstellen.
Ich habe auch keine Lösung gefunden, deshalb frage ich hier im Forum. Jetzt habe ich meine Antwort danke

Ich bin ein Elektroingenieur. Ich habe an mikroprozessorbasierten Designs vieler Produkte gearbeitet. Ich habe gelegentlich Dinge falsch verdrahtet (mehr Male, als ich zugeben möchte). Außerdem müssen wir irgendwann unsere Hardware an Firmware-Ingenieure abgeben, und die verkabeln die Dinge auch ständig falsch. Ich habe noch nie gesehen, dass ein GPIO frittiert wurde, weil er mit VCC oder GND oder einem anderen Ausgang kurzgeschlossen war. Natürlich empfehle ich nicht, es absichtlich zu tun, aber ich habe es öfter gemacht, als ich zählen kann, und FW-Ingenieure haben es auch falsch gemacht. Ich glaube nicht, dass Sie sich darüber Sorgen machen müssen, es sei denn, Sie setzen den Ausgang einer Spannung aus, die größer als VCC oder kleiner als GND ist.

Das Einzige, was ich gelegentlich getan habe, war externe Logik zu verwenden, um sicherzustellen, dass das FW-Team nicht versehentlich einen „verbotenen Zustand“ erzeugen kann. (Wie zum Beispiel das gleichzeitige Drehen auf der hohen und niedrigen Seite einer Brücke, um einen Durchschuss zu erzeugen).

Vielen Dank, wirklich vielen Dank, dass Sie meinen Punkt wiederholt haben, dass es während der Entwicklung zu Fehlverkabelungen kommt, insbesondere wenn dies kein fertiges Produkt ist und die Verkabelung nicht in einem abgeschlossenen Zustand ist. Ich bin erleichtert, dass das Kurzschließen von GPIOs weder den Port noch den Chip durchbrennt.

Das Problem bei modernen MCUs ist die winzige Größe der FETs und die enormen lokalen Erwärmungs-Temperaturanstiegsraten.

Ich erinnere mich an die Berechnung von dTemp/dTime von 1.000 Grad pro Mikrosekunde für solche (winzigen) FETs, wobei viele Milliwatt in ein oder zwei Quadratmikrometern verbraucht werden, und an den großen thermischen Widerstand von Siliziumwürfeln, die nur 1 Mikrometer auf einer Seite sind.

=================================

Für den Übertemperaturschutz muss sich jeder Temperatursensor innerhalb von 10 Mikrometern vom Hot-Spot befinden. Wenn der Hot-Spot ein tiefer Submikrometer-Ausgangs-FET ist, kurzer Kanal für hohe Ansteuerung, kann sich der FET selbst zerstören, bevor eine hohe Temperatur erkannt wird.

Praktische Lösung? Bei hohen Temperaturen wird der FET weniger leitfähig. Oder erkennen Sie die Übertemperatur und schalten Sie die FETs aus (Bereich teuer, um das zu tun).

Ich erinnere mich an Geschichten von MCUs aus der Zeit von 1995, die sich selbst zerstörten, wenn die Ausgänge kurzgeschlossen wurden.

Meinen Sie also, es gibt keine praktische Lösung in Silizium? Entschuldigung, aber ich habe wirklich keine Antwort bekommen

Eine Möglichkeit zum Schutz besteht darin, den Bus galvanisch von der MCU zu trennen, indem beispielsweise digitale Isolatoren verwendet werden . Diese funktionieren gut bei hohen Geschwindigkeiten und sind zuverlässiger als beispielsweise Optokoppler. Es gibt auch spezielle Teile, die speziell für SPI, I2C usw. vorgesehen sind.

Obwohl diese Lösung hauptsächlich verwendet wird, wenn Sie erwarten, dass die Sekundärseite laut ist, und Sie vermeiden möchten, dass EMI, Spannungsstöße, Erdströme und andere unangenehme Dinge direkt auf Ihre MCU treffen.

Damit Ihre Lösung funktioniert, sollten die Isolatoren kurzschlussfest sein, sonst ändert dies nichts

Vielleicht können Sie zuerst als IO konfigurieren. Sie stellen den Ausgang kurz ein und lesen das Ergebnis ab. Wenn es auf 0 sitzt, wenn Sie eine 1 fahren, oder auf 1, wenn Sie eine 0 fahren, dann lehnen Sie es ab, den SPI zu aktivieren.

Ich bin auch ein EE, aber hauptsächlich schreibe ich Software. Ich stimme einem der vorherigen Kommentatoren zu, der sagte, Sie sollten alles, was das Board verlässt, vor ESD schützen. TVS-Dioden sollten also unbedingt vorhanden sein. Wenn einer der Pins im Stecker mehr als 5 V hat, sollten Sie auch Ihre anderen Pins vor dieser höheren Spannung schützen.