rom -> parallel port schaltung

Alle allgemeinen Themen zu Elektronik und Elektro

Alle allgemeinen Themen zu Elektronik und Elektro

Moderator: Moderatorengruppe

rom -> parallel port schaltung

Neuer Beitragvon Sunbeam am Mittwoch 26. März 2003, 09:02

hallo ich bin neu hier und weiß nicht ob es überhaupt das richtige forum ist, aber ich schreibe erstmal:

ich hab mir neulich mal ein "gerät" gebaut mit dem ich roms auslesen möchte. da ich keine selbst programmierten roms besitze, habe ich chips von megadrive cartridges genommen.
das sind roms die im word-mode arbeiten. teilweise kann ich die chips auch auslesen (ich vergleiche das mit roms die im internet liegen). es gibt aber auch welche die keine korrekten daten ausspucken.
die schaltung ist sehr einfach:

1x sockel
1x parallel connector
1x game port connector (für +5v)
2x 74hct4040 counter

alle kabel sind direkt mit den connectors verbunden. die kabel zum parallel port sind geschirm (da ich sonst müll bekommen hatte).
die software funktioniert so:

0. parallel port wird initialisiert und wartet
1. bis der stromschalter an ist
2. beide 4040 counter bekommen ein masterreset signal
3. daten werden gelesen
4. 4040 #1 bekommt ein count signal
5. 4040 #2 bekommt ein count signal wenn #1 über 0xfff ist
6. goto 3

die counters scheinen ja richtig zu zählen da ich ja schon einige korrekt auslesen konnte.
teilweise muss ich auch eine verzögerung vor dem daten lesen einsetzen damit ich die richtigen daten bekomme.
ich möchte nun gerne wissen warum manche roms sich weigern die daten in der richtigen reinfolge zu liefern, denn es kommt auch vor das sich datenblöcke wiederholen.
manchmal bekomme ich aber auch komplett falsche daten.

ich wollte mit dieser schaltung später auch gerne selbst chips programmieren (16-bit), aber wenn ich noch nichtmal die dinger richtig auslesen kann bin ich ja noch weit davon entfernt.
meine erfahrungen in elektronik liegen doch schon etwas weiter zurück. ich bin ehr der mensch der die hardware programmiert.
Sunbeam
Threadstarter
2800
 
Beiträge: 3
Registriert: Mittwoch 26. März 2003, 08:30

Neuer Beitragvon Erfinderlein am Mittwoch 26. März 2003, 19:50

Hallo,

eine Möglichkeit wäre, dass die beiden Zähler nicht stabil laufen, das kannst Du aber mit einem sauber lesbaren Prom prüfen, indem Du dieses wieder und wieder liest und beobachtest ob Fehllesungen vorkommen.
Wenn das nicht der Fall ist, liegt die Vermutung nah, dass der Inhalt von solchen Proms Einfluss auf die Steuerung Deiner Zähler nimmt. Vieleicht sogar so eine Art von Kopierschutz ???

Da ich kein grosser Softwarefreak bin, kann ich Dir dabei allerdings nicht weiterhelfen. Von der Hardwareseite betrachtet müsstest Du die Zählersteuerung selbst aufbauen und dem Computer die Fortschaltung bezw. Adresse nennen. Dann kann der nicht schummeln.
Ich habe Anfang der 70er die allerersten auf dem Markt verfügbaren FPROMS mit 32 x 8bit kaskadiert und als 64 bit Schrittschaltwerk zweckentfremdet. Da liess sich das noch Wort für Wort von Hand programmieren und ansehen.

Daraus abgeleitet könntest Du auch mittels Schaltern die Adresse anlegen und mit kleinen LED´s das Datenwort anzeigen, welches den Ärger verursacht. Kannst dann gezielt in den Block gehen welcher angeblich falsche Daten liefert und Wort für Wort anschauen.

Hoffe, dass ich Dir damit helfen konnte.

Gruss aus dem endlich wieder sonnigen Griechenland
Lothar Gutjahr bestätigt:Senneca hatte recht. Wir haben nicht zu wenig Zeit, sondern vergeuden zu viel.
Benutzeravatar
Erfinderlein
2814
Co-Admin
 
Beiträge: 4275
Registriert: Donnerstag 9. Januar 2003, 18:21
Wohnort: Neukirchen a.T.
Postleitzahl: 83364
Land: Germany / Deutschland

Neuer Beitragvon Sunbeam am Dienstag 1. April 2003, 16:03

hi,

ich habe es am wochenende nochmal probiert. einige kann ich ohne fehler so oft lesen wie ich will und andere nicht. zwei grundlegende fehler treten auf:

1. es wiederholen sich blöcke die aber keine bestimmte länge haben
2. ab einer unbestimmten adresse kommen falsche daten

im 2. fall kann ich das etwas hinaus zögern indem ich die lese geschwindigkeit drossle (w.o. beschrieben).
die mega drive konsole muss aber diese dinger korrekt lesen können sonst würden sie ja nicht funktionieren. es gibt auch keine zusätzlichen leitungen die ich vergessen habe. alle a<n>, d<n>, oe, ce sind angeschlossen. wenn die roms die zähler stören dann müssen die a<n> leitungen ja auch ein output haben, oder sehe ich das falsch?

die komplette steuerung habe ich in der software. nur die beiden 4040 "denken" beständig. so gesehen kann ich alles machen was ich will.
Sunbeam
Threadstarter
2903
 
Beiträge: 3
Registriert: Mittwoch 26. März 2003, 08:30

Neuer Beitragvon Erfinderlein am Dienstag 1. April 2003, 18:08

hi,

aus meiner Sicht steckt das Problem in der Softwaresteuerung, welche bei gewissen Datenwörtern aus den gelesenen Proms Sprünge und sonstige unanständige Sachen macht ??? Gerade der Hinweis, dass sich Blöcke wiederholen, verstärkt diesen Verdacht .

Aber wie schon erwähnt an dieser Stelle kann ich Dir nur in so weit raten, an kritischen Stellen die Adresse merken und diese wie zuletzt vorgeschlagen von Hand auslesen. Auch könntest Du so einen Blockbereich in ein funktionierendes Prom kopieren und sehen ob dann die selbe "Ferkelei" passiert ?

Gruss aus GR
Lothar Gutjahr bestätigt:Senneca hatte recht. Wir haben nicht zu wenig Zeit, sondern vergeuden zu viel.
Benutzeravatar
Erfinderlein
2905
Co-Admin
 
Beiträge: 4275
Registriert: Donnerstag 9. Januar 2003, 18:21
Wohnort: Neukirchen a.T.
Postleitzahl: 83364
Land: Germany / Deutschland

Neuer Beitragvon CT am Dienstag 1. April 2003, 19:56

Mit welcher Prog-Sprache hast Du denn Dein Ausleseprogramm geschrieben? Mit C? Oder "nur" mit Basic?

Wenn Du es mit C gelöst hast, liegt es evtl., wie Du auch schon teilweise selber bemerkt hast, an dem Timing der Chips. Wenn diese vorgeschriebenen (im Datenblatt) Zeiten nicht eingehalten werden, kommt der Chip in eine Art graue Zone, wo er mal funktioniert, mal nicht.
Mit Timing ist nicht nur die max. Taktrate gemeint, sondern auch bestimmte delays, hold-up zeiten und so weiter. Vielleicht setzt Du nachdem Du die 4040er inkrementiert hast einfach mal mehr Verzögerung ein, bevor zu die Zustände am ROM abfragst.

Mit Basic passiert sowas garantiert nicht, denn Basic ist, begründet durch das "Zeile für Zeile compilieren" sau-laaaahm.

Ist Dein Fehler eigentlich reproduzierbar? Also ist er immer an einer bestimmten Adresse, bzw Inkrement-Count anzufinden? Wenn ja, hast Du evtl. irgendwo eine Schatten-Variable, welche ein etwaiges Delay vom Inkrementieren zur Datenabfrage bei jedem Schritt kürzer macht, was den Chip dann in Bedrängnis bringen könnte (Data Setup Time/ Delay).

Weißt Du, welche ROMs in diesen Kassetten-Teilen verwendet werden, oder ist die Typenkennung weggeschliffen? Wenn nicht, kannst Du Dir im Inet bestimmt ein Datenblatt saugen, um die Specs des ROMs zu sehen.

Du hast gesagt, dass Du später auch solche Kassetten selbst beschreiben möchtest. Gibt es denn auch beschreibbare Speicherbausteine, die dem Standart der KasettenROMs entsprechen?

Vielleicht ist es ja auch nur eine kalte Lötstelle, die dann lustig und munter vor sich hinwackelt und mehr oder weniger zufällig diese Fehlerchen hervorruft...manchmal denkt man gar nicht, dass es sowas sein könnte...ging mir auch schon oft so...


CT
CT
2910
Bronze Mitglied
 
Beiträge: 75
Registriert: Montag 24. Februar 2003, 20:02
Wohnort: AC


Zurück zu Elektronik Allgemein

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 52 Gäste