EEPROM-Problem

Gast #476243
Lesenswert?
• ▲
▼
Hallo,

ich habe ein kleines Problem mit dem EEPROM eines AT90CAN128.
Ich kann in den EEPROM schreiben und auch aus dem EEPROM lesen, die 
Daten kann ich per JTAG auslesen. Es funktioniert auch nach einem RESET.
Stoppe ich die Debugging Session oder nehme ich den Controller von der 
Spanunng, dann verliere ich den EEPROM-Inhalt. Das kann ja nicht im 
Sinne des Erfinders sein, oder? Vielleicht kann mir jemand helfen?
Das angehängte c-file sind die Schreib/Lese-Routinen für das EEPROM.

Vielen Dank...
Gast #476251
Lesenswert?
• ▲
▼
>Das angehängte c-file sind die Schreib/Lese-Routinen für das EEPROM.

Wenn da was angehängtes wäre...

U.U. hat der CAN128 auch eine EEPROM-Preserve-Fuse (oder so ähnlich).
Die verhindert, dass das EEPROM beim flashen gelöscht wird.
(Kann aber auch sein, dass das mit was anderem zusammenhängt...)
Gast #476270
Lesenswert?
• ▲
▼
Sieht so aus, als wäre ich zu doof eine Datei anzuhängen. Reicht es 
nicht aus, den Ort der Datei über 'Durchsuchen' anzugeben?

Das mit dem Fuse überprüfe ich mal. Allerdings habe ich den µC nicht 
neue geflasht, trotzdem ist der Inhalt verloren.

Ich denke mal, das Anhängen klappt nicht, deshalb einfach Copy & Paste :

************************************************************************ 
*
#include <iocan128v.h>
#include <macros.h>

void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
{
 /*clear global interrupt flag*/
 CLI();

 /*Wait for completion of previous write*/
 while(EECR & (1<<EEWE));

 /*Set address and data register*/
 EEAR = uiAddress;
 EEDR = ucData;

 /*prepare to write to EEROM by setting EEMWE*/
 EECR |= (1<<EEMWE);

 /*Start EEPROM write by setting EEWE*/
 EECR |= (1<<EEWE);

 /*Set global interrupt flag*/
 SEI();
}

unsigned char EEPROM_read(unsigned int uiAddress)
{
  /*clear global interrupt flag*/
  CLI();

  /*Wait for completion of previous write*/
  while(EECR & (1<<EEWE));

  /*Set address register*/
  EEAR = uiAddress;

  /*Start EEPROM read by setting EERE*/
  EECR |= (1<<EERE);

  /*Return data*/
  return EEDR;
}

***********************************************************************
Angehängte Dateien:
Gast #476271
Lesenswert?
• ▲
▼
>Allerdings habe ich den µC nicht
>neue geflasht, trotzdem ist der Inhalt verloren.

IMHO arbeitet JTAG aber genau so...(bin mir aber nicht ganz sicher.)

>Reicht es nicht aus, den Ort der Datei über 'Durchsuchen' anzugeben?
Wenn man "Vorschau" drückt scheinen sich die Anhänge (manchmal) in Luft 
aufzulösen...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.