Forum: Mikrocontroller und Digitale Elektronik Ersatz für parallelen Eprom für Entwicklungszwecke - Atmega?


von Micha (Gast)


Lesenswert?

ich bin grade dabei, ein Z180 System auf Breadboard zusammenzustricken. 
Genauer gesagt steh ich ganz am Anfang. Ich möchte dem Z180 etwas SRAM 
und ROM spendieren, bei letzterem denk ich an einen 27128 Eprom, da ich 
davon ein paar in der Bastelkiste hab.

Im Zuge der weiteren Experimente wird es dann wohl ziemlich oft 
notwendig, den Eproms neu zu schreiben. Jedesmal ausm Breadboard 
rausziehen, löschen, neu beschreiben, wieder einstecken hört sich 
überhaupt nicht nach einer guten Idee an.

Ich hab überlegt, was es an Alternativen gäbe. Was mir eingefallen ist: 
einen Atmega 1284p (davon hab ich einen in der Kiste) so zurechtbasteln, 
dass er sich wie der Eprom verhält. Pinkompatibilität ist egal, 
hauptsache die Signale sind irgendwo verfügbar und der Atmega verhält 
sich nach ausssen wie ein Rom, und das möglichst flott.

Ist das eine völlige Schnapsidee? Gibt es eventuell eine bessere 
Alternative? Hat eventuell zufällig schon mal jemand sowas gemacht und 
ne fertige Firmware dafür? Hab bisher selber nur mit C programmiert, für 
das hier wär sicher Assembler besser?

von holger (Gast)


Lesenswert?

>Pinkompatibilität ist egal,
>hauptsache die Signale sind irgendwo verfügbar und der Atmega verhält
>sich nach ausssen wie ein Rom, und das möglichst flott.
>
>Ist das eine völlige Schnapsidee?

Einen Epromsimulator baut man am besten mit einem RAM, einem CPLD 
(evtl.)
und einem uC der dann das programmieren des RAMs steuert.

von holger (Gast)


Lesenswert?

>Einen Epromsimulator baut man am besten mit einem RAM,

Oder mit einem Flash damit das Programm auch einen Stromausfall 
überlebt;)

von Micha (Gast)


Lesenswert?

Das ist eine sehr gute Idee, vielen Dank!

Würde bedeuten der Z180 bekommt in dem gesamten Adressraum einen SRAM 
(ich hab zunächst nicht vor mehr als 64K zu nutzen), und ein Atmega 
würde z.B. nach dem Systemstart den Z180 zunächst irgendwie anhalten, 
den unteren Bereich des SRAM beschreiben, und dann den Z180 freigeben 
oder resetten?

Mir fehlen im Moment noch etwas die Detailkenntnisse zum Z180 wie das 
genau geht, aber zumindest eine grobe Vorstellung hab ich, in die 
Details kann ich mich sicherlich einlesen.

von holger (Gast)


Lesenswert?

>Würde bedeuten der Z180 bekommt in dem gesamten Adressraum einen SRAM
>(ich hab zunächst nicht vor mehr als 64K zu nutzen), und ein Atmega
>würde z.B. nach dem Systemstart den Z180 zunächst irgendwie anhalten,
>den unteren Bereich des SRAM beschreiben, und dann den Z180 freigeben
>oder resetten?

Genau so.

von ./. (Gast)


Lesenswert?

Ohne den Z180 genau zu kennen, würde ich mal vermuten das der
auch einen BUSRQ und ein BUSAK hat.

Also: Die CPU mit aktiviertem BUSRQ in Reset ziehen.

Wenn Deine Lademimik fertig ist das ganze wieder freigeben.

Ob da ein Reset alleine reicht würd ich mal bezweifeln.

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


Lesenswert?

holger schrieb:
> Einen Epromsimulator baut man am besten mit einem RAM

Ich hatte früher zum Entwickeln den 2716 durch einen 6516 mit einer
Flachbatterie als Pufferbatterie ersetzt.  Die Flachbatterie verträgt
so einigermaßen die 5 V dauerhaft. ;-)

Allerdings riskierte man schon mal, dass beim Einsetzen dann doch ein
Bit kippte … da musste man ihn halt neu beschreiben.

Heutzutage würde ich wohl auch einen pinkompatiblen Flash nehmen.

von Micha (Gast)


Lesenswert?

./. schrieb:
> Ohne den Z180 genau zu kennen, würde ich mal vermuten das der
> auch einen BUSRQ und ein BUSAK hat.
>
> Also: Die CPU mit aktiviertem BUSRQ in Reset ziehen.
>
> Wenn Deine Lademimik fertig ist das ganze wieder freigeben.


Ja, der Z180 hat /BUSRQ und /BUSACK. Würde der Ablauf aus Sicht des 
Atmel dann so ablaufen?

1) /BUSREQ auf 0 setzen
2) auf /BUSACK = 0 warten
3) /RESET auf 0 schalten
4) den SRAM mit Inhalten beschreiben (ich denk das bekomm ich hin)
5) die I/O Pins des Atmega die am Daten+Adressbus hängen auf Input 
schalten damit sie nicht mehr stören - ist das so korrekt???
6) /BUSREQ wieder auf 1 setzen
7) /RESET auf 1 setzen damit der Z180 neu starten kann

von Thomas E. (thomase)


Lesenswert?

Micha schrieb:
> ./. schrieb:
>> Ohne den Z180 genau zu kennen, würde ich mal vermuten das der
>> auch einen BUSRQ und ein BUSAK hat.
>>
>> Also: Die CPU mit aktiviertem BUSRQ in Reset ziehen.
>>
>> Wenn Deine Lademimik fertig ist das ganze wieder freigeben.
>
>
> Ja, der Z180 hat /BUSRQ und /BUSACK. Würde der Ablauf aus Sicht des
> Atmel dann so ablaufen?
>
> 1) /BUSREQ auf 0 setzen
> 2) auf /BUSACK = 0 warten
> 3) /RESET auf 0 schalten
> 4) den SRAM mit Inhalten beschreiben (ich denk das bekomm ich hin)
> 5) die I/O Pins des Atmega die am Daten+Adressbus hängen auf Input
> schalten damit sie nicht mehr stören - ist das so korrekt???
> 6) /BUSREQ wieder auf 1 setzen
> 7) /RESET auf 1 setzen damit der Z180 neu starten kann

Ja.
1 und 2 kannst du weglassen. Reset und der Z180 ist ruhig. Steht ohnehin 
nichts oder Müll am Anfang drin.

Ich hab sowas früher mit einer ISA-Karte im PC gemacht. Mit ein paar 
Latches das RAM übernommen und das Programm draufgespielt. Da kriegte 
der 8051 sein Programm von der Festplatte. Mit einem DOS-Programm im 
Hintergrund. Noch bevor Windows gestartet wurde.

mfg.

von Reinhard Kern (Gast)


Lesenswert?

Micha schrieb:
> Würde bedeuten der Z180 bekommt in dem gesamten Adressraum einen SRAM

Ja, wenn du die Hardware neu entwirfst. Für vorhandene Hardware gab es 
"EProm-Emulatoren", das war auch ein Ram mit Zugriff durch einen 
Controller oder andere Hardware zum Laden, dann konnte man es per 24/28 
poligem Kabel mit entsprechendem DIL-Stecker statt des Eproms ins System 
stecken. Sowas geht mit jedem System und es gibt sicher auch noch 
Bauanleitungen dafür. Wenn man das Ladekabel (z.B. V24) dranlässt und 
vom PC bei Bedarf die Software neu lädt, kann man damit recht 
komfortabel arbeiten, aber halt nicht debuggen wie heute. Blöd ist es, 
wenn man ein System hat, das 3 oder 4 Eproms braucht, das war damals in 
der Steinzeit halt manchmal notwendig.

Gruss Reinhard

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.