Frage zum AVR ATMEGA16

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hi,

    mir ist gerade was eingefallen, und bevor ich jetzt lange recherchiere, dachte ich mir, ich frag mal den einen oder anderen AVR Spezi hier.

    Also ich mach mich ja gerade über diese µNode-Netzwerkgeschichte her und "rede" gerade mit einem "virtuellen" RPi auf meinem Laptop.
    Jetzt sollen ja vor allem auch µController unterstützt werden und da fiel mir ein, dass ja nach wie vor Dezentralisierung eine Rolle spielen könnte.

    Kann ich eigentlich im AVR etwas persistent speichern?

    Beim RPi ist das ja jetzt kein Problem. Da lege ich eine .config.uNet an und schreibe die Informationen dort hinein.
    Aber beim AVR gibts ja diese Möglichkeit nicht.
    Aber ich hätte ja das EEPROM. Vielleicht reicht das aus ...
    Allerdings habe ich das bei den ATMEL-Chips noch nie genutzt und habe keine Ahnung ob und wie ich darauf zugreifen kann.
    Vielleicht hat ja jemand von Euch da eine Lösung parat, sonst muss ich halt demnächst mal suchen gehen ...

    Wenn alle Stricke reissen, werde ich dann wohl zwangsläufig ein I2C-EEprom anschliessen müssen.

    Thnx,
    -ds-

  • man kann auf das EEPROM speichern, es gibt Routinen dafür, nur muss man bei der Spannung obacht geben, zu tief läuft das nicht mehr, aber am PI sind ja 3,3 oder 5V verfügbar, nur im Batteriebetrieb eben nicht immer, weil die V Varianten bis 1,8V runter arbeiten. Das mit den EEPROMs ist für mich etwas tricky, vermutlich nur weil das nicht mein täglich Brot ist.

    Man kann sogar im Flash vom Atmel speichern, erstens ist der größer (bis zu 256k beim Mega 2560 hatte ich schon ganze Bilder als Dia Show drin am 2,1" Display) schlägt also jedes EEPROM um Längen und zweitens sind EEPROM Speichereien auf typisch 10k begrenzt, flash bis 100k

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Ja hey, servus jar ...

    ich glaube, da reden wir im Moment aneinander vorbei ...
    war vielleicht auch ein bisschen blöd formuliert.

    Also ich möchte, nicht vom RPi aus, sondern die Daten im AVR selbst speichern. Also ich schicke dem AVR per ... seriell ... Datenpakete mit seinen eigenen Konfigurationsdaten. Und der AVR soll die dann selbst irgendwo persistent ablegen, damit er sie beim nächsten Start zur Verfügung hat und nicht immer "dumm" aufwacht.
    Ich habe den internen Speicher der AVRs nie benutzt, deshalb die Frage ...

    Danke jedenfalls,
    -ds-

  • Hallo ds,

    für den AVR sollte es eine lib geben:

    Code
    #include <EEPROM.h>
    ...
    EEPROM.read(....);
    EEPROM.write(....);
    ...

    bei Konstanten im Code:

    Code
    eeprom struct { .... }

    Ohne Gewähr für die exakte Syntax, hab ich schon zu lange nicht mehr gemacht. Lässt sich aber ja leicht bei avr-gcc nachlesen, denk' ich mal.
    Man muß bei den eeproms nur aufpassen, da nur feste Blockgrössen geschrieben/gelesen werden können, aber das weißt Du ja.

    Gruß, mmi

  • Ahh ... mmi, mein Freund :) ...

    lange nichts mehr von Dir gelesen.

    Passt, das ist genau die Info, die ich brauchte.
    Wie das genau funktioniert puzzle ich mir schon zusammen ... wenn ich das mit Luna mache, dann siehts eh wieder ganz ander aus ;) ...

    Frage ist nur, ob die paar Byte reichen ... aber das wird sich zeigen.

    Danke und schönen Abend noch,
    -ds-


  • Ja hey, servus jar ...

    ich glaube, da reden wir im Moment aneinander vorbei ...
    war vielleicht auch ein bisschen blöd formuliert.
    Danke jedenfalls,
    -ds-

    nö wir reden nicht aneiander vorbei, der AVR kann Daten im EEPROM oder flash mem speichern, aber nicht mit jeder Versorgungsspannung nicht mit jeder Taktfrequenz


    Hallo ds,

    für den AVR sollte es eine lib geben:

    Code
    ...
    EEPROM.read(....);
    EEPROM.write(....);
    ...


    bei Konstanten im Code:

    Code
    eeprom struct { .... }


    Gruß, mmi

    und flash geht auch, muss man halt nachlesen.
    nix anderes hatte ich gemeint, was verstehen die anderen immer nur ? :mad_GREEN::huh:

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)


  • und flash geht auch, muss man halt nachlesen.
    nix anderes hatte ich gemeint, was verstehen die anderen immer nur ? :mad_GREEN::huh:

    Hey jar alder Bärlina,

    sorry ... hab ich dann wohl falsch verstanden. Das mit der Versorgungsspannung und der Frequenz hat mich da wohl in Irre geführt.
    Flash wäre schon auch interessant, aber da lass ich im Moment mal die Finger davon. Das könnte ja im Endeffekt darauf hinaus laufen, dass der AVR sich selbst umprogrammiert und nur die Einsprungaddresse geändert werden müsste :denker: ...

    Interessant aber im Moment muss ich mir noch ein paar Gehirnwindungen für die Kommunikation im µNode-Net frei halten.
    Ich definiere gerade die ersten Telegramme :s ....

    Danke jedenfalls,
    -ds-


  • Flash wäre schon auch interessant, aber da lass ich im Moment mal die Finger davon. Das könnte ja im Endeffekt darauf hinaus laufen, dass der AVR sich selbst umprogrammiert und nur die Einsprungaddresse geändert werden müsste :denker: ...

    Danke jedenfalls,
    -ds-


    das machen fast alle bootloader, was denkst du wie ein AVR vom USB Arduino oder der seriellen Schnitte programmiert wird ? ;)

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!