www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik simm DRAMs parallel


Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich versuche gerade zwei SIMM DRAM-Module (aus alten PCs) parallel zu 
betreiben.

Meines Wissens müßte es funktionieren, wenn sichergestellt ist, daß 
beide nCAS-Leitungen nicht gleichzeit "low" sind (also jeweils nur ein 
Modul ausgelesen wird).

Frage: Weiß jemand mit Sicherheit, ob DRAM-Module immer tristate sind, 
wenn nCAS high (und/oder nWE low) ist ?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das sind die definitiv: Nur wenn RAS und CAS beide Low sind, sind 
die Ein/Ausgänge aktiv.

Autor: Benjamin Munske (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kennt jemand Websites oder Informationen, auf welchen die Ansteuerung 
von  Simmmodulen beschrieben wird? Momentan plane ich nämlich auch diese 
anzusteuern, allerdings findet man nicht so einfach Projekte im Netz, 
die sich mit diesem Thema befasst haben!

Danke!

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
micron hat noch viele Applikationen auch zu älteren DRAM-Typen
http://www.micron.com/support/designsupport/docume...
SDRAM-Datenblätter sind unter "Obsolete" zu finden:
http://www.micron.com/support/eolpartlist.aspx?n=D...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grundlagen lassen sich sicherlich auch diesem Beitrag von Benedikt 
entnehmen:

Beitrag "2MB DRAM an AVR"

Autor: Benjamin Munske (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Christoph Db1uq: Die erste Seite ist nicht schlecht, aber auf der 2. 
Seite habe ich nichts zum Thema "Simm-Module" gefunden.

@Rufus t. Firefly: Das habe ich auch schon gefunden - bis auf die 
letzten Beiträge ist es jedoch recht alt - dachte es gäbe was neueres in 
C.

Danke schon einmal!

Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Benjamin

Mit den SIMM-RAMs habe ich schon zwei Hobby-Projekte abgeschlossen. Da 
es dort mit Dokumentation etwas mager ist, hier ein paar 
Erfahrungswerte:

- nimm Dir eines der im Forum herumschwirrenden Datenblätter 
Beitrag "2MB DRAM an AVR"

- spiele mit den Timings etwas herum

- teilweise halten RAM-Zellen ihre Werte für zig Minuten ohne Refresh, 
aber sobald die Temperaturen steigen, gehen diese Haltezeiten in den 
Keller ! Fazit: Nicht am Refresh sparen - sonst geht alles im 
Bastelzimmer perfekt und fällt dann reihenweise aus !

- die SIMMs sind recht robust

Glück auf :-)

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In dem Thread schweben auch irgendwo C beispiele rum, die 
zugriffsroutinen in Assembler, und dazu rate ich auch. Ich komme mit 
meinem Assemblercode auf ca 500kb/s bei 16MHz (AVR).

Autor: Bobby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht ist ja was dabei, was Dir weiter hilft:


Ich habe früher (15 years ago) mit DRAMs Platinen
gebaut. Die einfachste Ansteuerung geht so:


Ich beschreib das jetzt mal für ein einzelnes DRAM-IC (64Kx1):

Lesezugriff:
Zuerst R/W-Leitung richtig einstellen
(Ich glaube LOW bedeutet WRITE)

ROW-Adresse an die Adressleitungen anlegen
RAS-Setuptime abwarten
RAS-Signal aktivieren
warten
COL-Adresse anlegen
CAS-Setuptime abwarten
CAS-Signal aktivieren
warten
Nach Ablauf der Zugriffszeit steht das Datenbit am Ausgang D.
Zum Schluss RAS und CAS wieder auf HIGH setzen

Das Schreiben funktioniert genauso, nur
dass vor dem CAS-Impuls das Datenbit den gewollten Wert
haben muss.


Parallelschaltung von DRAMs:
Ein SIMM-Modul ist im Prinzip nichts anderes.
Dabei ist zu beachten, dass die Adressleitungen aller
ICs auf dem Modul parallel geschaltet sind.
Ein Mikrokontroller muss diese summierte Last treiben können.
Stichwort: FANOUT.


Zum Schluss (oder sogar am Anfang) muss man an den
Refresh denken, den fast alle DRAMs brauchen.
Dazu genügt es, alle Reihen in regelmäßigen
Abständen anzusprechen (RAS-zyklus). Im PC erledigt
das die Speicheransteuerung, also der Chipsatz.


Ciao

Autor: Benjamin Munske (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey, das ist ja sehr nett von euch!

@antworter: Hast du deine Projekte irgendwo dokumentiert, bzw. kannst du 
mir was hilfreiches zuschicken? Die Datenblätter habe ich mich schon 
gespeichert!

@Hauke Radtki: Mit ASM habe ich mich zwar auch schon in zwei Projekten 
befasst, aber ich bevorzuge ja C. Dass ASM hier deutlich besser ist, 
kann ich aber auch nicht bestreiten. Wenn ich das richtig verstanden 
habe, dann hat Benedikt (s. Link oben) in seinem Projekt eine Mischung 
davon geschrieben, sprich die zeitkritischen Sachen in ASM und die etwas 
unkritischeren Sachen in C. Das interessiert mich doch sehr - das müsste 
man mit deinen Routinen doch auch machen können.

@Bobby: Hast du davon noch gute Schaltpläne auf Lager?

Werde mich in den nächsten Tagen erst einmal einlesen in das Thema - 
Stichwort: Datenblätter ;-)

Autor: Benjamin Munske (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
*mir ...man findet anschließend doch immer wieder Fehler... ^^

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benedikts Assembler/C gemisch ist schon etwa das Optimum. Ich hab noch 
mal eigene Routinen allein in assembler geschrieben, da wenn man nur 
assembler nutzt noch ein paar dinge Optimieren kann. Nutzt du überhaupt 
einen AVR? Wenn  ja kann ich mal nen schaltplan posten. Wenn ich Zeit 
habe mache ich vielleicht sogar einen neuen, da ich nun meine Sockel für 
die Speichermodule habe und mir doch jetzt noch einige Verbesserungen 
für die alte Platine eingefallen sind.

Autor: Bobby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Bobby: Hast du davon noch gute Schaltpläne auf Lager?

Leider Nein, aber die Platinen gibt es noch.
Die Pläne waren alle handgemalt, auch die Platinenvorlagen,
mit Edding-Anreibezeichen und Tuschstift.
Weiß aber nicht wo die hingekommen sind.


War damals für einen selbstgebauten 8085-Rechner,
der schneller und billiger als der IBM-PC sein sollte
und das auch war.
Das Ding steht im Regal über meinem Schreibtisch
und wer es versucht da wegzunehmen, oh weia ;-)

(Da es zu der Zeit noch keinen Assembler gab, den man
als Student sich leisten konnte, wurde das Ganze mit
der Befehlstabelle des Chip-Herstellers binär programmiert.
Das aber nur am Rande...)


Aber denk dran: RAS-CAS-Timing beachten, Treiberleistung
richtig dimensionieren und den Refresh nicht vergessen.

Autor: Bobby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Korrektur: Muss natürlich 8088 heißen statt 8085

Autor: Benjamin Munske (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Hauke Radtki: Ja, ich nutze AVRs - die sind gut im Handling - damit 
kenne ich mich aus. Wäre sehr nett, wenn du was hochlädst zum Thema 
Schaltplan!

Etwas doof ist, dass ich gar nicht genau weiß, was ich hier für 
Simmmodule habe - nach einigen Google-Recherchen habe ich nur Anbieter 
gefunden, die ICs liefern wollen, aber kein Datenblatt!
Daher habe ich mal ein Foto gemacht und kann folgendes dazu sagen:

Linkes IC: HY514400A J-70
MittleresIC: HY514400A J-70
RechtesIC: HY531000AJ-70

Auf der Platine steht noch am Rand, dass sie von Hyundai gefertigt wurde 
und hinten steht noch JCI-S25 H.

Evtl. seht ihr sofort, wie groß die Speicherkapazität ist bzw. kennt die 
ICs oder sogar das Modul.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die beiden sind 1M x 4bit, das andere 1M x 1bit. Macht also 1MByte + 
1MBit. Es ist also der typische 1MByte Riegel mit Parity.

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anschlußbelegungen findet man im "Hardwarebook", hier als PDF:
http://pf.ku.sk/lajciak/technickevybavenie/hwbook/...
Auf Seite 253 von 441 steht sei für 30polige SIMMs, die folgenden Seiten 
für 72-, 144- und 168-pin-Module

Autor: Benjamin Munske (bennm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Infos! Das Hardwarebook finde ich ganz gut - kannte ich 
bisher noch nicht!

So, ich habe mir nun mal den Artikel "Various Methods of DRAM 
refreshing" durchgelesen und habe dazu ein paar Fragen:

1. Wenn ich das richtig verstanden habe befindet sich im Chip ein 
Zähler, der bei jedem Refresh inkrementiert wird, so dass beim nächsten 
Refresh die nächste Speicherzelle refreshed wird. Man braucht im Prinzip 
für die empfohlene Refresh-Variante (CBR) nur die Pins RAS, CAS und WE 
um zu refreshen. -> Kann diese Aufgabe dann nicht theoretisch ein ATTiny 
übernehmen, damit der "Haupt-µC" mehr Zeit für andere Dinge hat oder ist 
davon abzuraten, bzw. dies nicht möglich? Der Tiny müsste natürlich 
Synchronisiert werden, damit er nicht refresht, wenn Daten geschrieben 
werden sollen.

2. Welche Refresh-Methode wird in den Quellcodes von Benedikt bzw. Hauke 
Radtki verwendet? Habe irgendetwas von einem "mix" gelesen!?

3. Bisher habe ich noch nicht gelesen, wie viele Bits pro Schreibvorgang 
geschrieben werden - klar es kann max. 1 Byte anliegen (8 
Datenleitungen), aber es kann ja sein, dass bei einem Schreibzugriff 
immer gleich mehrere Bytes geschrieben werden müssen!?

4. Da ich laut Benedikt ein 1MB-Modul besitze, müsste bei mir der 
Adressbereich bis 2^10, sprich bis 0-4095 gehen. D.h. D0 bis D9 sind 
aktiv, richtig? Jede Adresse steht für eine Speicherzelle á 8 Bit.

So, das wars zunächst einmal.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 4. Da ich laut Benedikt ein 1MB-Modul besitze, müsste bei mir der
> Adressbereich bis 2^10, sprich bis 0-4095 gehen.

Der gemultiplexte Adressbereich geht bis 2^10. Das ist 1024, also von 
0-1023.

> D.h. D0 bis D9 sind aktiv, richtig?

Nein. Mit den Datenleitungen hat das nichts zu tun; es geht um die 
Adressleitungen A0..A9, die so ein 1 M-DRAM hat.

> Jede Adresse steht für eine Speicherzelle á 8 Bit.

Hier sind es sogar neun, da auf dem Speichermodul noch ein Paritybit 
zusätzlich vorhanden ist. Die Daten werden über die Datenleitungen 
D0..D7 und -je nach Bezeichnung- D8 übertragen.


Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benjamin Munske wrote:
> 1. Wenn ich das richtig verstanden habe befindet sich im Chip ein
> Zähler, der bei jedem Refresh inkrementiert wird, so dass beim nächsten
> Refresh die nächste Speicherzelle refreshed wird. Man braucht im Prinzip
> für die empfohlene Refresh-Variante (CBR) nur die Pins RAS, CAS und WE
> um zu refreshen. -> Kann diese Aufgabe dann nicht theoretisch ein ATTiny
> übernehmen, damit der "Haupt-µC" mehr Zeit für andere Dinge hat oder ist
> davon abzuraten, bzw. dies nicht möglich? Der Tiny müsste natürlich
> Synchronisiert werden, damit er nicht refresht, wenn Daten geschrieben
> werden sollen.

Theoretisch kann man das machen, praktisch macht das keinen Sinn.
Da du 1024 Refreshtakte alle 16ms brauchst (also 64000Takte pro 
Sekunde), kann dies der Hauptprozessor nebenbei erledigen. Bei 
durchschnittlich 3 Takten für einen Refresh sind das gerade mal 1,2% bei 
16MHz.
Die Synchronisation ist da Zeitaufwendiger.

> 2. Welche Refresh-Methode wird in den Quellcodes von Benedikt bzw. Hauke
> Radtki verwendet? Habe irgendetwas von einem "mix" gelesen!?

Ich verwende nur den CBR, da dieser eindeutig am einfachsten und somit 
am schnellsten ist: CAS auf Low legen, und danach nur noch RAS toggeln.
Bei jedem Schreib/Lesevorgang wird automatisch die ausgewählte Zeile 
refreshed.

> 3. Bisher habe ich noch nicht gelesen, wie viele Bits pro Schreibvorgang
> geschrieben werden - klar es kann max. 1 Byte anliegen (8
> Datenleitungen), aber es kann ja sein, dass bei einem Schreibzugriff
> immer gleich mehrere Bytes geschrieben werden müssen!?

Nein, es wird immer nur 1 Byte geschrieben (bzw. 16bit bei 16bit breiten 
DRAMs, aber die haben dann meist 2 CAS Anschlüsse um die Bytes einzeln 
ansprechen zu können). Für jedes weitere Byte muss man zumindest eine 
neue Spaltenadresse anlegen und CAS erneut auf High und Low setzen (das 
nennt sich dann Page Mode).

Autor: Benjamin Munske (bennm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rufus t. Firefly: Oh man, da war ich aber unkonzentriert - meinte 
natürlich von 0-1023 - darum ja 2^10 ^^ Meinte auch die Adressleitungen.

>> Jede Adresse steht für eine Speicherzelle á 8 Bit.

> Hier sind es sogar neun, da auf dem Speichermodul noch ein Paritybit
> zusätzlich vorhanden ist. Die Daten werden über die Datenleitungen
> D0..D7 und -je nach Bezeichnung- D8 übertragen.

Es werden doch aber nicht 9 Bit abgespeichert, oder? Was meinst du mit 
"je nach Bezeichnung"

Wie genau funktioniert das eigentlich mit den Paritätsbits? Bekommt man 
bei einem Fehler eine Meldung in form eines High-Bytes oder so?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benjamin Munske wrote:

> Es werden doch aber nicht 9 Bit abgespeichert, oder? Was meinst du mit
> "je nach Bezeichnung"

Wenn CAS vom Parity mit dem normalen CAS verbunden ist schon. Mit "je 
nach Bezeichnung" meint Rufus, dass die Dinger keinen einheitlichen 
Namen haben. Einige nennen den Pin D8, andere Parity usw.

> Wie genau funktioniert das eigentlich mit den Paritätsbits? Bekommt man
> bei einem Fehler eine Meldung in form eines High-Bytes oder so?

Nein. Das ist nur ein Speicher. Um die Erzeugung des Prüfbits und den 
Vergleich nachher musst du dich selbst kümmern. Die wenigsten PCs nutzen 
daher das Parity Bit.

Autor: Benjamin Munske (bennm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach so, aber das ist dann ein seperater Speicher, in dem für einen 
Schreibzyklus das Paritätsbit abgelegt wird oder wie? Weil eine 
Speicherzelle ist doch 8 Bit groß!?

Was mir noch eingefallen ist: Benutzt du Distributed- oder Burst 
Refresh?

Um noch mal zu meiner 1. Frage zurückzukommen: Stimmt das, was ich 
geschrieben habe:

> 1. Wenn ich das richtig verstanden habe befindet sich im Chip ein
> Zähler, der bei jedem Refresh inkrementiert wird, so dass beim nächsten
> Refresh die nächste Speicherzelle refreshed wird.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Parity Speicher hat nur 1bit, d.h. man kann einzelne Bits schreiben.

Ich verwende eine Mischung aus distributed und Burst Refresh: Burst 
Refresh ist effizienter, allerdings ist der Controller allerdings für 
eine weile blockiert, da das ganze in einem Interrupt läuft. Ich mache 
meist 256 Refreshs hintereinander, und das ganze 250 mal pro Sekunde.

Der interne Adresszähler ist nur im CBR Modus zu gebrauchen. Beim Hidden 
oder RAS only Refresh muss man die Adrese angeben.

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Von mir müssten 2 versionen rumschwirren. einmal werden alle zeilen auf 
einmal alle 16ms refreshed und einmal mach ich glaub ich 8 refreshs 
verteilt über die Zeit. Wieviele Refreshs man auf einmal macht hängt 
davon ab, wie groß die maximale schreiblatenz sein darf, d.h. du willst 
daten schreiben (z.b. wie in meinem beispiel ein audio signal sampeln) 
da sollte natürlich kein sample verlohren gehen.

Autor: Benjamin Munske (bennm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Idee mit dem verteilten Refresh-Prozess finde ich sehr gut - werde 
ich dann demnächst mal ausprobieren und nachvollziehen.

@Hauke Radtki: Läuft die Schaltung von dir, die hier im Forum zu finden 
ist, zuverlässig oder gibts dort noch ein paar Verbesserungsvorschläge? 
Mittlerweile glaube ich nämlich zumindest eine Übersicht über die 
DRAM-Funktionsweise zu haben und müsste mir nun eine Schaltung zum 
direkten Erproben bauen. Von deiner Schaltung würde ich allerdings nur 
den DRAM-Teil von dir übernehmen.

Mein erstes Projekt wird eine art Logik-Analyser werden, der per RS232 
mit dem PC verbunden ist. Man soll Zeitintervalle einstellen können, 
nach denen gespeichert wird, ob gerade 5V oder 0V anliegen. Am Ende der 
Messung (RAM voll!) sollen die Werte an den PC übertragen werden und ein 
Graph gezeichnet werden. Bis auf den DRAM-Teil habe ich auch alles schon 
mehrmals in ähnlichen Variationen gebaut/programmiert - sollte also 
keine all zu große Hürde darstellen - bin aber sehr gespannt, wie 
komplex es für mich wird den RAM anzusprechen, aber dank eurer Tipps 
fühle ich mich schon ganz gut darauf vorbereitet.

...und zum Debugging ist so ein Forum ja auch gut ;-)

Autor: Benjamin Munske (bennm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da fällt mir gerade noch etwas ein: Ich habe hier ja 4 Simm-Module je 
1MB liegen. Wie viele davon kann ich parallel betreiben z.B. über 
Latches bzw. wie mache ich das üblicherweise?

Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>...und zum Debugging ist so ein Forum ja auch gut ;-)

...Eher "wenn das Debugging fehlschlägt"; ein bißchen selbst probieren 
und Hirn anstrengen wird gern gesehen...

Autor: Benjamin Munske (bennm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hehe - war mir klar, dass so ein Beitrag kommt, daher habe ich ja schon 
diesen hier ans Ende gesetzt:

> ;-)

Werde sicherlich nicht posten: "Habe das jetzt `zusammengebraten` und es 
funzt net"...

Autor: Benjamin Munske (bennm)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, nach einigen Stunden Arbeit habe ich nun die erste Version meines 
zukünftigen Layouts für den schon oben erwähnten Logik-Analyser 
fertiggestellt.

Würde mich freuen, wenn ihr mal drüberschauen könntet und mich auf 
Fehler, bzw. Verbesserungen hinweisen könntet!

Funktioniert das so mit den Simm-Riegeln, wie ich das gezeichnet habe?

Zur Erklärung:

1. Habe jetzt doch alle Addressleitungen angeschlossen, da man ja evtl. 
auch mal auf 4MB-Module aufrüstet, wenn man merkt, dass 1MB zu knapp 
sind.

2. Die Input-Pins (PORTA4 bis 7) sind per DIP-Switch mit einem Pull-Down 
verbunden.

3. Passt das so mit der Kapazität vor den Ram-Riegeln? Habe gelesen, 
dass die möglicherweise einiges an Strom benötigen und man diese besser 
mit einem 100µF Kondensator unterstützen sollte - was meint ihr dazu?

Der Rest sollte eigentlich klar sein.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieht ganz gut aus: Die 47pF am Reset sind aber zu klein, 47nF wären 
besser.
WR, und RAS kannst du parallel schalten (ist aber nicht unbedingt 
notwendig, spart nur Pins). CAS reicht zur Unterscheidung der beiden 
Module.

Autor: Benjamin Munske (bennm)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ah, vielen Dank - der Tipp mit RAS und WR (bzw. bei mir heißt der ja WE) 
ist gut, dann kann ich nämlich doch die Input-Pins an Int0 und Int1 
anschließen - das könnte sinnvoll sein. An die freien Pins habe ich noch 
2 Status-Leds angebaut (ist gut zum Debugging und auch beim Betrieb.
Ein Hauptschalter und die Power-Led komplettieren die Überarbeitung.

Noch irgendwelche Anregungen? Kann es zu Störungen kommen, wenn man all 
zu hochfrequente Signale einspeist? Wenn ja - wie kann man dem an den 
Input-Pins entgegenwirken? Macht das überhaupt Sinn in dieser Schaltung?

Danke!

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leg beim MAX232 am besten noch unbenutzte Eingänge auf Masse/VCC..

(Am besten Masse, wenn du eh eine Massefläche benutzt)

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist nicht notwendig, ein MAX232 hat Pullups an den 5V Eingängen und 
Pulldowns an den RS232 Eingängen.

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also mit meiner Schaltung hatte ich beim DRAM teil eigentlich keine 
probleme.
Mehrere module schaltet man parallel, in dem man alle leitungen bis auf 
CAS parallel schaltet. Aber das hast du ja schon rausbekommen ;) Aber 4 
Eingänge für nen LA ist das nicht etwas wenig? ich würde wenigstens 8 
nehmen um 8 bit datenbusse abhören zu können.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benedikt K. wrote:
> Das ist nicht notwendig, ein MAX232 hat Pullups an den 5V Eingängen und
> Pulldowns an den RS232 Eingängen.

Verdammt, ich kann mich noch an einen Thread erinnern wo das scharf 
diskutiert wurde. Ich kann mich nicht mehr genau erinnern, aber ich 
meine MAX232 Kopien/Versionen gegeben zu haben, die das nicht hatten.. 
(?)

PS: Beitrag "Max3232 -- nur ein Kanal benötigt"
PPS: Aber hier wird ja explizit ein MAX232 verwendet - Okay okay, ich 
gebe mich geschlagen ;)

Autor: Benjamin Munske (bennm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hauke Radtki: Ja, hast schon Rest mit den 4 Eingängen, aber ich habe 
leider nicht mehr Eingänge - könnte evtl. noch an den 2 Status-Leds 
sparen. Einen größeren Prozessor könnte ich auch nehmen, allerdings 
benötige ich in der aktuellen Anwendung nur 2 Eingänge und habe hier den 
Mega 8535 herumliegen.

...Denke, dass ich die beiden Status-Leds wirklich noch gegen 2 Eingänge 
austauschen werde.

Autor: Benjamin Munske (bennm)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

da ich ein wenig Zeit gestern und heute hatte, habe ich die Schaltung 
mal entflochten - dabei ist das Resultat herausgekommen (Anhang). Jetzt 
steht mir das Ätzen bevor... könnte bei 2 Layern und so feinen 
Leiterabständen schwierig werden, aber mal sehen - bisher ging das immer 
noch.
Schaltplan erstellen, Routen, Optimieren und Kontrollieren haben 
übrigens ca. 8 Stunden gedauert.

Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da springt mir eine elendig lange Leitung ins Auge (linkes Bild, 
ATMEGA-Pin ganz rechts oben).

Nimm dort doch lieber eine Brücke...

Autor: Benjamin Munske (bennm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meinste wegen Störungen? Die Leitung hat mir auch schon etwas 
Kopfschmerzen bereitet, aber es ist in der Nähe alles zugebaut!
Wenn es unbedingt sein muss, dann würde ich das ändern, aber wenns auch 
so funktioniert, lasse ich das lieber.

Aber danke für den Hinweis!

Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da Du eh Bohrungen brauchst, würde ich an Deiner Stelle eine Brücke 
hinbasteln... aber ob es unbedingt nötig ist, kann ich nicht sagen - auf 
jeden Fall ist es schicker, wenn die Leitung nicht dreimal zwischen den 
Pins durchgeht.

Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sag mal - geht die Leitung nicht sowieso auf der TOP-Seite nach unten ?

Wenn der IC auf der TOP-Seite spiegelverkehrt zur Bottom-Seite ist, dann 
führe die Leitung doch unten lang (von dem Via ausgehend).

(ich hoffe das ist irgendwie verständlich... bin satt-und-matt)

Autor: Benjamin Munske (bennm)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So - es gibt mal wieder Neuigkeiten: Die Platine ist jetzt geätzt! Habe 
die eine Leitung nicht mehr umverlegt, da ich der Meinung war, dass es 
um diese nicht so kritisch steht (Machbarkeit / Störungen) und nur wegen 
des Designs...

Naja, jedenfalls ließ sich die Platine deutlich leichter herstellen, als 
vermutet! Das Platinenmaterial (7 Jahre alt) ließ sich trotz des Alters 
sauberst verarbeiten - war nicht schwer. Hoffe man bekommt auf dem Bild 
einen kleinen Eindruck davon, wie gut (für meine Hobby-Verhältnisse) die 
Platine geworden ist.

Werde dann demnächst die Platine bestücken, allerdings zunächst die 
SIMM-Module nicht anlöten, sondern erst einmal den µC in eine gute 
Ausgangsposition (Portrichtungen einstellen / Fuse-Bits setzen) bringen.

Gibt es eigentlich Zustände bei den SIMM-Modulen, die nicht geschaltet 
werden dürfen, weil davon das Modul Schaden nehmen könnte?
Worauf muss ich jetzt noch besonders achten?

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mal nen fehler in der ansteuerung gehabt, wo die module schon 
daten an den ausgängen hatten und ich noch die ports auf ausgang, hat 
sich nur in nem höheren stromverbrauch/erwärmung wiedergespiegelt, ging 
aber trotzdem. Scheinen recht robust zu sein die Riegel.

Die Platine sieht gut aus! 7-Jahre altes Material, hätte ich nciht 
erwartet, dass man damit so gute ergebnisse erziehlen kann. Mit was hast 
du geätzt?

PS: Wenn du brauchst ich hab einige SIMM Sockel bei ebay günstig 
erstanden, und werde die wohl kaum alle je aufbrauchen können ;) Falls 
du welche brauchst melde dich

Autor: Benjamin Munske (bennm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es handelt sich um ein Plexiglasbecken, welches beheizt wird mit einem 
Aquariumheizstab. Auf dem Grund des Beckens befindet sich ein Schlauch, 
der mit Nadeln reichlich durchstochen wurde, aus dem mit ca. 2 Bar im 
Eingang Luft austritt. Bei der Ätzflüssigkeit handelt es sich um 
Ammoniumpersulfat - gabs mal bei Reichelt - jetzt bedauerlicher Weise 
nicht mehr!? Funktioniert gut!

Mal sehen, wie sich das mit den Simm-Modulen bewährt, wenn das gut 
funktioniert hätte ich schon Interesse an Sockeln, aber warum hast du 
das nicht ein paar Tage eher gesagt - dann hätte ich dir sofort einen 
abgekauft und in die aktuelle Schaltung eingesetzt!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.