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?
>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.
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.
>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.
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.
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.
./. 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
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.
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
Eine eigene Frage?
Dieser Thread ist über 13 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.