Hallo,
ich hab ein kleines Problem.
Ich hab hier einen Mikrocontroller und ein paar andere Komponenten die
über die VBUS/GND-Pins eines USB-Kabels Spannung beziehen.
Jetzt soll aber noch die Möglichkeit bestehen dass über einen speziellen
Kontakt eine 9V-Batterie o.ä. mit der Schaltung verbunden wird, was dann
a) Strom liefern soll und b) über einen Spannungsteiler mit einem
Mikrocontrollereingang verbunden ist, sodass der weiß "aha ich bin nicht
per USB sondern extern gepowert".
Das ganze ist eine Art Sicherheitskontakt. Wenn der ausgelöst wird
schreibt der Controller nämlich einen Wert in sein EEPROM der das ganze
Gerät permanent sperrt (zumindest bis man per serieller Verbindung einen
Code schickt). Nun soll dieser Kontakt funktionieren sowohl wenn USB
Strom liefert als auch wenn kein Strom über USB kommt, in diesem Fall
soll die 9V-Batterie den Strom liefern (über einen 7805), d.h. der
Kontakt verbindet die 9V-Batterie mit der Schaltung, was dann Strom
liefert (wenn sonst keiner da wäre) und zugleich die Sperrung auslöst
(für die ja Strom benötigt wird).
Es soll absolut kein Strom aus der Batterie gezogen werden wenn der
Sicherheitskontakt nicht aktiviert wurde (soll Jahre halten).
Normalerweise würde ich einfach USB und Batterie parallel anschließen,
mit zwei Dioden sodass kein Strom in die jeweils andere Stromquelle
zurückfließen kann.
Das kann ich hier aber nicht machen. Denn die Diode vermindert die
Spannung, was nicht sein soll. Bei <4,8V funktioniert die Schaltung
nicht mehr richtig (ICs die 5V wollen, etc.). Nein, auf 3,3V umzusteigen
kommt nicht in Frage.
Gibt es eine MÖGLICHST EINFACHE und möglichst ohne exotische Bauteile
auskommende Lösung (außer eines Relais, das kommt nicht in Frage weil es
ein Geräusch machen würde, außerdem ist es klobig)?
Wie würdet ihr das Problem lösen?
Siehe vereinfachte Skizze im Anhang.
mfG Cherry
CherryDT schrieb:> Gibt es eine MÖGLICHST EINFACHE und möglichst ohne exotische Bauteile> auskommende Lösung (außer eines Relais, das kommt nicht in Frage weil es> ein Geräusch machen würde, außerdem ist es klobig)?
Wie waere es mit einem Reed-Relais ? Das ist weder klobig, und ausserdem
relativ leise. Und ein minimales Geraeusch macht ja auch dein "Sabotage"
Kontakt, oder ?
ZigZeg
@Fabian: Ja, der den ich verwende gibt aber stabil 5,1V aus. Das Ding
braucht nur an diesem USB-Port laufen.
@Samuel: Du hast nicht verstanden was der Sinn der Sache ist. Das Gerät
soll nicht sperren wenn der Strom ausfällt, sondern nur wenn der
Sabotagekontakt aktiviert wurde. Der Kontakt soll aber immer
funktionieren, egal ob USB gerade Strom liefert oder nicht (daher die
eingebaute Batterie).
@ZigZeg: Reed-Relais zählt für mich im Augenblick zu den exotischen
Bauteilen, weil ich es nicht zur Hand habe. Davon abgesehen klingt das
gut, wenn wir keine bessere Lösung mehr finden, werde ich mir wohl eines
bestellen. Der Kontakt macht übrigens kein Geräusch, weil er einen
Reedschalter verwendet.
Es soll einfach nicht hör-/sehbar sein dass man die Sperrung ausgelöst
hat.
--------
Ich hab im Internet etwas davon gelesen, dass man mit irgendwelchen
Schaltungen mit "verkehrt verbauten" MOSFETs sowas ohne Spannungsabfall
erreichen kann... könnt ihr mir da was genaueres sagen? Wenn möglich mit
genauer Bauteilangabe und so, ich bin nämlich wenig erfahren mit
Elektronik außerhalb vom direkten Umfeld des Mikrocontrollers.
CherryDT schrieb:> Du hast nicht verstanden was der Sinn der Sache ist. Das Gerät> soll nicht sperren wenn der Strom ausfällt, sondern nur wenn der> Sabotagekontakt aktiviert wurde.
sry, zu schnell gelesen - anderer Vorschlag: Dioden rausnehmen, den
USB-Port mit einem P-FET trennen, sobald an OUT Spannung anliegt. Hat
den Nachteil, dass sobald die ext. Spannung anliegt ausschließlich über
diese versorgt wird. Lässt sich aber über einen zweiten FET beheben.
1.
Google mal (oder such hier) nach einer "idealen Diode" - das ist eine
MOSFET-Schaltung.
2.
Gute Shottky-Dioden schaffen auch "nur" 0,2V bis 0,3V Verlust.
Um es möglichst einfach zu halten fand ich den im ersten verlinkten
Thread erwähnten "LTC4413LC" IC interessant. Leider findet man bei
Google da nur genau 1 Ergebnis, nämlich ebendiesen Thread. Eine Suche
nach "ideal diode ltc*" bringt einiges zu Tage, nämlich eine ganze Latte
an LTC4XXX-ICs. Ich bin jetzt wie gesagt nicht all zu bewandert, habt
ihr da einen konkreten IC den ihr mir raten würdet?
@Samuel: Klingt auch gut... das erwähnte "Problem" ist keines, weil die
externe Spannung eh nur dazu dient dass der Sperrbefehl verarbeitet
werden kann. Ob die danach weiter anliegt bis die Batterie leer ist oder
nicht (normalerweise passiert das eh nicht weil der Kontakt nur kurz
aktiviert wird) ist dann völlig egal. Was für ein konkretes Bauteil
brauch ich da und wie baue ich das ein? (Wie erwähnt, ich brauche nur
schnell das Problem gelöst und will mich jetzt nicht allzusehr in
FET-Technik und sonstwas vertiefen müssen, weil ich von Elektronik nur
soweit Ahnung habe was das direkte Umfeld des Mikrocontrollers betrifft)
Danke für eure Tipps bisher!
mfG CherryDT
CherryDT schrieb:> Das ganze ist eine Art Sicherheitskontakt. Wenn der ausgelöst wird> schreibt der Controller nämlich einen Wert in sein EEPROM der das ganze> Gerät permanent sperrt (zumindest bis man per serieller Verbindung einen> Code schickt).
Hallo Cherry,
so ganz habe ich Dein Problem nicht verstanden. Wozu brauchst Du den
Wert im EEPROM?
Ich habe verstanden, dass Du nach dem Abtrennen des USB beim nächsten
Einschalten den Sicherheitscode verlangst, ohne den das Gerät nicht
funktionieren soll. Aber reicht es dafür nicht, wenn Du nach dem
Einschalten des Geräts einfach jedesmal den Code verlangst?
Falls Du unbedingt einen Sicherheitscode schreiben willst, stabilisiere
die Spannung doch über einen Kondensator. Der muss den µC ja nur für ein
paar Millisekunden am Leben halten, bis der Wert im EEPROM steht.
EEPROM-Schreiben geht ja recht fix.
Gruß,
Max
Hallo CherryDT,
schau dir mal die Schaltung eines Arduino an. Hier wird genau das
realisiert. Es ist einfach ein P-MOS und ein Komparator. Die Schaltung
musst du etwas ändern, weil du keine 3,3 V hast.
Nimm doch gleich einen Arduino. Er ist klein und kostengünstig.
Gruß
Guido
Ich würde es auch mit einem großen Kondensator probieren.
Der müsste eigentlich ausreichen um den AVR für kurze Zeit am Leben zu
halten wenn der Schutzkontakt auslöst so dass die CPU im worst-case ohne
USB-Stromversorgung anlaufen und den Wert ins EEPROM schreiben kann.
So ganz ohne ist das aber auch nicht, wenn beim EEPROM beschreiben die
Spannung ausfällt dann hast Du richtig Spaß...
Max G. schrieb:> CherryDT schrieb:>>> Das ganze ist eine Art Sicherheitskontakt. Wenn der ausgelöst wird>> schreibt der Controller nämlich einen Wert in sein EEPROM der das ganze>> Gerät permanent sperrt (zumindest bis man per serieller Verbindung einen>> Code schickt).>> Hallo Cherry,>> so ganz habe ich Dein Problem nicht verstanden. Wozu brauchst Du den> Wert im EEPROM?> Ich habe verstanden, dass Du nach dem Abtrennen des USB beim nächsten> Einschalten den Sicherheitscode verlangst, ohne den das Gerät nicht> funktionieren soll. Aber reicht es dafür nicht, wenn Du nach dem> Einschalten des Geräts einfach jedesmal den Code verlangst?>> Falls Du unbedingt einen Sicherheitscode schreiben willst, stabilisiere> die Spannung doch über einen Kondensator. Der muss den µC ja nur für ein> paar Millisekunden am Leben halten, bis der Wert im EEPROM steht.> EEPROM-Schreiben geht ja recht fix.>> Gruß,>> MaxChristian T. schrieb:> Ich würde es auch mit einem großen Kondensator probieren.> Der müsste eigentlich ausreichen um den AVR für kurze Zeit am Leben zu> halten wenn der Schutzkontakt auslöst so dass die CPU im worst-case ohne> USB-Stromversorgung anlaufen und den Wert ins EEPROM schreiben kann.>> So ganz ohne ist das aber auch nicht, wenn beim EEPROM beschreiben die> Spannung ausfällt dann hast Du richtig Spaß...
Nein, das habt ihr falsch verstanden. Es geht darum dass der
Sabotagekontakt immer funktionieren soll und die Sperre aktivieren,
egal ob USB gerade Strom liefert oder nicht. Wenn USB ausgesteckt wird
soll nichts gesperrt werden!
Mein Problem dabei war nur dass die Spannung von der Batterie in das
Mainboard zurückfließen würde, was nicht sein soll.
Guido Scheidat schrieb:> Hallo CherryDT,>> schau dir mal die Schaltung eines Arduino an. Hier wird genau das> realisiert. Es ist einfach ein P-MOS und ein Komparator. Die Schaltung> musst du etwas ändern, weil du keine 3,3 V hast.> Nimm doch gleich einen Arduino. Er ist klein und kostengünstig.>> Gruß> Guido
Ich verwende bereits einen Arduino, allerdings einen Mini Pro. Der
normale ist zu groß und sperrig, nicht direkt mit meiner Schaltung
verlötbar und außerdem bringt mir sein USB-Anschluss nichts, weil mein
System nämlich aus einem ANGEZAPFTEN USB-Kabel die Spannung bezieht. Das
System kann nämlich ein USB-Gerät programmgesteuert mit dem Computer
verbinden oder trennen, mit zwei USB-Buchsen die verbunden sind wobei
VBUS unterbrochen ist und vom Controller verbunden wird, und von VBUS
und GND bezieht der Controller normalerweise die Spannung.
Damit der Sabotagekontakt aber auch funktioniert wenn der PC aus ist,
muss die Batterie her.
========
Schaltung vom Arduino: Hab ich mir schon angesehen, aber jetzt nicht
wirklich verstanden. Mit OPs hab ich auch noch nie gearbeitet.
========
Ich hab jetzt einen IC gefunden der passend erscheint: LTC4412, den hab
ich jetzt mal bei Conrad bestellt. Schauen wir mal. Der Beschreibung
nach tut der genau das was ich will.