Forum: Mikrocontroller und Digitale Elektronik RAM mit Adresslatch gesucht


von Nils E. (yetanotheruser)


Lesenswert?

Hallo Forum,

ich suche ein 8-bit breites SRAM, dass ein Adresslatch bereits enthält. 
Kann mir jemand einen Tipp geben?

Danke!

von ARM-Fan (Gast)


Lesenswert?

Wie groß soll das SRAM denn sein?

von yetanotheruser (Gast)


Lesenswert?

na, sowas in der Größenordnung um 8-32 KB. Grösser wäre auch nicht 
tragisch...

von Falk (Gast)


Lesenswert?

@ 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

von Nullpainter (Gast)


Lesenswert?

So ein Adresslatch 74hc574 kostet in der region von 20 pfennigen. Was 
soll das bringen, dieses Bautil ins RAM zu integrieren ?

von Nils E. (yetanotheruser)


Lesenswert?

> 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.

von Andreas K. (a-k)


Lesenswert?

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... ;-)

von Andreas K. (a-k)


Lesenswert?

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.

von Hm (Gast)


Lesenswert?

Wenn ich das

http://www.freepatentsonline.com/5349565.html

richtig interpretiere wurde es zumindest erfunden ...

von ARM-Fan (Gast)


Lesenswert?

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.

von Andreas K. (a-k)


Lesenswert?

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.

von Nils E. (yetanotheruser)


Lesenswert?

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

von Andreas K. (a-k)


Lesenswert?

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.

von Nils E. (yetanotheruser)


Lesenswert?

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

von Andreas K. (a-k)


Lesenswert?

> 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.

von Nils E. (yetanotheruser)


Lesenswert?

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?

von Andreas K. (a-k)


Lesenswert?

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.

von Nils E. (yetanotheruser)


Lesenswert?

> 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.

von Andreas K. (a-k)


Angehängte Dateien:

Lesenswert?

Yep, so kann man sich das Q aufblasen.

Anbei Teil 1 der Schaltung.

von Andreas K. (a-k)


Angehängte Dateien:

Lesenswert?

Und Teil 2.

von Nils E. (yetanotheruser)


Lesenswert?

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
Noch kein Account? Hier anmelden.