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
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.
> .. 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.
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
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
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.
> 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
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).
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.
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
Wer voluminoese Datenblaetter hasst, wir daran seine besondere Freude haben: NEC One-page Manual 78K0S/KA1+ ...
Das ist aber eher vom Seitenformat „Wandtapete“, wenn man es auch noch lesen können will. :-)
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.