Forum: Mikrocontroller und Digitale Elektronik Zweite Spannungsversorgung - ohne Dioden?


von CherryDT (Gast)


Angehängte Dateien:

Lesenswert?

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

von Fabian B. (fabs)


Lesenswert?

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

von Sam .. (sam1994)


Lesenswert?

Man könnte einen einen großen Kondensator als Puffer nehmen und sobald 
die Spannung nur leicht sinkt sperren.

von Kai S. (zigzeg)


Lesenswert?

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

von CherryDT (Gast)


Lesenswert?

@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.

von CherryDT (Gast)


Lesenswert?

EDIT: Im Anfangspost steht was von einem Spannungsteiler. Das ist 
falsch, das war aus einer vorigen Überlegung. Ignoriert es.

von Sam .. (sam1994)


Lesenswert?

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.

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

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.

von CherryDT (Gast)


Lesenswert?

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

von Max G. (l0wside) Benutzerseite


Lesenswert?

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

von Guido S. (flintstone)


Lesenswert?

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

von Christian T. (shuzz)


Lesenswert?

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ß...

von CherryDT (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.