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
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.
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
> 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 ...
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.
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
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.
@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
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.
> 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.
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.
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?
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.
@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
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
;-)
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
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.
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
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?
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
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
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
@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
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.
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 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.