Hallo Forum, ich suche ein 8-bit breites SRAM, dass ein Adresslatch bereits enthält. Kann mir jemand einen Tipp geben? Danke!
na, sowas in der Größenordnung um 8-32 KB. Grösser wäre auch nicht tragisch...
@ Nils Eilers (yetanotheruser) >ich suche ein 8-bit breites SRAM, dass ein Adresslatch bereits enthält. >Kann mir jemand einen Tipp geben? Gibt es AFAIK nicht. Wozu auch? MFG Falk
So ein Adresslatch 74hc574 kostet in der region von 20 pfennigen. Was soll das bringen, dieses Bautil ins RAM zu integrieren ?
> Gibt es AFAIK nicht. Wozu auch?
ähm... um bei einem Minimal-Design um eine 1802-CPU das Adresslatch
einzusparen? Schließlich gibt's ja auch EPROMs mit integriertem
Adresslatch.
Es geht nicht ums Geld - sondern um den Platz und um die Arbeit, das
Ding in Fädeltechnik (nicht) einlöten zu müssen.
Anno 1802 waren 8-32KB RAM weit jenseits dessen, was man als Minimaldesign ansehen kann, daher ist sowas nicht einmal in der CDP18xx Reihe zu finden. Aber dass es ausser mir noch einen Irren geben sollte, der sich mit CDP1802 rumschlägt, also nee... ;-)
Ach ja: Page-Mode DRAM. Einzelne x8-Chips sind da zwar selten zu finden, aber antike 30pin/8bit-SIMMs sollten sich im Rechnerschrott von "Sammlern" mühelos finden lassen. Multiplex und Timing vom CDP1802 machen Anbindung von DRAM nicht schwer, und für den Refresh brauchts nur noch einen Zeitgeber. Ok, einfacher ist es insgesamt nicht, Latch eingespart dafür bischen anderen Kram investiert. Aber originell wärs.
Wenn ich das http://www.freepatentsonline.com/5349565.html richtig interpretiere wurde es zumindest erfunden ...
Wie wärs mit nem PSD833F2 von ST? Hat neben 128k Flash auch noch 8k SRAM an Board. Die ganze Latch- und Adresslogik ist auch mit dabei. Klar, der Kanditat ist etwas übers Ziel hinaus und mit PLCC auch nicht fädelbar... aber vielleicht hilfts trotzdem.
Nettes Teil. Aber wenn Nils das mit dem 1802 ernst gemeint hat, erspart ihm der PSD833F2 das Adress-Latch auch nicht. RCA war nämlich recht kreativ und hat A0-7 mit A8-15 gemultiplext.
Hallo Andreas, > wenn Nils das mit dem 1802 ernst gemeint hat, erspart > ihm der PSD833F2 das Adress-Latch auch nicht. RCA war nämlich recht > kreativ und hat A0-7 mit A8-15 gemultiplext. aaaargh....!!! Ja, Du hast (leider!) Recht! Das habe ich ja gar nicht bedacht... Dann kann ich die Verwendung der 87C64-EPROMs auch vergessen und die ganze Latch-Einspar-Idee platzt wie eine Blase :-( Aber wenn ich dadurch noch einen anderen 1802-Freak gefunden habe, hat sich der Thread ja mehr als gelohnt! :-) Vielen Dank für all Eure Antworten und Anregungen! Viele Grüße, Nils
Ich habe dafür immerhin zeitgemässe CD4042 verwendet. Bei den I/O-Dekodern wars mir allerdings zu blöd, um die fehlenden '138er herumzuwursteln. Dafür habe ich die 3 Taktsignale, die mein Board braucht, mit einem Tiny45 erzeugt. Das wäre zwar problemlos auch anders gegangen, aber erstens hatte ich grad keinen 3,2MHz Quarz, zweitens fand ich es irgendwie witzig dem 1802 einen Kollegen zu Dienste zu geben, der mehr als 2 Grössenordnungen schneller ist. Wie machst du eigentlich den Bootstrap? Meine Board ist völlig ROM-frei, schliesslich ist es bloss zum rumspielen da. Den Bootloader bildet der 1802-eigene LOAD-Modus in Verbindung mit einem per DMA angebundenen recht zeitgemässen (lies:antiken) Async-Wandler AY-3-1015. Ergibt einen prima Bootloader wie in modernen Controllern, der aber ohne ein einziges Byte Software auskommt. Kann man aber auch auf Basis vom Druckerport machen.
Hallo Andreas, CD4042... sehr cool! :-) Für das Adresslatch habe einen 74HCT573 verwendet. Als I/O-Decoder habe ich zwei 138er im Einsatz, wobei ich für die Ausgabeseite besser einen 238er verwendet hätte - der hat die Inverter nach den Ausgängen quasi schon integriert; ich hätte mir dann die 74HCT04 gespart. Die 138er gehen dann auf eine Reihe 74HCT574 bzw. 74HCT541. Einen 3,2MHz-Quarz hatte ich auch nicht, ich habe einen 2.0 MHz-Quarz verwendet, weil ich mein Design kompatibel zum pico-Elf halten wollte. Dementsprechend sieht auch der Boot-strap aus: ganz klassisch (um nicht zu sagen: langweilig) aus einem EEPROM, das in einem ZIF-Sockel steckt. Beim ersten Zugriff auf >7FFFh werden die beiden 32K-Bänke vertauscht, so daß das RAM nach "unten" zu liegen kommt. Und ebenfalls eine Besonderheit des pico-Elf-Designs ist, daß für die Eingabe ein langer Puls erzeugt wird (von einschließlich TPA bis TPB), um den Eingabegeräten mehr Zeit zu geben. Den Boot per DMA habe ich mir einmal angesehen und fand das ganz beeindruckend, aber da dies mein erster Eigenbau-Rechner ist und mir Architekturen wie Z80 oder 6502 wesentlich vertrauter sind, habe ich mir nicht zugetraut, so etwas auf Anhieb an's Laufen zu bekommen. Kannst Du mit dem AY-3-1015 nur booten, oder auch im laufenden Betrieb mit dem PC Daten tauschen? Ich würde mich sehr freuen, wenn Du mir den Schaltplan zukommen lassen würdest - bin immer gespannt, wie andere etwas gelöst haben! Viele Grüße, Nils
> Kannst Du mit dem AY-3-1015 nur booten, oder auch im laufenden Betrieb > mit dem PC Daten tauschen? Geht beides, wenn Loader geht, geht auch Empfang per DMA. Man muss nur regelmässig darauf achten, dass der DMA-Puffer nicht überläuft. Gesendet wird ganz gewöhnlich. Ports sind derzeit noch keine drauf. Wenn benötigt, dann werden Outputs allerdings eher vom Typ '259 sein. Die sind bitweise statt byteweise ansprechbar, was Bitsteuerung stark vereinfacht. Schaltplan gibts später. I/O-seitig bin ich am überlegen, ob ich die Groteske eine Runde weiter drehe und dafür einen Z8-UPC dranhänge. Das ist ein fast ROM-freier Z8-Controller mit 2KB Huckepack-RAM und Bootstrap-Loader, der dann per Bus-Slave am 1802 hängt und von diesem gebootet wird. Davon habe ich auch ein paar rumliegen.
Wenn man beim 74xx259 /CLR auf high und /EN auf low hält, den Q-Ausgang der 1802 CPU an D legt, könnte man dann damit 8 Q-Ausgänge schaffen, die den jeweils letzten Zustand vor der Umschaltung beibehalten? Nach so einer Lösung suche ich noch, da sowohl mein serielles Interface, als auch ein SD-Karten-Interface, das ich gerne aufbauen möchte, den Q-Ausgang belegen. Ein weiterer Slave... warum nicht? So ein kleiner Zoo hat bestimmt seinen Reiz ;-) Was soll der Z8 denn für Aufgaben erledigen?
Nils Eilers wrote: > Wenn man beim 74xx259 /CLR auf high Naheliegenderweise auf Reset/Clear. > der 1802 CPU an D legt, könnte man dann damit 8 Q-Ausgänge schaffen, die > den jeweils letzten Zustand vor der Umschaltung beibehalten? Wo holst du die 3 Adressleitungen vom '259 her? Kannst dafür natürlich irgendeinen Output-Port verwenden, und das /En vom '259 so aus einem der Strobes herleiten, dass sich die Adressleitungen vom '259 nicht bei aktiven /En ändern, denn das dürfte der nicht mögen. Was ich da eher im Auge habe: Normalen 1802 Out-Port, mit D0-3 => 259:D,A-C. Output-Chip-Select aus '138 => 259:/En. Die Daten die man da reinschreibt bestimmen also das Portbit und dessen Wert. Wenn man viele Pins braucht, kann man auf die Art auch bis zu 16 von den Dingern über einen einzige Out-Port des 1802 betreiben (D4-7 für Auswahl). > Nach so einer Lösung suche ich noch, da sowohl mein serielles Interface, > als auch ein SD-Karten-Interface, das ich gerne aufbauen möchte, den > Q-Ausgang belegen. Der wird gern mehrfach verwendet. > Was soll der Z8 denn für Aufgaben erledigen? Eigentlich keine. Ein paar von diesen Dingern liegt halt schon seit 2 Jahrzehnten bei mir rum und will endlich mal ausprobiert werden.
> Was ich da eher im Auge habe: Normalen 1802 Out-Port, mit D0-3 => > 259:D,A-C. Output-Chip-Select aus '138 => 259:/En. Die Daten die man da > reinschreibt bestimmen also das Portbit und dessen Wert. Wenn man viele > Pins braucht, kann man auf die Art auch bis zu 16 von den Dingern über > einen einzige Out-Port des 1802 betreiben (D4-7 für Auswahl). Ja, das sollte funktionieren. Eine raffinierte Lösung, wenn man viele einzelne Bits braucht. Ich habe mittlerweile einen Blick in das Datenblatt des 74HCT259 geworfen und damit meine Q-Erweiterung entworfen: A-C kommen von einem ganz normalen Ausgabeport, der an einer UNGERADEN (N0=high) Adresse liegt. A --- A0 (1) B --- A1 (2) C --- A2 (3) Q --- D (13) N0 --- /LE (14) /CLEAR --- /MR (15) Über das /CLEAR an /MR ist sichergestellt, dass alle Ausgänge bei einem Reset auf 0 sind, so wie das auch beim Q der Fall ist. Über die Portausgänge A-C wird das aktive Q ausgewählt. Wenn keine Portausgabe erfolgt, ist N0=0, daher folgt das ausgewählte Q immer dem Q der CPU. Erfolgt eine Ausgabe an einem ungeradem Port, ist N0=high, daher ist das Latch immer im "memory mode", bleibt also unberührt. In diesem Fall folgt es Q nicht, was aber nicht stört, da sich bei einer Port-Ausgabe Q ohnehin nicht ändert.
cool... vielen Dank für die Schaltpläne! Werd' ich mal in Ruhe studieren... aber die Takterzeugung mit dem Atmel ist wirklich freakig... klasse!
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.