Hardware > Hardware (Classic 16-/32-Bit)
TOS 2.06 für alle ATARI (Mega) ST's
ToPeG:
Der 74240 muss ein 74F240 oder 74ALS240 sein. auch der 7402 muss ein 74F02 oder 74ALS02 sein. Wenn die beiden zu langsam sind, dann wird das /ROM2 Signal nicht schnell genug durch geleitet und der Atari bootet nicht.
Ich dachte ich hätte darauf schon hingewiesen.
Solltest du keinen 74F240 oder 74ALS240 bekommen kannst du das /ROM2 Signal auch am 7402 invertieren. Dazu legst du das /ROM2 an die Pins5,6 Pin4 verbindest du dann mit Pin12. Damit umgehst du den langsamen 74LS240.
Beim 7402 ist es wichtig das er richtig schnell ist. Wenn du einen 74S02 bekommen kannst ist es noch besser. Das problem ist nämlich, das die GLUE schon das /DTACK gesendet hat bevor es das /ROM2 Signal aktiviert. der 68000 will also schon lesen. Ist die Schaltung zu langsam. Beendet der 68000 den Vorgang bevor die EPROMs aktiviert werden konnten. Und die EPROMS brauchen auch noch Zeit, bis sie Die Daten auf den Bus legen.
Das ganze ist nach dem ersten Zugriff weit weniger kritisch. Da hat die Schaltung "viel mehr" Zeit die Adresse zu dekodieren und das /CS bzw. das /DTACK zu erzeugen.
Du kannst aber schon testen, ob die Schaltung funktioniert.
Als erstes machst du einen Generellen Funktionstest:
Verbinde R/W, A23,A22,A21 mit 5V, Verbinde A20, A19, A18 mit Masse. An /CS schießt du ein ein Voltmeter (Multimeter auf Gleichspannungsmessung 5V) an. Wenn du /AS und /ROM2 mit 5V verbindest sollte das Multimeter ~5V zeigen ( so zwischen 2,5 und 4,5V) Sobald du einen der beiden Letungen mit Masse in Verbindung bringst (und den anderen an 5V lässt) sollte der /CS auch Low werden (zwischen 0V und 0.5V)
Das Wechseln von /AS sollte auch das /DTACK Signal verändern. Aber das Wechseln von /ROM2 sollte das /DATCK nicht beeinflussen. Ist /AS gegen Masse geschaltet, so hat /DATCK 0V, Ist /AS gegen 5V geschaltet so wird eine krumme Spannung zwischen 1,5V und 3.5V gemessen. Das ist normal. Der Ausgang ist "gesperrt" wenn er nicht aktiviert ist. Das Messgerät misst sich sozusagen selber.
Sollte es immer 0V anzeigen, so hast du ein gutes Gerät und musst die Leitung mit einem Widerstand mit 5V verbinden. Der Widerstand sollte so zwischen 1KOhm und 10KOhm haben. (es kommt nicht so darauf an.) Das macht aus dem Open Collector Ausgang einen Normalen Ausgang der zwischen 5V und 0V schaltet.
Wenn alles soweit funktioniert kannst du dir recht sicher sein, dass du alles richtig verlötet hast. Sollte es nicht funktionieren Liegt der Fehler entweder bei mir oder Du hasst einen Fehler mit dem Verkabeln gemacht.
Fehler die ich bei mir immer suche:
- Brücken gelötet? (passiert ständig. Man muss Immer benachbarte Lötstellen gegeneinander auf Durchgang prüfen.)
- Unsaubere oder kalte Lötstellen?
- Beim anschließen Verzählt?
- Beim umdrehen die Seiten der ICs vertauscht? (passiert mir ständig.)
- Hat ein Kabel einen Kabelbruch?
- Sind die ICs in Ordnung? (gegen andere Tauschen)
Du kannst auch einen vollen Funktionstest machen.
/AS gegen Masse legen und /ROM gegen 5V und dann alle Anderen Eingänge Durch testen Einzeln von der vorgegebenen Polung lösen und an die Gegenteilige legen dann wechselt /CS und /DATCK passend dazu. Bei jedem Spannungswechsel sollte auch die Ausgänge die Spannung wechseln.
Wenn das Funktioniert, Dann ist die Schaltung soweit in Ordnung.
Jetzt noch etwas Hintergrund zur Schaltung. Wenn Die Adressleitungen A23=1,A22=1,A21=1 und A20=0 sind Ist das das Hexadezimale "C" Sind die anderen Adressleitungen auf 0 so bekommt man insgesamt "C00000". Das ist die Basisadresse der neueren TOS ROMs.
Wenn dann noch R/W=1 (es wird gelesen) und /AS=0 (Adresse auf dem Bus ist Gültig) ist, wird das /DTACK erzeugt. Dann wird das Signal mit dem /ROM2 verknüpft, und zwar mit einem ODER.
Das heißt wenn /ROM2 aktiv ist oder die richtige Adresse anliegt, oder die richtige Adresse anliegt und /ROM2 aktiv ist, ist /CS aktiv (low, 0V).
Nun kannst du testen, ob der Adressdecoder auch schnell genug ist.
Dazu baust du alles so auf das du von den alten ROMS booten kannst. Du verbindest Alle Signale bis auf das /CS, das lässt du offen. Der Rechner sollte noch normal booten. Wenn das nicht der Fall ist, hast du etwas falsch angeschlossen.
Nun schreibst du ein ganz kleines GFA-Basic Progrämmchen:
--- Code: ---print HEX$(LPEEK(&HC00000),16)
--- Ende Code ---
Das ließt ein Word (16Bit) von "C00000". Auf dem Bildschirm sollte "FFFF" stehen. Stürzt das Programm mit zwei Bomben ab. Funktioniert Die Schaltung nicht, denn das DTACK wird gar nicht, oder zu spät gesendet.
Die Fehler können sein:
- An die falschen Signale Angeschlossen. (noch mal die Pinouts prüfen)
- Die Stromversorgung ist zu schwach. (An einer anderen Stelle anlöten, Einen Condesator nahe den IC zwischen +5V und Masse löten)
- Die Kabel sind zu lang.
Solltes es Funktionieren kannst du einen Abstrurz provozieren, indem du
--- Code: ---LPOKE(&HC00000,&HFF)
--- Ende Code ---
schreibst. Wenn die Schaltung korrekt funktioniert, wird erkannt das auf die ROMs geschrieben werden soll (R/W ist low) und die Schaltung sendet kein /DATCK. Funktioniert das wird R/W nicht richtig dekodiert.
Wenn alles wie erwartet Funktioniert, schließt du die Beiden ROMS symmetrisch (gleich) an. Bootet er nicht, kann nur noch liegen das das /CS Signal nicht oder nicht rechtzeitig an den ROMS ankommt. Entweder ist etwas falsch angeschlossen, oder die ICs sind zu langsam.
Ich bin mir einigermaßen sicher, das die Schaltung funktioniert. So sicher wie man sein kann wenn man eine Schaltung der Art das letzte mal vor einigen Jahren frei zusammen gelötet hat. Aber das ist keine Quantenphysik. Die Logik dahinter ist einfach.
IRATA:
Hallo noch mal
Jetzt bin ich am Zweifeln...
Bin noch einmal die Geschichte ROM2, CE und A16, A17 "zu Fuß" nach Schaltplan nachgegangen.
ROM2 hab ich nun an Pin11 von U68, ist identisch mit dem Päd., aber Dichter am "Chip-Tower". Das Ce Speise ich in das Päd. Ein, welches mit Pin 20 der Chips verbunden ist.
Bei A16 sind die 1M-Pads gebrückt und Pin 2 der Eproms sind mit dem Päd. Verbunden, welches direkten Kontakt zu A17 (Pin45 CPU) hat.
Da sollte eigentlich alles passen?
Hab meine Anschlüsse noch einmal mit Deiner Hilfe verglichen, das paßt auch.
Woran könnte es nun noch liegen?
MfG
IRATA
Burkhard Mankel:
--- Zitat von: IRATA am Fr 31.08.2012, 19:28:34 ---Hallo noch mal
Jetzt bin ich am Zweifeln...
Bin noch einmal die Geschichte ROM2, CE und A16, A17 "zu Fuß" nach Schaltplan nachgegangen.
ROM2 hab ich nun an Pin11 von U68, ist identisch mit dem Päd., aber Dichter am "Chip-Tower". Das Ce Speise ich in das Päd. Ein, welches mit Pin 20 der Chips verbunden ist.
Bei A16 sind die 1M-Pads gebrückt und Pin 2 der Eproms sind mit dem Päd. Verbunden, welches direkten Kontakt zu A17 (Pin45 CPU) hat.
Da sollte eigentlich alles passen?
Hab meine Anschlüsse noch einmal mit Deiner Hilfe verglichen, das paßt auch.
Woran könnte es nun noch liegen?
MfG
IRATA
--- Ende Zitat ---
Ich möchte ja kein besserwisser sein und Elektronisch bin ich auch eher ein Flachmann, Aber hast Du ToPeGs Hinweise auf die Durchschaltgeschwindigkeiten jetzt beachtet? Schon im Post #3 drückte er dazu aus:
--- Zitat von: ToPeG am Di 28.08.2012, 13:54:01 ---Zumindest der 7402 muss ein 74F02 oder 74ALS02 sein besser wenn der 74240 auch ein 74F240 oder 74ALS240 ist. Hier ist die Laufzeit kritisch.
Speziell das /ROM2 Signal muss sehr schnell durch gereicht werden, da die GLUE keine Verzögerung einrechnet wenn sie /ROM2 aktiviert. Ist das Signal zu langsam, ließt der 68000 nur Müll und stürzt ab.
--- Ende Zitat ---
Im Post #15 hatte er auch noch einmal d'rauf hingewiesen:
--- Zitat von: ToPeG am Fr 31.08.2012, 19:21:14 ---Der 74240 muss ein 74F240 oder 74ALS240 sein. auch der 7402 muss ein 74F02 oder 74ALS02 sein. Wenn die beiden zu langsam sind, dann wird das /ROM2 Signal nicht schnell genug durch geleitet und der Atari bootet nicht.
Ich dachte ich hätte darauf schon hingewiesen.
Solltest du keinen 74F240 oder 74ALS240 bekommen kannst du das /ROM2 Signal auch am 7402 invertieren. Dazu legst du das /ROM2 an die Pins5,6 Pin4 verbindest du dann mit Pin12. Damit umgehst du den langsamen 74LS240.
Beim 7402 ist es wichtig das er richtig schnell ist. Wenn du einen 74S02 bekommen kannst ist es noch besser. Das problem ist nämlich, das die GLUE schon das /DTACK gesendet hat bevor es das /ROM2 Signal aktiviert. der 68000 will also schon lesen. Ist die Schaltung zu langsam. Beendet der 68000 den Vorgang bevor die EPROMs aktiviert werden konnten. Und die EPROMS brauchen auch noch Zeit, bis sie Die Daten auf den Bus legen.
...
--- Ende Zitat ---
Du hattest in Deinem Post #14 erwähnt, bei Dir finden LS-Typen Verwendung. ToPeG erwähnte aber daß es wichtig sei, "F" oder gar ALS-Typen einzusetzen!
IRATA:
Hallo
Schon klar, hab schon ALS-Typen geordert.
Wenn es denn daran lag, wie schon vermutet, mein Fehler.
Wär mir ehrlich gesagt die liebste Variante.
MfG
IRATA
ToPeG:
Mit deiner jetzt schon aufgebauten Schaltung kannst du dennoch viele der von mir aufgeführten Tests machen. Damit kannst du schon die reine Funktionslogik testen. Dann kannst du sicher sein, das die Schaltung so aufgebaut Grundsätzlich funktioniert.
Hier noch einen Funktionstester:
Und die Logikmatrix dazu.
0 = low (GND, 0v, Schalter geschlossen, LED leuchtet nicht)
1 = high (+5V, Schalter offen, LED Leuchtet)
X = Schalterstellung hat keinen Einfluss auf den Ausgang, Ausgang unbestimmt
S1 (/AS)S2 (/ROM)S3 (R/W)S4 (A23)S5 (A22)S6 (A21)S7 (A20)S8 (A19)S9 (A18)|D1 (/DTACK)D2 (/CE)11XXXXXXX|00X0XXXXXXX|X10X1111000|11 | 010XXXXXX|0001X0XXXXX|0001XX0XXXX|0001XXX0XXX|0001XXXX1XX|0001XXXXX1X|0001XXXXXX1|00 | 000XXXXXX|0100X0XXXXX|0100XX0XXXX|0100XXX0XXX|0100XXXX1XX|0100XXXXX1X|0100XXXXXX1|01
So was ist schnell mit steifem Draht ("Klingeldrat") und Klebeband auf einem Stück Pappe zusammen gelötet. Nachher kann man die brauchbaren Teile wider auslöten.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln