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!
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.
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.
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).
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.
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.
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.
Markus Müller
Markus Müller
Karl Gilbert
ElektronS
Karl Gilbert
ElektronS
Toni M