Guten Tag liebe Forumbesucher,
ich habe ein Problem. Ich habe auch schon das Forum durchsucht und auch
einige Threads gefunden, die meinem Problem änhlich sind. Trotzdem
wollte ich noch einmal das Problem hier angehen.
Bei einem AT90CAN128 sollen Daten aus dem RAM bei Spannungsausfall ins
EEPROM gesichert werden. Nach Recherche hier im Forum habe ich mich für
die Variante mit Stützkondensator entschieden (siehe Anhang).
1) Ich habe die Schottky-Diode (D10) eingesetzt, damit der
Stützkondensator C5 nicht auch den ADC7 PIN stützt. Denn der soll ja den
Spannungsausfall detektieren. Ist das so prinzipiell korrekt? Kann der
Spannungsabfall an der Diode (0,2-0,3V) zum Problem werden?
2) Der Diodenabfall ist eh ein Problem für mich, denn ich hätte schon
gern 5V für die Schaltung, da diese Spannung (dann ja nur 4,8V) auch die
Vergleichsspannung für den ADC festlegt! sollte ich vielleicht einen
"5,2V" Spannungsregler nehmen?
3) Hat jemand eine andere Schaltungsidee mit Stützkondensator? Eine
Batterie ist nicht umsetzbar, da in der Aufgabenstellung lediglich ein
Netzteil vorgesehen ist.
4) Könnte die Größe des Kondensator (--> Einschaltstrom) irgendwann ein
Problem werden ? Kennt jemand Möglichkeiten zur Begrenzung?
Falls jemand für eine oder mehrere Fragen Tipps geben könnte, wäre ich
froh:)
viele Grüße, Martin
Warum misst Du die Spannung nicht VOR dem Spannungsregler?
So brauchst Du keine Diode, hast keinen Spannungsabfall, hast eine
korrekte Referenz für den AD-Wandler.
Ich würde die Messpannung noch vor dem Gleichrichter abgreifen.
Diode als Einweggleichrichter, kleiner Kondensator zur Glättung,
Zenerdiode samt Vorwiderstand zum Einstellen
bzw. Begrenzung dieser Hilfsspannung und ein Widerstand um
die Spannung zu belasten. Dann ab damit an einen µC Pin.
Muss noch nicht mal ein analoger Eingang sein.
Fällt die Versorgungsspannung aus, lutscht der Belastungswiderstand
den Kondi leer, während der 100µF im Hauptzweig den µC noch eine
zeitlang versorgt.
Anstatt ständig den ADC zu samplen, würde ich den in der Zeichnung als
ADC7 gekennzeichneten Pfad einfach zusammen mit den 4.8 VDC hinter der
Schottky auf den ADV-internen Comparator legen und einen Interrupt
auslösen, wenn die Betriebsspannung unter die besagten 4.8 VDC fällt.
Das Retten des Speichers kannst Du dann in der ISR machen und bist dort
gleichzeitig vor unerwünschten Interrupts sicher...
Hallo!
Nur so zur Info bei unseren aktuellen Projekten stüzen wir nicht mehr
den RAM sondern legen wichtige Daten in einen externen FRAM ab. Hat den
Vorteil dass die Spannung sogar beliebig lange Ausfallen kann. Bisher
hatten wir mit einer Goldcap nur rund 4-8h.
Schau mal bei http://www.ramtron.com/
Die Steine kriegt mer z.B. bei farnell.
MfG Owz
Eine Diode zwischen Gleichrichtung und Siebung. Reihenwiderstand und
Z-Diode auf einen externen Interrupt. Kommt nach 10ms kein Int, sofort
speichern.
MW
Ein kleiner Widerstand vor dem Kondensator entschärft den Einschaltrom.
Es dauert dann halt nur etwas länger, bis der Kondensator voll geladen
ist.
Ich würde den Spannungseinbruch nicht mit dem ADC erfassen, sondern mit
einem Komparator, das geht schneller, und Zeit kann hier entscheidend
sein.
ich weiß nicht so recht, ob die Zeit für das Speichern auf EEPROM
reicht. datenblatt lesen und Anzahl Bytes festlegen, die gesichert
werden sollen.
Ich hätte da doch Bedenken.
Fram sind zwar schöne Bausteine, aber parallel werden zu viel Pins
benötigt und seriell ist das ein Soic Gehäuse, nicht gerade hobby
gehäuse.
mfg
@ Wolfram Quehl (quehl)
>Fram sind zwar schöne Bausteine, aber parallel werden zu viel Pins>benötigt und seriell ist das ein Soic Gehäuse, nicht gerade hobby>gehäuse.
SOIC kein Hobbygehäuse? Bei 1,27mm Pitch? Bist du Holzfäller?
MfG
Falk
ich habe noch nirgends eine Leiterplatte mit 1,27mm pitch gesehen und
ein Steckbord auch nicht. Mit der Herstellung von geätzten Leiterplatten
habe ich keine Erfahrung. Bin da nicht rangegangen, weil das durch
Stehen schlecht wird und ich nicht viele Platten mache.
mfg
Direkt von einem Pin am Trafo über einen Widerstand von ca. 47 kOhm
(oder mehr) auf ein Pin am Mikrocontroller. Die internen Clamping-Dioden
des AVR reichen da locker.
Falls man keine weiteren Verbraucher auf der 5-Volt-Seite hat, so dass
Strom über die 47k die 5 Volt ansteigen lassen kann, eben einen
entsprechenden Widerstand noch von Vcc nach GND einsetzen, dann ist es
Dau-Proof, egal ob der Controller aktiv ist oder im Power-Down-Mode ist.
Vielen Dank für die Antworten,
Der Tipp mit dem Komparator macht absolut Sinn. Denn: warum noch
ADC-Wandlung ??
Zu den Tipps mit dem Abgreifen der Spannung vor dem Spannungsregler:
Das macht Sinn. Zumindest brauche ich dann keine Diode mehr hinten dran
und hätte 5V als Versorgung. Jedoch: Prüfe ich ja nicht mehr direkt am
uC! (ok, die Diode hinten kann auch kaputt gehen :) ). Aber vielleicht
ist das ja nicht notwendig.
Zur Speicherzeit: Laut Datenblatt 8,5 ms/byte. bei 500Byte sind das etwa
5s, die man einplanen sollte. Ich denke, dass sollte doch mit Goldcaps
machbar sein. Jedenfalls bei 8Mhz Taktung ist es wohl kein Problem. Bei
16Mhz und dem damit verbundenen höheren Strom (29mA bei 5V), der in den
uC fließt - komme ich auf einen Innenwiderstand des uC von circa 17Ohm.
Bei einem Innenwiderstand der Goldcaps von 30 Ohm und müsste ich ja
schon etwa 5,3 V aus dem Goldcap kriegen um 4,5 V (minimale Spannung bei
16Mhz laut Datenblatt) an den uC zu bekommen (Spannungsteiler). Einzige
Möglichkeit wäre da geringerer ESR, oder? Gibt es sowas aber bei
Goldcaps ??? Die Elkos werden ja total groß und teuer und so ... mmh ??
Vielen Dank an Euch
@ Martin Parr (Gast)
>Zur Speicherzeit: Laut Datenblatt 8,5 ms/byte. bei 500Byte sind das etwa>5s, die man einplanen sollte. Ich denke, dass sollte doch mit Goldcaps
Das ist eine EWIGKEIT, da kann vieles passieren. Sowas speichert man auf
jeden Fall im Page Mode, dann kann man bei gleicher Zeit von 8,5ms je
nach Typ 8..32 Byte schreiben, was die Speicherzeit um den Faktor 8..32
verringert!
>machbar sein. Jedenfalls bei 8Mhz Taktung ist es wohl kein Problem.
Das Problem ist das relativ langsame Speichern des EEPROMs, weniger die
Datenübertragung zum EPROM.
>uC fließt - komme ich auf einen Innenwiderstand des uC von circa 17Ohm.
???
>Goldcaps ??? Die Elkos werden ja total groß und teuer und so ... mmh ??
Deswegem muss man schlicht schneller speichern, bzw. VOR dem
Spanungsregler einen Elko dranmachen, der 1..X Volt Spannung verlieren
darf, eher die Spannung NACH dem Spannungsregler kritisch wird. Deshalb
die Diode und Spannungsmessung mit Comparator und Interrupt VOR der
Diode!
Und wer grosse Datenmengen in 10ms speichern will, dafür git es
spezielle SRAM/EEROM ICs, die können den GESAMTEN Speicher (mehrere
KByte!) parallel in 10ms speichern.
MFG
Falk
>Das ist eine EWIGKEIT, da kann vieles passieren. Sowas speichert man auf>jeden Fall im Page Mode, dann kann man bei gleicher Zeit von 8,5ms je>nach Typ 8..32 Byte schreiben, was die Speicherzeit um den Faktor 8..32>verringert!
Danke für den Hinweis! :)
>uC fließt - komme ich auf einen Innenwiderstand des uC von circa 17Ohm.
Laut Datenblatt (Seite 367) zieht der uC bei 16Mhz Taktung bei 5V genau
29mA. Ich habe jetzt einfach 5V/29mA gerechnet. Ich bin jetzt nicht der
Elektronik-Guru, aber ist das nicht so ungefähr? R=U/I. Oder habe ich
einen Denkfehler? Wenn bei 5V genau 29mA fließen, dann ist doch der
Widerstand genau 5V/29mA = 172,4 Ohm ?
>>machbar sein. Jedenfalls bei 8Mhz Taktung ist es wohl kein Problem.>Das Problem ist das relativ langsame Speichern des EEPROMs, weniger die>Datenübertragung zum EPROM.
Das meinte ich so: Laut Datenblatt beträgt die minimale
Versorgungsspannung bei 16Mhz 4,5 V . Bei 8Mhz sind bereits 2,7V
Versorgung ausreichend. (siehe Anhang). Wenn ich mir jetzt den
Kondensator vorstelle mit Ersatzserienwiderstand und dazu in Reihe den
Mikrocontroller, dann habe ich doch folgendes, oder?
___ ___
---||--A--|____|--B--|____|----|
C ESR Ruc Masse
Der Mikrocontroller zieht bei 5V ungefähr 29mA -->170 Ohm. Der ESR ist
30hm. Ist das nicht ein normaler Spannungsteiler ? Wenn jetzt bei 16Mhz
4,5V an Punkt B anliegen müssen, dann müssten doch an A nach dem
Spannungsteilergesetzt ungefähr 5,3V anliegen ( ((170+30)/170)*4,5 ), um
das zu erfüllen, oder? Und das geht ja nicht, da es höchstens 5V sind.
Bei 18Ohm sieht die Sache schon wieder anders aus. Da fleißen nur noch
15mA bei 5V (bei 2,7V sind es noch weniger), wodurch sich der ESR nicht
so bemerkbar macht.
>Deshalb die Diode und Spannungsmessung mit Comparator und Interrupt VOR >der
Diode!
Das verstehe nicht so ganz :(
p.s. ich muss dazu sagen, ich bin nicht der elektronik-papst. ;)
> ich habe noch nirgends eine Leiterplatte mit 1,27mm pitch gesehen
Gibt's bei ebay, aber auch Conrad und Reichelt hat sowas.
Und es gibt recht günstige Platinchen, die in ein DIL8-Sockel passen und
wo man ein SO8 drauflöten kann, u.A. bei elk-tronic und auch wieder
ebay.
Und ausserdem gibt es FRAMs auch in DIL8 (z.B. bei tme.eu).
@ Martin Parr (Gast)
>Laut Datenblatt (Seite 367) zieht der uC bei 16Mhz Taktung bei 5V genau>29mA. Ich habe jetzt einfach 5V/29mA gerechnet. Ich bin jetzt nicht der>Elektronik-Guru, aber ist das nicht so ungefähr? R=U/I. Oder habe ich>einen Denkfehler? Wenn bei 5V genau 29mA fließen, dann ist doch der>Widerstand genau 5V/29mA = 172,4 Ohm ?
Die Rechnung ist richtig, die Formulierung weniger. Von einem
Innenwiderstand spricht man eher bei Ein- und Ausgängen, auch bei
Ausgangswiderständen von Stromversorgungen, nicht aber bei der
Stromaufnahme von ICs.
>Der Mikrocontroller zieht bei 5V ungefähr 29mA -->170 Ohm. Der ESR ist>30hm. Ist das nicht ein normaler Spannungsteiler ?
Mehr oder weniger. Aber du willst nicht wirklich sowas bauen, das hängt
mit dem Goldcap am seidenen Faden, die können nur sehr wenig Strom
liefern. Auf die 30 Ohm würde ich mich nur sehr ungern verlassen wollen.
>>Deshalb die Diode und Spannungsmessung mit Comparator und Interrupt VOR >der>>Diode!>Das verstehe nicht so ganz :(
OK, bezogen auf deinen Schaltplan. D10 ist überflüssig, d) in der
Schaltung auch, C5 viel zu gross (unnötig). Mach lieber C1 grösser. Wenn
jetzt dein Gleichrichter beispielsweis 12V Effektivspannung liefert, hat
C1 in etwa 12V. Der 7805 arbeitet aber bis ca. 7V noch brauchbar. D.h.,
wenn der Strom ausfällt kann C1 noch eine kurze Zeit Strom liefern, bis
die Spannung über C1 auf 7V abgefallen ist, das sind 5 V Differenz.
Nehmen wir an, deine Schaltung zieht 50mA und C1 ist 1000uF gross.
C = As/ V (Kapazität des Kondensators)
s= V*C/A = 5V * 1000uF / 50mA = 100ms.
Wenn du nun über einen Spannungsteiler die Spannung an C1 misst und
bei ca. 11,5V einen Interrupt per Komparator auslöst, dann hast du 100ms
Zeit, deine Daten zu retten, vielleicht ein wenig mehr.
>p.s. ich muss dazu sagen, ich bin nicht der elektronik-papst. ;)
Wer ist das schon? Und wer will das sein? Ich nicht! Kardinal reicht. Du
darfst mich mit "Eure Eminenz" ansprechen ;-)
MFG
Falk
>Das ist eine EWIGKEIT, da kann vieles passieren. Sowas speichert man auf>jeden Fall im Page Mode, dann kann man bei gleicher Zeit von 8,5ms je>nach Typ 8..32 Byte schreiben, was die Speicherzeit um den Faktor 8..32>verringert!
Gibt es denn beim AT90CAN128 einen Page Mode ???