Forum: Mikrocontroller und Digitale Elektronik FLASH programmieren


von Arnobär! (Gast)


Lesenswert?

Hallo,

Ich möchte für ein µP System das ich basteln möchte einen FLASH als ROM
einsetzen, das wurde mir empfohlen da es leicht zu programmieren ist
über diverse schnittstellen. Kann mir jemand Infos und Tipps geben wo
ich Informationen finde wie man solche FLASH Bausteien programmieren
kann, ob man die auch günstig bekommt, muss ich mir da einen
"Brenner" bauen mit nem µC oder so? Ich habe leider (noch) nicht viel
Ahnung mit externen Speicherbausteinen wie FLASH, habe mich bisher nur
mit AVR's eingehend beschäftigt.

Würde mich freunen wenn mir da wer weiterhelfen kann. Sonsnt würd ic
hwider auf meien alte Idee mit nem Batteriegestützen RAM als ROM
kommen, EEPROM's mag ich mir ncith antun ^^
mfg

von Peter (Gast)


Lesenswert?

zum programmieren hilft datenblatt lesen

avrs kannst du nicht mit externem flash als programmspeicher nutzen

evtl solltest du mal beschreiben, wasfu genau machen willst

von peter dannegger (Gast)


Lesenswert?

"das wurde mir empfohlen da es leicht zu programmieren ist"

Derartige Empfehlungen hatten vielleicht vor 10 Jahren noch
Gültigkeit.

Bei älteren Büchern muß man immer vorsichtig sein, was damals Stand der
Technik war.


Flash an AVR geht nicht !

Flash kann man an 8051 anschließen, bloß wozu ?

Nimm nen 8051 mit UART-Bootloader, einfacher gehts nicht.

Oder nen ATmega und brenne nen Bootloader rein.


Peter

von Arnobär! (Gast)


Lesenswert?

Ich möche mir ein kleines Z80 system zum experimentieren bauen, das ist
alles schön gut und leicht, nur das Problem ist wie bekomm ich nen ROM
her den ich imemr wieder schnell Programmieren kann, am besten ohne das
ding da rauszunehmen, ich will ja damit experimentieren. Mit EEPROMs ist
es mir zu aufwendig, dann wurde mir hier im Forum empfohlen einfach
einen FLASH zu nehmen den ich mit I²C oder SPI programmieren kann, nur
weiß ich nicht ob das so einfach geht, mit externen Speicher hab ich
noch keine Erfahreung, bisher nur mit AVR's gearbeitet.

Hab mir aus dem Problem heraus gedacht nen AVR EEPROM-Emulator zu
bauen/coden, aber ich will das das system schon auch mal eigenständig
laufen kann halbwegs ordenlich, darum kam meien 2. Idee als ROM einfach
RAM zu nehmen, daten mit ner AVR Schaltung reinladen und mit Batterie zu
stützen um non-volatile zu sein, nur scheint das mit normalem RAM wieder
problematisch zu sein... :(

Das mit diesen Bootloadern check ich nicht was das sein soll, hab ich
schon oft gehört aber ich hab das nicht so ganz verstanden..

Also einfachgesagt ich will mir erst einmal ein minimal-z80-system
bauen mit ner CPU, nem RAM und nem ROM, erstmal nichs weiter ^^

von peter dannegger (Gast)


Lesenswert?

Ein Bootloader ist ein Programm, welches eine Schreibroutine für einen
Flash beinhaltet und eine Empfangsroutine z.B. über die UART, um die zu
schreibendden Daten zu empfangen.

Da ein Flash während des Schreibens nicht lesbar ist, ist der
Bootloader in einem extra ROM/Flash-Bereich untergebracht.

Bei den 8051 ist er ab Werk drin, bei den AVRs muß man ihn erst
reinbrennen, z.B. über SPI.


Willst Du aber eine ROM-less CPU mit Bootloader ausrüsten, dann mußt Du
also 2 Flash-ICs dranpappen, wovon einer irgendwie mit dem Bootloader in
einem Programmiergerät gefüttert werden muß.

Da sich aber die Flashhersteller 1000 verschiedene
Programmieralgorithmen ausgedacht haben, mußt Du erstmal einen
Bootloader schreiben, für genau den Flash, den Du später einsetzen
willst.

Alternativ könntest Du einen EEPROM nehmen, die sind alle ähnlich zu
beschreiben (wie SRAM und dann Ready-Polling) und unterscheiden sich
nur in der Größe einer Page.


Peter

von Arnobär! (Gast)


Lesenswert?

Danke für die gute erläuterung!

Hm, also werd ich um nen EEPROM ncith rumkommen, einfahc ist es schon
so ein EEPROM nur hald aufwendig weil ic hmir erst nen Programmer Bauen
muss udn das ding jedesmal raus/rein tun muss :/

Ich denke ich werde mir für das experimentieren einen ROM-Emulator mit
nem mega16 basteln über rs232 und schick dem dann immer den
Programmcode so, der Z80 läuft mit 1MHz eh viel langsamer, da sollte
der AVR mit 8 oder 16Mhz schon mitkommen zum datensampeln, das geht
wohl am schnellsten fürs erste rumspielen solange ich alle 30sec das
Programm verbessere :)

von SIGINT (Gast)


Lesenswert?

Hi,
  das EEPROM ist eigentlich ne praktische Sache, wenn du ein Bootloader
hast: Du kannst wie bei einem SRAM einfach die Programme reinschreiben
und mit einem Jumper den Bootloader aus dem Speicher ausblenden. So hab
ich das mit meinem 8051-Board gemacht. Du must halt nur einmal den
Bootloader in ein ROM schreiben.

Gruss,
  SIGINT

von Karl H. (kbuchegg)


Lesenswert?

So wild ist die Brennerei auch wieder nicht. OK, am
Anfang brennt man schon ein paar mal das EPROM. Aber
dann
hat man ganz schnell einen 'Monitor' (*) im System, mit
dem der Z80 über die Serielle empfangen und ins RAM
schreiben kann.

(*) Ein Monitor ist in diesem Zusammenhang nicht das Teil
das vor dir steht und in das du stundenlang reinglotzen kannst.
Unter Monitor versteht man ein 'Minimal-Betriebssystem' das
beim Einschalten die Kontrolle kriegt. Normale Befehle an so
einen Monitor sind: Hex-Dump, Byte editieren, Sprung an eine
bestimmte Adresse, I/O Port ansprechen und eben auch: Bytes
von der Seriellen an eine bestimmte Adresse schreiben. Gute
Monitore haben auch so was wie einen Debugger eingebaut, mit
dem man ein Program auf Assembler-Ebene durchsteppen, bzw.
disassemblieren kann.
Hast du so einen Monitor erst mal im EPROM, reduziert sich die
EPROM-Brennfrequenz drastisch.

von Sebastian Heyn (Gast)


Lesenswert?

ich würde auch ein z80 system mit sram anstelle von eeprom machen (wenn
es zum experimentieren ist) und dann nen AVR zusätzlich ranbauen, der
ein programm hat, dass über uart den sram beschreibt. vorteil dabei ist
das der eeprom/flash nicht irgendwann kaputt ist.

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.