Forum: Mikrocontroller und Digitale Elektronik Taster entprellen, Spannung einschalten, Spannung messen, alles auf einmal


von Gerald M. (gerald_m17)


Angehängte Dateien:

Lesenswert?

Hallo,

für eine Waage (mit 4xAA Zellen = 4.8V-6.8V) würde ich gerne einen STM32 
Mikrocontroller (3.3V) und einen Taster nutzen.

Der Taster soll den Spannungsregler einschalten. Anschließend soll die 
Spannung über einen Spannungsteiler gemessen werden (noch während der 
Taster gedrückt wird). Danach soll der Mikrocontroller selbst den Regler 
"an" halten. Dabei soll der Mikrocontroller weitere Tastendrücke (kurz 
"Tara", lang "aus") mitbekommen und am Ende den Spannungsregler 
ausschalten.

Ich habe mir dabei die angehängte Schaltung überlegt.

Am Connector J3 soll der taster angeschlossen werden. Das 
"switch"-Signal kommt an einen Eingang am Mikrocontroller, das 
"PWR_En"-Signal kommt sowohl an den Enable-Eingang (high ab 2V) des 
Spannungsreglers sowie an den ADC-Pin des STM32.

Ablauf:
Zu Beginn ist PWR_En low, also gibt der Regler keine Spannung aus. Beim 
drücken auf den Taster liegt sowohl an "switch" als auch an "PWR_En" ein 
high an. Bei "switch" liegen durch die Zenerdiode immer etwa 3.3V an, 
egal wie voll die Batterien sind. Bei PWR_En liegt die halbe 
Batteriespannung an, jeoch maximal 3.3V.
der Regler gibt also eine Spannung aus, wodurch der STM32 in wenigen 
Millisekunden bootet. Nun kann zu Beginn die Leerlaufspannung an 
"PWR_En" gemessen werden, und eventuell später auf eine niedrige 
Batteriespannung hingewiesen werden. Nach dem Messen wird der Pin als 
Ausgang geschaltet und ein high wird ausgegeben, damit der 
Spannungsregler an bleibt. Der Taster kann nun losgelassen werden 
(sollte ja nur wenige Milisekunden dauern bis dahin). Die 3.3V am PWR_En 
haben auf das "switch"-Signal keinen Einfluss, da R4 mit R5+R6+R8 einen 
Spannungsteiler bildet, wodurch weniger als 0,3V am Pin anliegen sollte. 
Ein drücken auf den Taster ergibt jedoch ein entprelltes high Signal.

Meiner Meinung nach sollte alles so funktionieren. Sieht jemand spontan 
ob ich etwas nicht beachtet habe?

Danke schon einmal.

von Tannengrün (Gast)


Lesenswert?

wenn switch high wird blinkt d1 kurz auf.

evtl. sieht man eine kleine rauchwolke.

von Gerald M. (gerald_m17)


Lesenswert?

Switch ist ein Eingang am STM32. Der wird also nicht high.

von Sly_marbo (Gast)


Lesenswert?

Gerald M. schrieb:
> Nach dem Messen wird der Pin als
> Ausgang geschaltet und ein high wird ausgegeben,

Welcher Pin....zeichne doch mal alles, inklusive Taster und µC und 
Batterie. Das ist alles ziemlich wirr.

von Peter D. (peda)


Lesenswert?

Was sollen die beiden Z-Dioden, keine wird jemals leitend.
Um den Spannungsregler zu enablen, nimmt man eine simple Diode.
Den Spannungsteiler für den ADC mach man hochohmig (2*100k), dann 
passiert dem MC auch bei VCC = 0V nichts.
R8 ist überflüsig.

von Streuobstwiese (Gast)


Lesenswert?

Gerald M. schrieb:
> Danach soll der Mikrocontroller selbst den Regler
> "an" halten. Dabei soll der Mikrocontroller weitere Tastendrücke (kurz
> "Tara", lang "aus") mitbekommen

Der Taster startet den µC und der µC "drückt" anschließend den Taster, 
soll aber noch Dastendrücke erkennen... entweder ist das unglücklich 
ausgedrückt oder Murks ;)

von MaWin (Gast)


Lesenswert?

Gerald M. schrieb:
> Ich habe mir dabei die angehängte Schaltung überlegt.

Wegen 100k:10k kommt an switch nur 0.4 bis 0.6V an.
Vergiss deine 3.3V Z-Dioden, stell dir vor da wären LEDs, die begrenzen 
ähnlich schlecht.
Beachte, dass manche Eingänge am STM eine Eingangsschutzdiode haben, 
wenn dort Spannung an liegt (Taster gedrückt) also Strom über die Diode 
nach VCC fliesst und den uC schon mal Strom versorgt oder eben gar nicht 
über 0.7V kommt.
Zeichne dir die Dioden vom uC Pin zu VCC in deinrn Schaltplan und 
überlege, warum es dann nicht funktioniert.

Manche Eingänge vom STM erlauben aber 4V auch wenn VCC noch aus ist, 0V 
hat. Damit kann die Schaltung gehen (ist aber etwas aufwändig). Schlag 
nach, welche Eingänge "5V tolerant" sind.

von MaWin (Gast)


Lesenswert?

MaWin schrieb:
> Damit kann die Schaltung gehen (

Nee, weil aus R8:R7 nur 1.1V an Enable kommen, weniger als 2V.

von Gerald M. (gerald_m17)


Angehängte Dateien:

Lesenswert?

OK, habe nun die Schaltung überarbeitet.
Der STM32 hat quasi ausschließlih 5V tolerante Pins, es reicht also 
alles auf <5V zu begrenzen.

Situation1: Knopf initial gedrückt --> Batterie-Spannung kann an PWR_En 
gemessen werden
Situation2: Der Mikrocontroller übernimmt das halten.
Situation3: Der Taster wird gedrückt während alles an ist.

von Audi10 (Gast)


Lesenswert?

Warum machst du mittels Dioden nicht ein OR für das Power_En? Also 
entweder die Taste OR der MCU aktiviert den Spannungswandler. Die Taste 
einlesen über einen separaten Pin.

von Gerald M. (gerald_m17)


Angehängte Dateien:

Lesenswert?

Audi10 schrieb:
> Warum machst du mittels Dioden nicht ein OR für das Power_En? Also
> entweder die Taste OR der MCU aktiviert den Spannungswandler. Die Taste
> einlesen über einen separaten Pin.

Das ist natürlich auch eine gute Idee.

Habe jetzt etwas herumgespielt und die Schaltung im Anhang tut das 
gewünschte (die Schalter sollen nur das High-z Verhalten widerspiegeln). 
Ich schaue wenn ich in der Schaltung sonst noch Dioden habe, werde ich 
wahrscheinlich Dioden nutzen, so hat es aber den Charme dass ich die 
Bauteile sowieso schon in der BOM habe.

von Frage (Gast)


Lesenswert?

Das ist die Schaltung eines Idioten

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.