www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik T89C51RD2 und AT24C64


Autor: Goekkes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi leute ich hätte da mal ne frage. und zwar geht es darum, dass ich
einen kompilierten Code (in C51 geschrieben) auf dem T89C51RD2 von
Atmel ausführen möchte, welches ich aber zuvor über eine
I2C-Schnittstelle von dem AT24C64 gelesen habe. Ist dies eigentlich
möglich, oder bekomme ich da probleme mit dem Adressbereich des
kompilierten Codes?
gruss gökkes

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ungefähr so, wird es auch von Monitor-Programmen gemacht. Die kopieren
das ganze in ein ext. Ram.

"Ist dies eigentlich
möglich, oder bekomme ich da probleme mit dem Adressbereich des
kompilierten Codes?"

Dein Problem liegt dann darin, das der T89C51RD2 nur 64kB Code und 64kB
Ram verwalten kann. Und da er ja schon 64kB Flash-Code Speicher
hat.......
Somit müßtest du zur Laufzeit, den /EA Pin umschalten (auf Low) und
einen Reset ausführen. Das ext. Ram muß dann auch mit /PSEN verknüpft
sein.

Mfg Sascha

Autor: Goekkes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich kann es mir nicht erlauben zur Laufzeit einen Reset auszuführen.
Muss irgendwie anders gehen, oder?
mfg gökkes

Autor: Markus_8051 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der EA-Pin wird nur beim Reset abgefragt, hier hast Du also keine andere
Möglichkeit!

Du könntest aber die ganze Zeit über im externen Programmspeicher
arbeiten: Sprich am Anfang ein kleines Programm, welches einen Teil vom
FLASH ins externe RAM kopiert, dann die EA-Leitung umschalten und nen
Reset auslösen. Hier jetzt das normale Programm ausführen. Teile davon
könntest Du jetzt gegen Codestücke aus dem EEPROM austauschen.

Sollte so gehen,

veil Erfolg,

Markus_8051

Autor: Goekkes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab keine möglichkeit im externen speicher code auszuführen,wie soll
das denn gehen?
mfg gökkes

Autor: Markus_8051 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Indem Du die PSEN-Leitung als Chip-select-Leitung für den externen
Programmspeicher verwendest!

Wie hast Du das sonst vor, ohne einen externen Programmspeicher? Hat
der T89C51RD2 die Möglichkeit, sich selbst während des Betriebs zu
flashen?

Gruß,
Markus_8051

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du must Dir einen Bootloader schreiben, der überprüft, ob der Inhalt im
Flash schon gleich dem EEPROM ist.
Wenn nicht, überprüft er, ob im EEPROM eine gültige Kennung steht und
die CRC stimmt und dann kopiert er den EEPROM in den Flash.
Zum Kopieren rufst Du dann die API-Funktionen im Factory-Bootloader
auf.

8kB reicht zwar für vieles, aber ich würde gleich einen 24C256 (32kB)
nehmen.


Peter

Autor: Goekkes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
über welche Schnittstelle steuer ich diese dann an?
mfg gökkes

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit EA geht nicht !
Beim AT89C51Rxx ist standartmäßig EA deaktiviert. Er lässt sich nur
durch einen kompletten Chip Erase aktivieren. Chip Erase ist aber nicht
das was Flip macht, sondern anscheinend nur mit einem parallel
Programmer möglich...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.