In meiner Frage hier: Überprüfung meines allerersten PCB-Designs für einen Bewässerungssteuerungsroboter. es wurde darauf hingewiesen, dass ich wohl die LEVEL_ALERT
leitung schützen solle.
Im Wesentlichen habe ich also ein digitales Off-Board-Eingangssignal (5 V), das den Anschluss mit einem 12-V-Hochleistungskabel (bis zu 5 A) teilt, und es gibt die Nähe zu Wasser. Es besteht also ein echtes Risiko, dass die 12 V mit dem Eingangssignal kurzgeschlossen werden. Ich möchte magischen Rauch vermeiden ... Die genaue Schaltung ist in der oben verlinkten Frage enthalten, aber ich werde die relevanten Teile hier wiedergeben:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Die Werte der Komponenten sind nicht korrekt. Ich habe die Komponenten nur hinzugefügt, die Werte sollten keine Rolle spielen. Ich habe die Sicherung hinzugefügt, es war nicht im Original.
Wie Sie in dem großen Kästchen oben sehen können, das einen Stecker darstellt, der außerhalb des Boards verläuft. Und es besteht die Gefahr, dass die 12 V, die aus dem Relais gehen, mit dem Draht, der zum LEVEL
Pin des ATmega geht, kurzgeschlossen werden und magischer Rauch entsteht.
Wenn es nur eine ESD oder ein kleiner Transient wäre, bin ich sicher, dass die ESD-Dioden im GPIO-Pin damit umgehen könnten. Dies kann jedoch ein Dauerkurzschluss zu 12 V sein, von dem ich sicher bin, dass er das Mikro braten würde.
Hier sind die Optionen, die ich in Betracht gezogen habe:
LEVEL
, wo der Teilungspunkt mit dem Gate des PMOS verbunden ist, so dass alles über 5 V auf LEVEL die Stromversorgung des Relais unterbricht und den Kurzschluss unterbricht. Ich bin mir nicht sicher, ob dies schnell genug sein wird, um Schäden am ATmega zu verhindern. Es sind auch mindestens drei weitere Komponenten. Die Geschwindigkeit kann durch einen RC-Filter auf der LEVEL-Leitung gelöst werden. Wenn der Füllstandsschalter aufgrund eines niedrigen Füllstands aktiviert wird, während der Ausgang kurzgeschlossen ist, ist dies kein Problem, da das Relais die Pumpe sowieso abschaltet.LEVEL
gleichen Effekt wie 1 hat. Ich denke jedoch, dass Sie nicht riskieren, den Regler durchzubrennen oder anzuheben Vcc.Können Sie uns bitte mitteilen, ob eine dieser Methoden zum Schutz der ICs geeignet ist? Oder wenn einer besser ist als der andere?
Die andere Seite von SW1 ist mit GND verbunden, dh LEVEL ist offen oder mit GND verbunden. Wenn der LEVEL offen ist, ist dieser Teil der Schaltung hochohmig. Der interne Pullup-Widerstand von 50k ist immer noch ein hoher Wert. Ich schlage vor, einen Widerstand von 4k7 oder 10k von LEVEL zu 5V hinzuzufügen.
Es ist eine schlechte Idee, einem Eingang eines ATmega Klemmdioden hinzuzufügen. Sie sind parallel zu den internen ESD-Dioden. Der richtige Weg, Klemmdioden hinzuzufügen, ist ein zusätzlicher Widerstand zwischen den Klemmdioden und dem Eingang des ATmega-Chips.
Die gebräuchlichste Art, einen Eingang zu schützen, besteht darin, einen Reihenwiderstand zwischen dem Signal und dem Eingang hinzuzufügen. Zum Beispiel 4k7 oder 10k. Es ist erlaubt, 1mA in die internen ESD-Dioden eines Pins zu drücken oder zu ziehen. Das heißt, bei 12V und einem 10k-Widerstand ist der Strom in den Pin des ATmega (12-5,5)/10k = 0,6mA, das ist in Ordnung. Mit 4k7 ist es noch nah genug.
Es gibt viele andere Möglichkeiten, dies zu lösen, aber meine Lösung besteht darin, einen Pullup-Widerstand von 4k7 oder 10k von LEVEL auf 5V und einen Widerstand von 4k7 oder 10k von LEVEL zum Eingangspin des ATmega hinzuzufügen.
Je mehr ich über das Problem nachdachte, desto mehr wurde mir klar, dass ich in der Lage sein muss, zwischen drei Zuständen auf der LEVEL
Leitung zu unterscheiden:
Nach langem Kopfzerbrechen bin ich auf diesen Schaltplan gekommen:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Simulation: Hier .
Der Wert auf ADC3 ist:
ADC3 wird kontinuierlich abgefragt, solange das Relais, das die +12 V zum Reservoir liefert, aktiviert ist. Wenn der Wert kleiner/größer als 1,3 V -/+ 0,2 V ist, wird das Relais, das +12 V liefert, deaktiviert (oder nie aktiviert). Ich kann die Widerstandswerte skalieren, um die erwartete Ausgangsimpedanz auf der ADC-Leitung für eine schnelle Abfrage zu erfüllen.
Ich möchte auch, dass das System betriebssicher ist, also muss ich alle möglichen kurzen Szenarien berücksichtigen:
Emily L.
Jot
Emily L.
Jot