Forum: Mikrocontroller und Digitale Elektronik PIC - Vergänglicher Zustandsspeicher


von Bushracer (Gast)


Lesenswert?

Hallo liebe Elektronikfachleute,

ich habe ein spezielles Problem und möchte euch um eure Meinung bitten:

Anwendung:
- Ich entwickle gerade ein Gerät, welches im Auto an der 
Spannungsversorgung der Blinkleuchte angeschlossen wird. Dieses Gerät 
besitzt demnach keine dauerhafte Spannungsversorgung, sondern lediglich 
das Blinksignal (333ms ON / 333ms OFF).
- Das Gerät enthält einen PIC16F690, der diverse Aufgaben übernimmt, 
welche hier jedoch unerheblich sind.
- Die Spannungsversorgung des PIC erfolgt über einen LDO, jedoch müssen 
aus diversen Gründen die Kapazitäten im Gerät extrem niedrig gewählt 
werden. Es ist daher vollkommen unmöglich den PIC während der OFF-Phase 
(333ms) durchweg mit Spannung zu versorgen. Demnach sinkt die Spannung 
in der OFF-Phase nach ca. 20ms unterhalb von 2V un der PIC schaltet ab!


Problemstellung:
Mein Problem ist folgendes: Ich muss eine Möglichkeit finden, wie ich 
feststellen kann, ob innerhalb der letzten 2...10s geblinkt wurde. Die 
Genauigkeit ist jedoch relativ unwichtig. Der PIC muss über diesen 
Umstand informiert sein, um korrekte Entscheidungen treffen zu können.
Da der PIC - wie schon erklärt - während der OFF-Phase keine 
Spannungsversorgung besitzt und auch niemals besitzen wird --> bitte 
keine Energiespeicher vorschlagen - kann ich diese Fragestellung nicht 
durch den PIC klären lassen (denke ich zumindest).


Ich habe einen Vorschlag zur Lösung dieses Problems, jedoch bin ich mir 
bei mehreren Punkten unsicher:

Vorschlag:
- Mit einem als Output konfiguriertem Port des PIC lade ich einen 
Kondensator auf VDD auf (natürlich über einen Vorwiderstand).
- Die Entladung des Kondensators (z.B. 1uF) erfolgt ausschließlich durch 
einen genau definierten Entladewiderstand (parallel zum Kondensator, 
z.B. 2,2MOhm).
- Sobald der PIC startet konfiguriere ich den Port als Eingang (TTL) und 
frage diesen ab. Sollte die Spannung noch oberhalb von 2V liegen, dann 
wurden vor kurzem geblinkt. Sollte die Spannung bei unter 0,8V liegen, 
dann wurde bereits seit längerer Zeit nicht mehr geblinkt.
- Nach Abschluss dieser Abfrage konfiguriere ich den Port wieder als 
Output und lade den Kondensator wieder auf für die nächste Abfrage nach 
dem nächsten Start.


Wie bereits erwähnt sind mir hier ein paar Dinge unklar:

Potentielle Probleme:
- Die Eingänge vom PIC sind mittels Schutzdioden gegen VDD und VSS 
verbunden. Sobald die Eingangsspannung des PIC zusammenbricht (in der 
OFF-Phase) sollte sich der Kondensator doch über die Schutzdiode gegen 
VDD entladen, oder? Da der Port jedoch zum Ausschaltzeitpunkt als 
Ausgang konfiguriert ist könnte es jedoch auch klappen?!?
- Wie verhält sich der Port, wenn der PIC spannungslos ist? Fließt ein 
Strom über irgendwelche Schutzdioden und entlädt den Kondensator?
- Die Eingangsspannung des PIC steigt leider relativ langsam von ca. 2V 
(Start des PIC) auf 5V an (innerhalb von ca. 3ms). Es geht leider nicht 
anders bzw. schneller, da das Netzteil des Geräts eine Art Softstart 
benötigt... Im Einschaltmoment würde ich den Port als Eingang 
konfigurieren. In diesem Fall sind die Schutzdioden nach VDD und VSS 
definitiv aktiv! Zumindest jetzt bestünde doch das Problem, dass sich 
der Kondensator innerhalb der Zeitspanne, in der VDD unterhalb der 
Kondensatorspannung liegt, über die Schutzdiode nach VDD entladen 
würde!?! Oder liege ich falsch?


--> Kann mir Jemand meine Fragen (unter "Potentielle Probleme") 
beantworten bzw. meine Befürchtungen mittels eigener Erfahrungen 
kommentieren?
--> Hat Jemand einen einfachen Alternativvorschlag, wie die Aufgabe zu 
lösen ist? Gerne auch auf eine vollkommen andere Art, jedoch mit 
möglichst wenig zusätzlichem Hardwareaufwand (Platzprobleme)?

Vielen Dank im Voraus für eure Hilfe

Viele Grüße
Bushracer

von auch (Gast)


Lesenswert?

Solange du uns nicht verraten willst, für was deine tolle Schaltung gut 
sein soll, solange wirst du auch keine sinnvollen Antworten bekommen. 
Zumindest nicht von mir, denn meine Glaskugel ist gerade zum Service.

von Jonathan S. (joni-st) Benutzerseite


Angehängte Dateien:

Lesenswert?

Das Ding hier sollte sich seinen Zustand auch ohne Stromversorgung 
merken können.


Gruß
Jonathan

von Peter D. (peda)


Lesenswert?

Bushracer schrieb:
> - Die Spannungsversorgung des PIC erfolgt über einen LDO, jedoch müssen
> aus diversen Gründen die Kapazitäten im Gerät extrem niedrig gewählt
> werden.

Gehts auch konkreter, wieviel pF, nF oder µF denn?

Es dürfte ja nur der Aufladestrom wichtig sein und den kann man einfach 
mit einem Vorwiderstand (z.B. 1k) begrenzen.


> Es ist daher vollkommen unmöglich den PIC während der OFF-Phase
> (333ms) durchweg mit Spannung zu versorgen.

Warum nicht?
Ich kenne jetzt diesen PIC nicht, aber MCs haben in der Regel 
Stromsparmodi, wo sie nur wenige µA verbrauchen. Mit 100µF sollten 10s 
leicht zu überbrücken sein.


Peter

von tt2t (Gast)


Lesenswert?

> Ich kenne jetzt diesen PIC nicht, aber MCs haben in der Regel
> Stromsparmodi, wo sie nur wenige µA verbrauchen. Mit 100µF sollten 10s
> leicht zu überbrücken sein.

Na klar hat der einen  Stromsparmodus. Ohne Takt im SLEEP braucht er 
weniger als 1 µA, in Arbeit bei 32kHz Takt braucht er ca 30-60 µA, bei 8 
MHz Takt braucht er ca 1,5 mA. Das kann man doch mit einem Goldcap gut 
überbrücken ...

von Chris (Gast)


Lesenswert?

Eine zusätzliche Diode sowie 10µF Kondensator zusätzlich zu den 
vorgeschriebenen zwei! Entstörkondensatoren sollten reichen.
Zwei, weil normalerweise wird einer weggelassen, aber im Automotiv
und anderen Anwendung darf er nicht weggelassen werden.
Nach dem der uC fertig gerechnet hat, einfach in den Sleep modus gehen.
Der Interrupt weckt den uC dann wenn Spannung wieder da ist.

von Bushracer (Gast)


Lesenswert?

Hallo,

erstmal vielen Dank für eure Antworten.

Zum Thema Stromversorgung des MCU:
Leider kann ich den MCU nicht bis zur nächsten ON-Phase mit Strom 
versorgen / die Spannung aufrecht erhalten, weil:
1. Neben dem MCU hängen auch noch andere Bauteile an der 
Spannungsversorgung und werden die Ausgangskondensatoren nach ca. 20ms 
"leersaugen", egal wie sparsam der MCU ist.
2. (Bezug auf die Antwort von Chris) Eine Diode, und einen eigeneten 
Energiespeicher für den MCU kann ich nicht verwenden, denn ich benötige 
eine präzise VDD als Referenz zur ADC. Die Diode, welche den MCU vom 
Rest der Verbraucher abschottet würde die Referenzspannung verfälschen.
3. "Große" Kapazitäten kann ich ebenfalls nicht verwenden (10uF sind 
viel zu viel!). Das Gerät muss einen extrem niedrigen Einschaltstrom 
besitzen. Würde man den Energiespeicher über einen Widerstand nur 
langsam aufladen, ... dann entstünde eben ein schwächerer Aufladestrom 
über eine längere Zeit. Leider kann ich mir auch diesen, mehr oder 
weniger kontinuierlichen Zusatz-Strom nicht leisten.
4. Auch wenn es sowieso irrelevant ist: Das Aufwecken des MCU aus dem 
Sleepmodus mittels "Interrupt-Up-On-Change" geht nur über gewisse Pins, 
soweit ich informiert bin. Leider habe ich diese Pins nicht zur 
Verfügung (anderweitig genutzt)...
--> Dennoch danke für eure Vorschläge.

Zum Thema Schaltung mit MOSFETs:
Hallo Jonathan, vielen Dank für den Schaltungsvorschlag. Die Verwendung 
eines MOSFET zur Abfrage des gespeicherten Zustandes ist eine gute Idee, 
da kein Strom bentögigt wird um den MOSFET zu schalten und damit auch 
keine unkontrollierte Entladung des Kondensators erfolgt.
Der Vorschlag sollte umsetzbar sein, ist jedoch etwas aufwendig 
(Bauteilaufwand).

--> Gibt es noch weitere Vorschläge die !nichts! mit der Stromversorgung 
des MCU zu tun haben ;-)?
--> Hat Jemand eine Meinung zu meinem Vorschlag?
--> Sehr Ihr die gleichen Probleme?

Vielen Dank im Voraus für eure Antworten.

Bushracer

von Strippenzieher (Gast)


Lesenswert?

Uiuiui, was ganz Geheimes wird das. Bushracer wird wohl Millionen damit 
scheffeln!

Ja, mach das halt mit deinem Kondensator. Je nach Genauigkeitsbedürfnis 
nimmst du halt statt dem normalen Digitaleingang einen ADC-Eingang zur 
Abfrage.

Trotzdem riecht dein Gesamtkonzept sehr stark nach Pfusch - aber wenn du 
nicht sagst was du eigentlich machst, dann bekommst du hier eben nur 
Symptombekämpfungstipps und keine Lösungen für dein Problem.

von Michael D. (etzen_michi)


Lesenswert?

häng dir eine RTC mit einem anschluss für einen Backupakku dran, die 
Dinger verbrauchen ein paar nA bei 1,8V und laufen teilweise bis 1,5V

von Bushracer (Gast)


Lesenswert?

@Strippenzieher:
Danke für deine freundliche und fundierte Beurteilung meines Konzepts, 
welches du ja offensichtlich garnicht kennst.

Entgegen deiner Annahme ist an diesem Konzept nichts geheim! Ich 
verstehe jedoch nicht, wieso ich hier das ganze "Drumherum" beschreiben 
soll, obwohl es vollkommen irrelevant ist. --> Nur um deine Neugirde zu 
befriedigen?
Ich habe einfach ein konkretes Problem und dieses habe ich präzise 
beschrieben und hier um Hilfe gebeten. Eigentlich dachte ich mein 
Anfangsposting wäre ohnehin schon zu lang.

Außerdem habe ich auch keine Lust auf Diskussionen, die an ganz anderen 
Punkten ansetzen. Es gibt einige fixe Parameter, an denen nichts 
verändert werden kann. Würde ich hier das ganze Konzept beschreiben, 
dann würde permanent über Dinge diskutiert werden, welche garnicht 
verändert werden können. Diese Threat demonstriert genau jenes Problem 
ganz eindeutig:
In meinen Anfangstext habe ich doch veständlich beschrieben, dass es 
diverse Gründe gibt, wieso die Stromversorgung nicht aufrecht erhalten 
werden kann und das dieser Weg kein gangbarer Weg ist.
--> Dennoch kriege ich von 7 Antworten 3 Mal den Vorschlag die 
Stromversorgung zu verändern... (nichts für ungut, eure Vorschläge waren 
ja nett gemeint).

@Michael:
Danke für deinen Vorschlag. Werde mich mal informieren.

Viele Grüße
Bushracer

von Johann L. (radiostar)


Lesenswert?

Akku würde ich keinen nehmen: Akkus müssen geladen werden und da das 
nicht über die Spannungsversorgung erfolgen kann, muß man sie extern 
laden. Wären Lithiumbatterien was? Wenn Du damit nur dem µC im Standby 
versorgst, kannst Du locker 10 Jahre damit puffern.

von tt2t (Gast)


Lesenswert?

> 1. Neben dem MCU hängen auch noch andere Bauteile an der
> Spannungsversorgung und werden die Ausgangskondensatoren nach ca. 20ms
> "leersaugen", egal wie sparsam der MCU ist.
> 2. (Bezug auf die Antwort von Chris) Eine Diode, und einen eigeneten
> Energiespeicher für den MCU kann ich nicht verwenden, denn ich benötige
> eine präzise VDD als Referenz zur ADC. Die Diode, welche den MCU vom
> Rest der Verbraucher abschottet würde die Referenzspannung verfälschen.

Wenn Du eine Spannungsreferenz brauchst, dann nimm einen PIC16F1828 oder 
29, der ist pinkompatibel zum 16f690, schneller, braucht weniger Strom, 
hat eine interne Referenz etc...

Du glaubst doch nicht, dass die Vdd aus dem Bordnetz in irgendeiner Form 
stabil sind, die sind sowas von verseucht, das kannst Du vergessen. Also 
Diode vor den µC plus Goldcap an den µC.

Wenn Dein Problem mit Deinen Vorgaben nicht lösbar ist, musst Du halt 
flexibel sein. Du kannst auch nicht mit dem Fahrrad zum Mond fahren, 
auch wenn Du das vielleicht als Vorgabe hast.

von Der Rächer der Transistormorde (Gast)


Lesenswert?

Bushracer schrieb:
> Mein Problem ist folgendes: Ich muss eine Möglichkeit finden, wie ich
> feststellen kann, ob innerhalb der letzten 2...10s geblinkt wurde.



Ein moderner Pic nimmt im sleep Modus nicht mal 100 µA auf (gibt auch 
welche im nA Bereich). Den kann man periodisch aufwecken (dann zieht er 
kurz ein bischen mehr) einen Zähler ++en und dann wieder schlafen legen.

Die Energie bekommt er halt aus einem Kondensator. Wenn die 10 sec. 
vorbei sind dann schaltet er einfach ganz ab.

von Trinkler (Gast)


Lesenswert?

Bushracer schrieb:
> @Strippenzieher:
> Danke für deine freundliche und fundierte Beurteilung meines Konzepts,
> welches du ja offensichtlich garnicht kennst.

Man beurteilt eben, was man geliefert bekommt.

> Entgegen deiner Annahme ist an diesem Konzept nichts geheim! Ich
> verstehe jedoch nicht, wieso ich hier das ganze "Drumherum" beschreiben
> soll, obwohl es vollkommen irrelevant ist. --> Nur um deine Neugirde zu
> befriedigen?

Deswegen http://www.mikrocontroller.net/articles/Netiquette

> Ich habe einfach ein konkretes Problem und dieses habe ich präzise
> beschrieben und hier um Hilfe gebeten. Eigentlich dachte ich mein
> Anfangsposting wäre ohnehin schon zu lang.

Ja, war auch zu lang. Trotzdem hast du damit nicht viel gesagt.

> Außerdem habe ich auch keine Lust auf Diskussionen, die an ganz anderen
> Punkten ansetzen. Es gibt einige fixe Parameter, an denen nichts
> verändert werden kann. Würde ich hier das ganze Konzept beschreiben,
> dann würde permanent über Dinge diskutiert werden, welche garnicht
> verändert werden können. Diese Threat demonstriert genau jenes Problem
> ganz eindeutig:

Wurde ja schon gesagt - nicht das Problem wird gelöst, sondern an einem 
Symptom herumgedoktert.

> In meinen Anfangstext habe ich doch veständlich beschrieben, dass es
> diverse Gründe gibt, wieso die Stromversorgung nicht aufrecht erhalten
> werden kann und das dieser Weg kein gangbarer Weg ist.
> --> Dennoch kriege ich von 7 Antworten 3 Mal den Vorschlag die
> Stromversorgung zu verändern... (nichts für ungut, eure Vorschläge waren
> ja nett gemeint).

Was ist denn die Stromversorgung? Mikrocontroller betreiben geht, 
Kondensator laden geht nicht (außer an deinem Ausgangspin, da geht es 
dann auf einmal doch), Batterie für eine RTC geht anscheinend auch, 
warum als nicht eine Batterie für den Mikrocontroller?

von Der Rächer der Transistormorde (Gast)


Lesenswert?

Bushracer schrieb:
> - Die Eingänge vom PIC sind mittels Schutzdioden gegen VDD und VSS
> verbunden. Sobald die Eingangsspannung des PIC zusammenbricht (in der
> OFF-Phase) sollte sich der Kondensator doch über die Schutzdiode gegen
> VDD entladen, oder?

Ja, woher soll die Diode wissen das Vdd aus ist? Möglich wäre aber mit 
einem Transistor oder Fet den Eingang einfach abzuschalten.

Die Schaltung vom Joni weiter oben ist ein guter Anfang, braucht aber 2 
Ports. Das geht auch mit einem da man den C entladen kann wenn der 
Analogeingang als Ausgang geschaltet wird.

von Bushracer (Gast)


Angehängte Dateien:

Lesenswert?

@tt2t
Vielen Dank für die Informationen zu den alternativen PICs!
--> Wirklich sehr interessant! Werde mich umgehend informieren.
Du hast vollkommen Recht. Wenn das Problem nicht so einfach lösbar ist, 
dann muss ich entweder auf diese Funktion verzichten, oder zu anderen 
Mitteln greifen. Bis jetzt habe ich aber noch nicht aufgegeben und hoffe 
weiterhin auf eine einfache Lösung.

Hier ein potentieller Lösungsvorschlag: (siehe Anhang)
zu Bild 1) Für diese Schaltung benötigt man 2 Pins des PIC.
- Ist der Kondensator leer, dann fließt ein Ladestrom über die Basis des 
PNP-Transistors. Dieser wird leitfähig und am Pin B liegt VDD an "high".
- Ist der Kondensator noch weitgehend geladen und der Ladestrom über Rp2 
reicht nicht aus, um einen Spannungsabfall zu erzeugen, welche die 
Basis-Emitter-Diode des Transistors leitfähig werden läßt, ... dann wird 
der Transistor nicht leitfähig und an PIN B liegt VSS 
(Pull-Down-Widerstand von 33kOhm).
- Die Diode verhindert, dass sich der Kondensator während der OFF-Phase 
entlädt.
zu Bild 2) Es wird kontinuierlich mit f=1,5Hz geblinkt. Der Kondensator 
hat keine Zeit sich zu entladen, der Transistor wird nicht leitfähig, 
der Pin B bleibt auf "low".
zu Bild 3) Es wird nur einmalig geblinkt, anschließent wird für ca. 6s 
nicht geblinkt. In dieser Zeit entlädt sich der Kondensator, der 
Transistor wird nach dem einschalten der Spannung leitfähig (Ladestrom 
über die Basis) und der Pin B wird auf "high" gezogen.

Mit dieser Schaltung könnte man während der ersten 50ms mittels 
Pin-Abfrage feststellen, ob kürzlich geblinkt wurde (Pin-B=low), oder ob 
bereits längere Zeit nicht geblinkt wurde (Pin-B=high).
Leider benötigt man für diese Schaltung auch "realtiv" viele Bauteile...
Hat Jemand ein Kommentar zu dem Vorschlag?

Viele Grüße
Bushracer

von POTATOOOOHOOHO (Gast)


Lesenswert?

Was dein PIC mit seinen I/Os macht wenn die Stromversorgung verschwindet 
kann ich dir leider nicht sagen, aber alls allgemeinen Anmerkung, oder 
auch für Threadlesen die ein ähnliches Problem haben:
es gibt auch Controller mit einem Backup-Power Pin, dieser dient der 
Stromversorgung des Controllers wenn die eigentlich Versrorgung 
einbricht, um in diesem Fall die Zeitbasis aufrecht zu erhalten (20nA 
können dafür ausreichend sein, je nach Controller halt auch mehr). Dies 
ist ja eigentlich genau das was du willst, einzigst das du keinen 
Kondensator oder Batterie zur Versorgung verwenden willst.
Was die PICs in die Richtung können weis ich nicht, und der Umstieg auf 
einen total anderen Controller/Hersteller ist natürlich auch nicht 
unbedingt schnell erledingt.

Mehrere MegOhm als Entladewiderstand ist natürlich sehr gewagt, aber da 
dich eine Toleranz von von 1-2 Sekunden nicht stört, sollte das sicher 
Umsetzbar sein. Ich würds an deiner stelle einfach mal testen, so ein 
Layout ist doch in nem Stündchen gemacht. Oder du testest gleich mehrere 
Schaltungsalternativen auf einem, dann dauerts vielleicht 2 Stündchen 
;-)

von Bushracer (Gast)


Angehängte Dateien:

Lesenswert?

Hallo POTATOOOOHOOHO,

danke für deine Antwort. Sehr interessante Information mit dem 
Backup-Pin. Werde die Mircochip-Datenblätter nach einer solchen Funktion 
durchsuchen.

Auch vielen Dank für deinen Vorschlag zur sinnvollsten Vorgehensweise. 
Vermutlich werde ich es genauso machen. Auf Basis der Posts von Jonathan 
habe ich noch einen Vorschlag erstellt (siehe Anhang). Ich werde wohl 
die drei möglichen Ansätze (nur C, PNP, NMOS) in der Praxis testen.

Viele Grüße
Bushracer

von tt2t (Gast)


Lesenswert?

Mir ist noch etwas eingefallen:

Wie versorgst Du denn den µC aus dem Bordnetz? Deinem 1. Posting 
entnehme ich, dass er direkt am Blicklicht hängt. Das sind aber 12 V 
(bzw. 24 V bei LKW). Die mussts Du erst mal auf die 5 V bzw. 3.3 Volt 
für den µC runterbringen. Womit? Am besten mit einem Längsregler, der 
braucht aber unbedingt einen Elko am Eingang, der puffert Dir schon mal 
eine gewisse Zeit. Wenn Du am Ausgang auch noch einen Elko oder einen 
Goldcap anbringst, hast Du locker die Blinkpause überbrückt.

von Bernhard S. (b_spitzer)


Lesenswert?

Bushracer schrieb:
> "Große" Kapazitäten kann ich ebenfalls nicht verwenden (10uF sind
> viel zu viel!). Das Gerät muss einen extrem niedrigen Einschaltstrom
> besitzen.
Dass Du 10µF (und mehr) auch in 1206 bekommst, ist an Dir bisher 
offenbar vorübergegangen.
Extrem niedrig ist ja relativ. Der uC alleine kommt ja mit wenigen uA 
aus. Die Bordspannung von 14V muss runter auf 5V oder 3,3V des 
Controllers. Also sitzt da mindestens 1 Spannungsregler mit 
Kondensatoren. (bei einem HV-Controller für Automotive sollte es 
stattdessen einen Brown-Out detektor geben, den du nutzen kannst). Dann 
einen Controller-Pin mit der Eingangsspannung über einen geeigneten 
Spannungsteiler mit Schutzbeschaltung anschließen. Wenn die 
Eingangsspannung wegbricht bekommst Du 0 an dem Eingang und dann hast Du 
ja noch 20ms bis der Controller wegbricht, in der Zeit schreibst Du die 
aktuelle Uhrzeit Deiner RTC in ein EEPROM. Beim nächsten "aufwecken" 
liest Du die RTC und vergleichst mit der letzten Ausschaltzeit.

Wenn Du keine RTC hast, dann bleibt nur ein extrem hochohmiges RC-Glied, 
das über einen Parallelwiderstand entladen wird. Die Restspannung beim 
Einschalten zeigt Dir die Vergangene Zeit, neu aufladen wird über einen 
MOSFET per Software geschaltet.

> weniger kontinuierlichen Zusatz-Strom nicht leisten.
Bei 4x 21W Blinklampen im KFZ wäre mal interessant, warum denn nicht.

unn tschuess
Bernhard

von Der Rächer der Transistormorde (Gast)


Lesenswert?

Bushracer schrieb:
> Ich werde wohl
> die drei möglichen Ansätze (nur C, PNP, NMOS) in der Praxis testen.

Ohne vorher die Eingangsimpedanz und Kapazität des Analogeinganges im 
Modell mit zu simulieren?

von Chris (Gast)


Lesenswert?

Du brauchst die Diode, sonst saugt dir die Blinklampe über den 
Spannungsregler die
Energie des Pics aus dem µC über die VCC pins raus.
Wenn du was vergleichbares mit LM317 hast, dann kannst du den vref pin 
auch
nach der Diode ableiten und dann hast du einen konstante Spannung mit 
der
Genauigkeit des verwendeten Spannungsreglers.

Du kannst jeden Pin für die Spannungseinspeisung des Pics nehmen, nur 
nicht
VCC,GND und MCRL. Wichtig ist, daß die Spannung nicht unter 1.2V 
runtergeht.
Deine Schaltpläne zeigen, daß du keine so große Ahnung hast und deshalb 
wäre
es warscheinlich daß du den falschen Ansatz verfolgst. Wenn du wirklich 
eine
Lösung suchst, poste deine wirkliche Schaltung und was du damit machen 
willst, du sagst ja selbst, das ist nichts geheimes.

Ansonsten, nimm internes und externes EEprom, wenn internes defekt ist,
benutze das externe. Flash selbst schreiben würde ich unterlassen, ist
im Automotive Bereich zu gefährlich. Und plane eine Back-Kanal ein,
damit du mit dem uC kommunizieren kannst indem du das Relais rausnimmst
und ein speziellen Debugstecker reingibst, ohne was großartiges zu 
demontieren, aber warscheinlich fehlen dir dazu auch die Pins, so 
zumindest
deute ich meine Glaskugel.

Gruß
Chris

von Peter D. (peda)


Lesenswert?

http://www.mikrocontroller.net/attachment/143235/1.png

Aus dieser Schaltung nimmt man nur R1,C1,D1, der Rest fällt weg.

Die Diode geht auf einen Komparatoreingang.
Nach dem Reset setzt man den internen Pullup, damit die Diode leitet und 
vergleicht mit der internen Bandgap-Referenz, wie weit der Kondensator 
noch geladen ist. Dann setzt man den Pin auf Ausgang high, um den 
Kondensator wieder voll aufzuladen.
R1,C1 dimensioniert man so, daß nach der gewünschten Zeit die 
Komparatorschwelle unterschritten wird.


Ich würde allerdings auch mit Diode+Elko an VCC den MC einfach weiter 
laufen lassen.
Dann muß man nichts berechnen, sondern kann die Wartezeit bequem in 
Software vorgeben.


Peter

von Bushracer (Gast)


Lesenswert?

Hallo,

@tt2t:
Natürlich versorge ich den MCU mittels Linearregler. Genau gesagt 
verwende ich einen LDO und zwar den LP2950. Dieser LDO besitzt einen 
extrem niedrigen Ruhestrom von nur max. 100uA, benötigt nur 1uF als 
Eingangskapazität sowie 1uF als Ausgangskapazität für einen stabilen 
Betrieb. Die Genauigkeit der Ausgangsspannung liegt bei 1% und ist daher 
hervorragend als Referenzspannung für den MCU geeignet. Durch den 
Verzicht auf eine separate Referenzspannungsquelle amortisiere ich die 
relativ hohen Kosten für den LDO (im Vergleich zu einem L78L05, LM317, 
...).
Wie du siehst habe ich auch hier bereits konsequent auf die 
Ruhestromaufnahme sowie die Größe der Kapazitäten geachtet.

@Der Rächer der Transistormorde:
Der Eingangsstrom des des MCU-Pins liegt bei 1uA. Es ergibt sich damit 
am Pin eine Spannung von nur 4,967V (anstatt von 5V).
Die Eingangskapazität des Pins liegt bei 50pF. Im Vergleich zur 
Kapazitätstoleranz des 10nF-MLCC macht sie weniger als ein zwanzigstel 
des Gesamtfehlers aus.
--> Aus diesem Grund habe ich in der Simulation bzw. der Darstellung der 
Schaltung darauf verzichtet. Trotzdem danke für den Hinweis.

@Bernhard Spitzer:
Danke für den Hinweis auf einen MLCC mit 10uF. Das ist mir 
selbstverständlich bekannt. Mit der Größe meine ich nicht die 
geometrische Größe, sondern den Wert des Bauteils ;-). In der gesamten 
Schaltung benutze ich in Summe ca. 3uF (am LDO sowie einige 
Abblockkondensatoren).
Maximal könnte ich weitere 1uF verwenden, allerdings dürfte ich diese 
nur langsam (im Bereich von min. 30ms) aufladen, weil ich ansonsten die 
Anforderungen an den Ruhestrom und den Einschaltstrom nicht mehr 
einhalten kann.

Erklärung:
Ihr habt es so gewollt! Jetzt folgt eine Erklärung für die Notwendigkeit 
der niedrigen Stromaufnahme. Wahrscheinlich werde ich diese Erklärung 
noch bereuen und alle Leser werden nurnoch über den "unsinnigen Mist" 
diskutieren, den ich hier jetzt schreibe.

Der Grund für diese Anforderung (niedriger Ruhestrom und niedriger 
Einschaltstrom) hört sich vollkommen verrückt an, ist aber leider eine 
Tatsache. Wenn die Blinkleuchten (21W-Glühlampen) defekt sind (I=0mA), 
dann ist der Fahrzeughersteller verpflichtet eine Warnmeldung 
herauszugeben (Blinker defekt, z.B. über eine erhöhte Blinkfrequenz, 
...).
Mein Gerät, welches zu diesem Zeitpunkt weiterhin an der Blink-Leitung 
hängt, darf mit seiner Stromaufnahme natürlich nicht verhindern, dass 
eine solche Fehlermeldung der defekten Beleuchtung generiert wird.
Manche Fahrzeughersteller (insbesondere Audi, VW, Skoda, Seat) haben die 
Schaltschwelle für die Detektion eines Fehlers auf nur wenige mA (ca. 
4mA) gelegt, mit der Begründung, dass die Fahrzeuge damit auch 
kompatibel zu LED-Leuchten sein sollen. 4mA wäre jetzt nicht sonderlich 
problematisch, wenn diese Stromaufnahme nicht während des 
Einschaltmoments gemessen würde (nach wenigen 100us), also während sich 
alle Kapazitäten im Gerät aufladen. Genau aus diesem Grund dürfen also 
keine "großen" Kapazitäten enthalten sein. Wie bereit erklärt liegt 
meine persönliche Schmerzgrenze bei zusätzlichen 1uF.

So und jetzt tut mir bitte den Gefallen und kommentiert nicht dieses 
total dämliche Prüfsystem, welches bei Strömen ab 4mA eine 
funktionierende Leuchte erkennt! Ich weiß: Das System ist dämlich, 
Wassertropfen und Kriechströme, ... --> Es ist nicht mein System, 
sondern ein im Markt verbreitetes System, an das ich mich anpassen muss, 
auch wenn es totaler Müll ist!

-------------------------------

Es wäre schön, wenn wir das Thema "Stromversorgung" mittels Goldcaps, 
Akkus, Litium-Batterien, großer Elkos, großer MLCCs, ... hinter uns 
lassen könnten. Kann jemand etwas zu dem Verhalten des PICs sagen, wenn 
VDD=0V?

Viele Grüße
Bushracer

von Bushracer (Gast)


Lesenswert?

@Peter Dannegger:
Super Peter! Vielen Dank für deine Antwort, genau auf einen solchen 
Vorschlag habe ich gehofft!!!
Er kostet kaum Platz, nur wenige Bauteile werden benötigt und ich habe 
eine saubere Entscheidungsschwelle (Bandgapreference anstelle der 
Threshold-Voltage des MOSFET). Werde deinen Vorschlag in Kürze 
ausprobieren.

Viele Grüße
Bushracer

von chris u. (user_chris)


Lesenswert?

Hier zwei mögliche Ansätze, sollte dein aktueller nicht funktionieren.
Am MCLR Eingang hat der Pic keine Diode zu VDD.
Kondensator (VDD-GND) sowie Widerstand zu VDD.
Der Widerstand läd den Kondensator auf, sowie entläd ihn, keine
ungewollten Spannungsverlust durch clamp diode.
Dein Programm schaut nach dem Einschalten nach, ob MCLR welcher als
digitaler Input geschaltet ist, high oder low ist. Durch getimtes
mehrmaliges Nachsehen kannst du auch den aktuellen Ladungsstand 
ermitteln,
dir ist ja bekannt wie schnell sich der Kondensator aufläd.

Der zweite Ansatz wäre, den Pic über ein I/O Pin zu speisen, VCC Pin nur
an einem/zwei Kondenatoren zu betreiben ohne effektiv an VCC 
angeschlossen
zu sein.

von Peter D. (peda)


Lesenswert?

chris user schrieb:
> Dein Programm schaut nach dem Einschalten nach, ob MCLR welcher als
> digitaler Input geschaltet ist, high oder low ist.

Laut Datenblatt irgendwas zwischen 0.2 VDD und 0.8 VDD.
Das dürfte deutlich ungenauer sein, als die Schwellspannung einer Diode 
(~0.6V) abzuziehen.


Peter

von chris u. (user_chris)


Lesenswert?

Von der Diode meine ich die clamp Diode im Pic.
Diese leert dir den Kondensator. Du kannst das mit einem Widerstand
begrenzen, musst dann aber noch eine Diode von VCC zum Kondensator 
einbauen,
ansonsten wird der Kondensator viel zu wenig geladen wenn du ein 
normalen
I/O Pin nimmst. Du musst bedenken, der Pic ist stromlos und du hast eine 
Diode vom I/O Pin zum VCC Pin und eine Diode vom PSU out zum PSU IN.
Ok, die Lösung mit einem normalen I/O braucht nur eine Diode mehr, der
Nachteil ist aber, daß die Spannung abhängig vom aktuellem Portzustand 
des
Pic ist, bei der Lösung mit dem MCLR Pin hingegen nicht.

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.