-         
Ergebnis 1 bis 7 von 7

Thema: ATMega8 + EEPROM

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    681

    ATMega8 + EEPROM

    Anzeige

    Hallo,

    ich habe ein Problem mit dem EEPROM in einem ATMega8. Der Chip ist (relativ) neu und bis jetzt nur ein paar mal geflascht, trotzdem funktioniert das Beispiel aus dem Datenblatt nicht:

    Code:
    cli ();
    
    while (EECR & (1<<EEWE));
                                                   
    EEARH = 0;
    EEARL = 0;
    EEDR = 10;
    EECR |= (1<<EEMWE);
    EECR |= (1<<EEWE);
    
    while (EECR & (1<<EEWE));
    
    EEARH = 0;
    EEARL = 0;
    EECR |= (1<<EERE);
    tmp = EEDR;
    
    if (tmp == 10)
        SwitchLed (On);
    
    while (1);
    Die Led geht nie an. Wenn ich auf (tmp = 0xFF) prüfe, geht sie an. Also wird das EEPROM nicht beschrieben oder falsch gelesen. Wo könnte mein Fehler sein?

    Viele Grüße
    Andreas

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.626
    das ist ein problem beim starten des meg8, schreib mal mehr als 4 bytes, nach dem 4ten byte sollten die daten stabil sein, zur not versuchs mal mit ner einschaltverzögerung für den reset oder ne kurzen pauseschleife bevor du ins eeprom schreibst bzw. liesst .... hat was mit der spannungsversorgung zu tun, ist die nicht stabil kanns zu fehlern kommen

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    681
    Hallo Ceos,

    danke für die Antwort. Ich schreibe sogar insgesamt 16 Bytes auf einen Schlag und lese diese aus dem EEPROM. Nur das funktioniert nicht, deshalb habe ich das Problem auf diesen kleinen Teil heruntergebrochen. Ich dachte mir wenn das funktioniert, funktioniert auch der große Teil.

    Bevor das ganze ausgeführt wird ist im Programm-Init tatsächlich eine Warteschleife mit 100x NOP vorhanden, da ich Probleme beim einlesen einiger Eingänge direkt nach dem Start hatte.

    Bleibt also entweder ein Fehler im Programm, oder tatsächlich die Versorgungsspannung. Diese kommt aber vom STK500 mit einem recht kurzem (10cm) ISP-Kabel. Als Verbrauchen ist nur der ATMega8 und ein Max232 auf der Platine und genügend Kondensatoren (220µF am Eingang) und 100nF-Block-Kondensatoren an jedem IC. Ich werde das ganz aber noch mal am Labor-Netzteil mit mehr Power probieren.

    Viele Grüße
    Andreas

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.626
    das hat mit power nicht viel zu tun, aber versuchs mal mit ner warteschleife

    EDIT: kommando zurück, zu schnell gelesen ... 100nop ist evtl. zu wenig versuchs mal ruhig mit noch etwas mehr, die vielen abblock kondensatoren müssen erstmal geladen werden, da kann auch die spannung anfangs recht niedrig sein! oder du lässt ihn auf einen tastendruck warten, dann kannst du ganz gezielt ausprobieren obs evtl. am start liegt

    EDIT du kannst auch versuchshalber das BOD stark nach oen drehen und nen automatischen reset machen lassen, solange die spannung zu niedrig ist

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    681
    ...weil ich Taster lese: Ich habe beim testen natürlich mehrmals Reset am STK500 gedrückt. Danach sollte die Spannung auf jeden Fall stabil gewesen sein. Aber ich probiers auf jeden Fall aus. (Das BOD und die erhöhung der NOPs)

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied Avatar von drew
    Registriert seit
    06.04.2005
    Beiträge
    150
    Hallo,
    versuch doch mal, ob du irgend etwas mit deinem Programmer ins EEPROM schreiben kannst.
    So kannst du einen Hardwar-Fehler sicher aussliessen und auch prüfen, ob das Lesen geht.


  7. #7
    Erfahrener Benutzer Fleißiges Mitglied Avatar von drew
    Registriert seit
    06.04.2005
    Beiträge
    150
    Hallo,
    versuch doch mal, ob du irgend etwas mit deinem Programmer ins EEPROM schreiben kannst.
    So kannst du einen Hardwar-Fehler sicher aussliessen und auch prüfen, ob das Lesen geht.


Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •