ich möchte ein paar strings dauerhaft abspeichern.
will heißen, wenn ich mein STK300(ATMega103) ausschalte, und dann wieder
einschalte, sollen die strings immernoch im speicher sein.
ich arbeite mit CodeVision.
bis jetzt habe ich strings immer so deklariert
unsigned char string[10];
Wie gesagt, kenn mich mit CodeVision nicht aus, aber ich denke, dass ist
die einfachste Lösung sowas zu realisieren. Musst halt nur noch
beachten, dass ein EEPROM je nach Typ des uC nur 10000 oder 100000 Mal
beschrieben werden kann. Je nachdem, wozu du das Speichern der Variablen
brauchst und wie oft das Gerät nachher ein und ausgeschaltet werden
soll.
Eine gute Möglichkeit wäre (hab ich hier vor kurzem gelesen und find ich
gut) den uC mit einem großen Elko zu blocken und nur die Variable in den
EEPROM zu sichern, wenn der Strom ausfällt. Dazu reicht dann die Energie
des Elkos noch (dauret nur ein paar ms).
Grüße
Steffen
Ja, mir fällt gerade noch ein batteriegepufferter RAM ein. Du kannst den
Flash nehmen (was aber viel ungünstiger ist, weil der sich nur etwa 1000
Mal beschreiben lässt).
EEPROM ist schon am besten, weil der schon direkt mit im uC drin ist
(nehm ich mal an).
Am besten du schriebst Mal um was für Daten es sich handelt, die nicht
verloren gehen dürfen. Dann kann ich dir vielleicht mehr dazu sagen.
ich meine, das ding, was ich basteln soll, soll ganz ganz viele jahre
funktionieren. und ich müsste vielleicht 10 stings mit rund 100 zeichen
abspeichern, die halt nach einen stromausfall wieder da sein sollen.
die strings werden öfters einmal geändert, manchmal täglich.
ich mein 100.000 mal beschreiben ist sicherlich nicht wenig, aber so
etwas entgültiges berschert mir schon kopfzerbrechen. in 50 jahren kann
viel passieren.
und ich müsst ja noch ein bisschen mit rumexperimentieren.
Also wenn es sich nur um Stromausfall handelt würde ich folgendes
Vorschlagen.
Du verwendest normale Variablen (also im RAM). An die Stromversorgung
des uC hängst du einen Elko hin und einen Portpin hängst du vor den
Elko. Bricht die Spannung zusammen (Stromausfall) registriert dies der
uC und schreibt mit Hilfe der Energie des Elkos die Strings in den
Eeprom. Und es wird ja nicht jeden Tag mehrere Stromausfälle geben.
Wichtig ist nur, dass der Elko lang genug Energie liefert, damit der uC
noch alles abspeichern kann.
Die Alternative wäre dann der batteriegepufferte RAM. Funktioniert wie
ein normaler SRAM und die Daten bleiben dank interner Batterie laut
Hersteller über 10 Jahre erhalten. Den kannst du so oft beschreiben wie
du willst. Nur dazu musst du dann eben die Ansteuerung implementieren.
Klar, du kannst auch einen externen EEPROM verwenden. Zum Beispiel
einen, der über I2C anzusteueren ist oder seriell. Das geht natürlich
auch. Aber ich denke, es wäre besser etwas zu nehmen, dass nicht
ausgetauscht werden muss. (Die Möglichkeit, dass es verreckt besteht ja
trotzdem).
also, ich werds wohl mitdem eeprom machen, und bei stromausfall sichern,
hab gerade mit dem verantwortlichen telefoniert.
100000 mal dürfte definitv reichen ;)
ich kuck nun also nach einem ELKO, der ein paar ms lang den strom hält.
aber die stromversorgung. das ist doch 12 Volt wechselspannung. wie mach
ich die an ein portpin, welcher doch high 3,3 volt gleichspannung haben
will?
Du musst ja sowieso erst die 12V gleichrichten und anschließend auf 3,3
V runterprügeln. und nach diesen 3,3V würde ich den Elko ransetzen und
davor die Spannung für den Protpin abzweigen und zwischen V+ des
Spannungsreglers und der Anode des Elkos noch ne Diode vorsehen und die
Spannung für den Protpin vor (!!) der Diode abnehmen, sonst würde ja der
Elko den Protpin die Spannung geben und dieser erst Stromausfall melden,
wenns schon zu spät is. Wenn willst, kann ich dir nen kleinen Schaltplan
online stellen.
das wäre echt net, dann kann ich bestimmt auch besser rausfinden, wo der
elko hinmuss.
da ich doch so ein vorgefertigtes STK300 benutze, und kein plan hab, was
da wo drauf steckt.
hab quasi noch nie was selber zusammengelötet, außer meine 2 DTMF
erkennungen, von denen eine nicht funktioniert.
So, im Attachment ist jetzt Mal die Schlatung. Ist zwar für 5 V aber
wenn du den entsprechenden Spannungsregler verwendest wird das auch mit
3,3 V funktionieren.
Die 12 V musst du erst Mal über nen Brückengleichrichter gleichrichten
und anschließend mit einem Kondensator glätten. Am besten ausprobieren
und mit Oszilloskop überprüfen.
Ob du das so aber auf deinem STK300 machen kannst weiß ich leider nicht.
Ich hab das Teil nicht und glaub auch nicht, dass man da einfach
irgendwo nen ELKO reinstecken kann und dann gehts.
Da du ja später das Teil auch ohne STK laufen lassen willst empfehle ich
dir ein Steckbrett, mit dem solche Schaltungen super einfach auzubauen
sind und anschließend die Schaltung (wenn alles funktioniert) entweder
auf einer Lochrasterplatine oder auf einer selbst geätzten Platine
aufbauen.
der STK soll gleich so mit reinkommen, ist nicht meiner, hab ich für die
aufgabe bekommen.
aber ich könnte ja bestimmt so eine art weiche für mein netzteil bauen.
eine kleine platine, wo ich die schaltung mit dem ELKO aufbaue, und das
netzteil anstecke, und von dort aus aber auch gleich die 12 Volt an die
spannungsversorgung des STK weiterleide.
so stecker und buchsen gibts ja bestimmt.
ich glaub der wird mit 5 volt betrieben, nur der ausgangspegel, wenn ich
ein port high schalte, ist 3,3.
ich denke, mit der weiche wird schon so funktionieren.
den STK kann ich bestimmt nicht gleich mit 3,3 volt betreiben, da könnt
ich auch gleich den elko zwischen löten ;)
übrigens seh ich die schaltung auch grad im tutorial hier.
trotzdem danke für die mühe.
nein nein, ich werds mit so ner weiche machen. is ja kein großer
aufwand, und am ende ist alles sauber und haltbar verlötet.
Die Schaltung im Tutorial enthält aber nicht das, was ich dir zeigen
wollte. Das mit den 3,3 V war Blödsinn, hab gar nicht gelesen, was für
nen uC du verwendest.
Wie genau willst du das jetzt machen?
ach verdammt, riesen denkfehler meinerseits. so gehts ja garnicht.
hast recht, ich muss mit den 5 volt dann direkt ran.
na da werd ich einfach die stromversorgung neu aufbauen, nach deiner
schaltung, mit dem großen elko drin, und der leitung zu einem portpin.
dann schau ich wo die stromversorgung auf dem STK ist. löt die raus, daß
ich platz habe für die 5 Volt von der shaltung, und fertig.
Genau, wenns nicht drauf passt einfach ne Lochrasterplatine nehmen, da
drauflöten, von STK alle Stromversorgungsteile runter löten und dann die
Spannung da drauf geben, vo vorher beim STK die Spannung war (also
hinterm Spannungsregler).
Habs übrigens grade ausprobiert ne 12V Wechselspannung zu glätten.
Einfach nen Brückengleichrichter nehmen, und danach nen
Keramikkondensator mit ca 47 uF parallel schalten. Hat bei mir sehr gut
funktioiert. Die Spannung bleibt bis auf 400 mV geglättet. Wenn ne
stärkere Glättung brauchst einfach nen größeren Kerko nehmen.
So, jetzt bin ich auch zufrieden. So funktioniert das bestimmt!