Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage zu Speicherbelgung in Mikrocontrollern


von hochsitzcola (Gast)


Angehängte Dateien:

Lesenswert?

Ich versuche mich gerade an der Entwicklung eines Programmers für die 
NEC/RENESAS 78K0R-Serie. Konkret habe ich einen uPD79F9211.
Er hat 16K Flashmemory, 1K RAM. Das verstehe ich ja noch. Im Datenblatt 
steht weiterhin "Products in the μPD79F9211 can access a 1 MB memory 
space." In der Memory Map sind die verschiedenen Speicherbereiche 
dargestellt, ich verstehe aber nicht so recht, was ausserhalb des Flash 
und RAM Speichers liegt. Da sind die Datenregister der Peripheriegeräte, 
aber darüber hinaus weiß ich nicht, was wofür gut ist...
Gibt es da eine einfache Beschreibung der ausgewiesenen Speicherbereiche 
ganz allgemein von Mikrocontrollern oder muß ich mich durch die 745 
Seiten des Datenblattes kämpfen?

Gruß
hochsitzcola

von Wolfgang (Gast)


Lesenswert?

hochsitzcola schrieb:
> In der Memory Map sind die verschiedenen Speicherbereiche
> dargestellt, ich verstehe aber nicht so recht, was ausserhalb des Flash
> und RAM Speichers liegt.

Bei aktuellen 64-Bit PC-Prozessoren kannst du 17179869184 GB Speicher 
adressieren. Wieviel Speicher steckt in deinem PC drin?
Einfach mal nachdenken.

von Pandur S. (jetztnicht)


Lesenswert?

> .. 745 Seiten des Datenblattes kämpfen

Schadet sicher nicht. Ausserhalb ist erst mal nichts, ausser was 
deklariert ist. Allenfalls gibt es einen externen Adress- und Datenbus, 
dann kann man selbst etwas anhaegen. Sonst ist da nichts. 
Kompatibilitaet zu zukuenftigen Modellen.

von A.. P. (arnonym)


Lesenswert?

Wie mein Vorredner bereits gesagt hat: außerhalb liegt erst mal nichts, 
sofern die Memory Map es nicht explizit ausweist.

Die Memory Map zeigt einem ja, welche Peripherieteile, Registerbereiche 
etc. an welcher Speicheradresse auf dem Die liegen. Wenn du zudem 
einfach mal die oberste Speicheradresse deines Controllers (0xF FFFF 
hex) umrechnest, dann kommst du auf genau 1 MiB Speicherbereich. Genau 
das ist der Bereich, den das Datenblatt in diesem ersten einleitenden 
Satz einfach anspricht.

Was die Frage nach einer "einfachen" Beschreibung der Speicherbereiche 
angeht, kann man das so pauschal nicht sagen. Sicher sind kleinere 
Controller eher "einfacher" gestrickt und schneller zu verstehen, als 
ein komplexerer ARM-Controller, aber grundsätzlich sollte man das 
Datenblatt seines Controllers schon einmal im groben überflogen haben 
und verstanden haben, wo was zu finden ist. Die für die jeweilige 
Aufgabe relevanten Teile sollte man dann selbstverständlich schon 
durchdrungen und verstanden haben. Dazu gehört vor allem die 
Speicherbelegung des Chips, da man dort ja direkt entnehmen kann, in 
welchem Speicherbereich man überhaupt suchen muss, um eine bestimmte 
Peripherie anzusprechen, Option-Bytes zu setzen o.ä.

Die Memory Map gibt sehr grob gesagt eine Art Inhaltsverzeichnis des 
Speicherbereichs.

EDIT: Habe gerade mal in das Datenblatt deines Controllers geschaut. 
Direkt hinter der Memory Map werden doch viele dieser Speicherbereiche 
ausführlich beschrieben und gezeigt, was dort zu finden ist, wie diese 
zu schreiben/lesen sind etc. Also in deinem Fall doch relativ "einfach" 
:)

Gruß

: Bearbeitet durch User
von Johnny B. (johnnyb)


Lesenswert?

Oft kommt es vor, dass solche "Memory Maps" allgemein für eine ganze 
Familie von Mikrocontrollern gelten.
Innerhalb einer solchen Familie kann es dann je nach Hersteller hunderte 
verschiedene Derivate mit unterschiedlicher Peripherie und 
Speicherausbau geben.
Kurz gesagt; es gibt zu Mikrocontrollern immer übergeordnete Dokumente, 
welche für die gesamte Familie/Serie gelten und Dokumente, welche sich 
auf ein einzelnes Derivat aus dieser Familie beziehen.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

hochsitzcola schrieb:
> In der Memory Map sind die verschiedenen Speicherbereiche dargestellt,
> ich verstehe aber nicht so recht, was ausserhalb des Flash und RAM
> Speichers liegt. Da sind die Datenregister der Peripheriegeräte, aber
> darüber hinaus weiß ich nicht, was wofür gut ist...

Ebendiese sind da mit drin erfasst, außerdem noch offenbar die
CPU-Register.

Es geht ja hier nur um einen Adressraum, also das, was sich überhaupt
von der CPU aus ansprechen ließe.  Das impliziert keineswegs, dass
das alles mit irgendwas hinterlegt wäre.

ps: Bitte Grafiken als PNG, nicht als JPEG.  Die JPEG-Artefakte sind
hässlich, außerdem wäre das PNG vermutlich sogar kleiner.

von Olaf (Gast)


Lesenswert?

> Kurz gesagt; es gibt zu Mikrocontrollern immer übergeordnete Dokumente,
> welche für die gesamte Familie/Serie gelten und Dokumente, welche sich

Das ist der Abfall von ST. Bei Renesas waren die Dokumente immer 
bessser. Jedenfalls die die ich bisher in den Fingern hatte. Das reichte 
es immer ein Datenblatt zu lesen. Man musste sich nicht immer was 
zusammenraten...

Olaf

von Johnny B. (johnnyb)


Lesenswert?

Olaf schrieb:
> Das ist der Abfall von ST.

Bei Texas Instruments auch (MSP430) und ich meinte, bei Renesas auch, 
jedenfalls bei den Mikrocontrollern welche von Hitachi stammten (z.B. 
H8).

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

Der uPD79F9211 hat eine 78K0R-CPU und diese einen Adressraum von 1MiB.
Von diesem Adressraum wird nur ein relativ kleiner Teil genutzt, da der
uPD79F9211 mit relativ wenig Speicher ausgestattet ist.

In der Memory-Map gibt es drei "Reserved"-Bereiche: Der erste (04000H–
EFFFFH) scheint für mehr Flash, der zweite (F0800H–F0FFFH) für mehr
SFRs (bzw. LCD-Speicher) und der dritte (F4000H–FFAFF) für mehr RAM
vorgesehen zu sein.

Schau die bspw. mal den R5F11FLL an: Er hat eine ähnliche CPU (die RL78
ist der Nachfolger der 78K0R), aber deutlich mehr Flash (512KiB) und RAM
(48KiB). Der für die RAM-Erweiterung reservierte Adressbereich ist damit
vollständig ausgeschöpft (es mussten sogar noch 256B vom Mirror-Bereich
abgezwackt werden). Auch der Flash-Bereich ist jetzt zu mehr als 50%
belegt. Theoretisch wären bis zu 960KiB Flash möglich, was vielleicht in
zukünftigen Controllervarianten auch genutzt wird.

von Joerg W. (joergwolfram)


Lesenswert?

Das Datenblatt bzw. der Memory-Map ist nicht so wichtig, wenn Du nur ein 
vorhandenes Binary flashen willst. Dafür gibt es von Renesas eine 
Application Note (ist allerdings für die uPD78Fxxxx). Da ist die 
Schnittstelle und das Protokoll beschrieben:

https://www.renesas.com/ja-jp/doc/DocumentServer/026/U19486EJ1V0AN00.pdf

Jörg

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Angehängte Dateien:

Lesenswert?

Wer voluminoese Datenblaetter hasst, wir daran seine besondere
Freude haben:

NEC
One-page Manual
78K0S/KA1+

...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Das ist aber eher vom Seitenformat „Wandtapete“, wenn man es auch noch
lesen können will. :-)

von hochsitzcola (Gast)


Lesenswert?

Danke für die vielen Infos!
In welchem Block der 16k Flash würde ein chinesischer Entwickler denn 
wohl am ehesten ein "emulated EEPROM" einrichten?!
Ich kann von allen 16 Blöcken die Checksum auslesen, lesegeschützt 
scheint also nichts zu sein.
Es geht um dieses Vorhaben:
https://endless-sphere.com/forums/viewtopic.php?f=30&t=90816

Gruß
hochsitzcola

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

hochsitzcola schrieb:
> In welchem Block der 16k Flash würde ein chinesischer Entwickler denn
> wohl am ehesten ein "emulated EEPROM" einrichten?!

Im letzten, wenn ich die Architektur dort richtig verstehe.

von josh (Gast)


Lesenswert?

Möglicherweise lässt sich das Ding mit einem Renesas E1 und der Software 
Renesas Flash Programmer bis V2.05.03 flashen:
https://www.renesas.com/en-eu/products/microcontrollers-microprocessors/78k/softtools.html
Die Software kann man downloaden, den E1 bekommt man mit einem alten 
Dev-Kit, wird auch schonmal so angeboten weil manche gleich mehrere 
rumliegen haben.
Oder es geht eben mit alten NEC-Tools, da kenn ich mich nicht mit aus.

Die Flash-Schutz Mechanismen scheinen etwas kompliziert zu sein und es 
wird da auch nur auf einen anderen Programmer eingegangen. Fraglich also 
ob man mit dem E1 nebst Software auch den fraglichen Bereich (und nur 
den) neu flashen kann:
https://www.renesas.com/en-eu/doc/products/mpumcu/apn/rl78/001/r01an1131eu0101_mcu.pdf

Wie der Hersteller meinte wie eine EEPROM Emulation zu machen sei, kann 
man hier sehen:
https://www.renesas.com/en-eu/doc/DocumentServer/025/U18991EE2V0AN00.pdf

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.