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
Bei genau 5V und USB hast du schon prinzipiell das Problem, dass manche USB Ports nur 4.5V ausgeben. USB ist +-10% definiert. Gruß Fabian
Man könnte einen einen großen Kondensator als Puffer nehmen und sobald die Spannung nur leicht sinkt sperren.
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.
EDIT: Im Anfangspost steht was von einem Spannungsteiler. Das ist falsch, das war aus einer vorigen Überlegung. Ignoriert es.
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ß, > > Max Christian 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.
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.