Forum: Mikrocontroller und Digitale Elektronik Konzeptüberlegung wo die Konfigurationseinstellungen auf µC speichern??


von Semi-kolon (Gast)


Lesenswert?

Guten Tag,

ich baue gerade eine kleine Home-Steuerung aka wireless-Wechselschaltung 
(STM32F103ZE) und hab das Problem, das die Einstellungen beim Reset 
wieder verloren gehen (wird per UART eingestellt).

Wo muss ich die Konfiguration speichern, damit der Controller diese nach 
trennen der Spannungsversorgung behält.

Klar im EEPROM, laut Application note kann man das auch virtuell vom ROM 
erstellen... Ich hab das Example und kann das auch probieren.

ABER ich würde gerne die Parameter auf einer SD Karte schreiben (hab das 
KEIL Eval-Board mit SD) damit wenn man die Steuerung wechselt, so die 
Einstellungen nicht verliert.

Ich hab ein kleinen C-Tool geschrieben mit dem ich die Einstellungen per 
UART an die Steuerung sende.
Würde man im Falle der SD-Karte, die Einstellungen in eine Datei auf die 
SD-Karte schreiben? config.cfg oder sowas?

Mir ist nicht ganz klar wie das in der Praxis gemacht wird.
Welche der Varianten werden denn genutzt oder lieg komplett falsch? :

1) SD-Karte mit config datei. Controller liest bei neustart die config 
neu ein.

2) EEPROM / emuliertes EEPROM (auf SD-Karte?). Einstellungen werden per 
C-Tool dort in variablen geschrieben.

3) andere Möglichkeit?

Viele Grüße
Semi

von Dominik S. (dasd)


Lesenswert?

Eine Konfigurations-Datei erfordert natürlich auch ein Filesystem, das 
musst du implementieren.
Dann kannst du die Karte dafür auch in den PC stecken und die Datei 
bearbeiten, rauf oder runter kopieren, etc.

Wenn auf die Karte sonst nichts soll und es dir reicht die Konfiguration 
wie gehabt per C-Tool auf den µC zu schreiben kannst du die Karte auch 
ganz stupide im Raw-Modus vom µC beschreiben lassen.
Musst dir halt davor überlegen wie du die Konfiguration da ablegst.
Karte in den PC tut dann halt nicht. Die Konfiguration muss immer der µC 
schreiben.

von Udo S. (urschmitt)


Lesenswert?

Man könnte auch die Daten ins EEPROM schreiben und via Kommando (taster, 
serielle Schnittstelle) die Daten aus einer Konfigdatei einer SD-Karte 
oder über ein festes Protokoll über die serielle Schnittstelle nur 
einmal laden.
So brauchst du immer die SD Karte.

von Karl H. (kbuchegg)


Lesenswert?

Dominik S. schrieb:

> Wenn auf die Karte sonst nichts soll und es dir reicht die Konfiguration
> wie gehabt per C-Tool auf den µC zu schreiben kannst du die Karte auch
> ganz stupide im Raw-Modus vom µC beschreiben lassen.

Würd ich aber ehrlich gesagt nicht tun, und da gleich ein Filesystam 
aufsetzen.
Denn irgendwann kommt der Tag, an dem die Steuerung dann auch noch 
Messwerte und sonstiges in Log-Files auf die SD-Karte schreiben soll. 
Das mag zwar heute noch nicht angedacht sein, aber der Tag kommt fast so 
sicher, wie das Amen im Gebet.
Läuft das Filesystem dann schon, ist diese Erweiterung pipifax. Läuft 
sie noch nicht, dann muss man sie machen. Also: Dann lieber gleich 
machen.

Natürlich nur unter der Voraussetzung, dass die Konfiguration auf der 
SD-Karte ist und nicht im EEPROM (was ich persönlich bevorzugen würde. 
SD-Karte ist wieder eine Fehlerquelle mehr, da komplexer als EEPROM)

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Man könnte auch ein externes I²C-EEPROM (8 Pins) nehmen, ist wesentlich 
einfacher als die Anbindung einer SD-Karte. Dann kann man die Steuerung 
wechseln, indem man das DIP-EEPROM aus dem Sockel zieht und in das neue 
Modul steckt.

von Vlad T. (vlad_tepesch)


Lesenswert?

Karl Heinz Buchegger schrieb:
> SD-Karte ist wieder eine Fehlerquelle mehr, da komplexer als EEPROM)

und braucht um einiges mehr Strom.
Zugriffszeit und Stromaufnahme ist dank wear leveling auch nicht 
deterministisch.
Ob im Strom-Weg-Fall die Versorgung noch lange genug gehalten werden 
kann, um die Daten auf Karte zu schreiben ist also mehr oder weniger 
Glücksspiel.

von Dominik S. (dasd)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Würd ich aber ehrlich gesagt nicht tun, und da gleich ein Filesystam
> aufsetzen.
> Denn irgendwann kommt der Tag, an dem die Steuerung dann auch noch
> Messwerte und sonstiges in Log-Files auf die SD-Karte schreiben soll.

Guter Einwand, hast natürlich recht - in die Richtung hab' ich nicht 
gedacht.

Vlad Tepesch schrieb:
> und braucht um einiges mehr Strom.
> Zugriffszeit und Stromaufnahme ist dank wear leveling auch nicht
> deterministisch.
> Ob im Strom-Weg-Fall die Versorgung noch lange genug gehalten werden
> kann, um die Daten auf Karte zu schreiben ist also mehr oder weniger
> Glücksspiel.

Ob das jetzt ein Problem ist ist auch eine Frage der Umsetzung.
Er spricht ja von Konfigurationsparametern.
Die werden ja im Normalfall nur beim Ändern von Einstellungen 
geschrieben und ein mal beim Programmstart eingelesen, so würde ich das 
jetzt zumindest mal interpretieren.
Die restliche Zeit kann man die SD-Karte ja eigentlich vom Strom 
trennen.

von Peter D. (peda)


Lesenswert?

Semi-kolon schrieb:
> ABER ich würde gerne die Parameter auf einer SD Karte schreiben (hab das
> KEIL Eval-Board mit SD) damit wenn man die Steuerung wechselt, so die
> Einstellungen nicht verliert.

Ist eine Frage, was man öfter wechselt, die Steuerung doch wohl eher 
selten.

Ich würde daher nur für den Einzelfall, daß man die Steuerung wechselt, 
eine SD-Karte einstecken, die Settings darauf kopieren und die neue 
Steuerung damit beschreiben.


Peter

von Semi-kolon (Gast)


Lesenswert?

Danke!

Die SD Karte läuft jetzt mit FAT. Beschreiben und lesen geht 
einwandfrei.
Ich mach das aber genauso wie Peter sagt. Die sd Karte schreibt die 
daten ins virtuelle eprom 4kb und beim wechsel kann man erneut die sd 
karte einstecken. Muss aber dann nicht mehr drin bleiben.

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.