Autor Thema: c´t IDE Interface ...  (Gelesen 86947 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.431
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: c´t IDE Interface ...
« Antwort #60 am: Mo 11.07.2016, 18:50:59 »
Bei dem Bausatz von Arne ist es ein -10ns GAL ...

Probieren wir das mal damit.

Offline tuxie

  • Benutzer
  • Beiträge: 6.836
  • Falcon! Milan! Schuetzt die Raubvoegel!
Re: c´t IDE Interface ...
« Antwort #61 am: Mo 11.07.2016, 19:07:28 »
Ich hatte mir wie euch per PN mitgeteilt das Listing mal angeschaut und ich denke das IOW und IOR einfach zu spät kommt da der GAL erst CS0 und CS1 generiert und dann bei LDS aktiv ist erst IOW und IOR. Laut Datenblatt muß die zweit zwischen CS0/1 und IOW/IOR um die 70NS sein. Ich hab das mal abgeändert und euch ja per PN zugesendet. Hab meinen CPLD gleich auf meinem STE drauf. Dann wird getestet.
Tschau Ingo

Offline czietz

  • Benutzer
  • Beiträge: 3.692
Re: c´t IDE Interface ...
« Antwort #62 am: Mo 11.07.2016, 19:25:33 »
Ich hatte mir wie euch per PN mitgeteilt das Listing mal angeschaut und ich denke das IOW und IOR einfach zu spät kommt da der GAL erst CS0 und CS1 generiert und dann bei LDS aktiv ist erst IOW und IOR. Laut Datenblatt muß die zweit zwischen CS0/1 und IOW/IOR um die 70NS sein.

Mindestens 70ns (im PIO-Mode 0, deutlich weniger in höheren PIO-Modes), wohlgemerkt. Ein längeres Delay zwischen CSx und IOx ist kein Problem.

Offline tuxie

  • Benutzer
  • Beiträge: 6.836
  • Falcon! Milan! Schuetzt die Raubvoegel!
Re: c´t IDE Interface ...
« Antwort #63 am: Mo 11.07.2016, 20:21:49 »
An irgendwas muss es aber liegen, und das ist das einzigste was anders ist zum ppera interface. Und das Funktioniert bis auf paar Kleinigkeiten recht gut (habs im STE)
Tschau Ingo

Offline czietz

  • Benutzer
  • Beiträge: 3.692
Re: c´t IDE Interface ...
« Antwort #64 am: Mo 11.07.2016, 20:59:31 »
pperas Interface aktiviert die CS0/CS1-Leitungen beim Anliegen der Adresse:
/SELP = A23*A22*A21*A20*/A19*/A18*/A17*/A16*/A15*/A14*/A5;
/SELS = A23*A22*A21*A20*/A19*/A18*/A17*/A16*/A15*/A14*A5;
... und IORD/IOWD zusammen mit dem Address Strobe (/AS) des 68000:
/IORD = /AS*A23*A22*A21*A20*/A19*/A18*/A17*/A16*/A15*/A14*RW;
/IOWR = /AS*A23*A22*A21*A20*/A19*/A18*/A17*/A16*/A15*/A14*/RW;

Das c't-Interface aktiviert die CSx-Leitungen zum selben Zeitpunkt -- beim Anliegen der Adresse:
CS0      = /A5 & /A17 & /A18 & /A19 & A20 & A21 & A22 & A23;
CS1      =  A5 & /A17 & /A18 & /A19 & A20 & A21 & A22 & A23;
... und IORD/IOWR zusammen mit LDS:
IORD     = LDS &  RW & CS0 + LDS &  RW & CS1;
IOWR     = LDS & /RW & CS0 + LDS & /RW & CS1 [...]

LDS kommt in der Tat bei einem Schreibzyklus auf dem Bus 2 States (=125 ns @ 8 MHz) später als AS, beim einem Lesezyklus kommen sie gleichzeitig. Daher: Probiert's aus, ob das den Unterschied macht.

Den Unterschied bzgl. der Aktivierung des 74HCT245 hatten wir ja schon vorher thematisiert.

Offline SolderGirl

  • Benutzer
  • Beiträge: 446
Re: c´t IDE Interface ...
« Antwort #65 am: Di 12.07.2016, 11:23:16 »
Also du meinst das LDS komplett ignorieren und statt dessen AS auswerten?

Mir ist noch etwas aufgefallen. Ppera erzeugt die RD/RW Signale mit der vollen Gleichung, z.B.

/IORD = /AS*A23*A22*A21*A20*/A19*/A18*/A17*/A16*/A15*/A14*RW;
Aber beim c't Interface wird dafür das vorher generierte CSx-Signal verwendet:

IORD     = LDS &  RW & [b]CS0[/b] + LDS &  RW & [b]CS1[/b];
Macht das vom Timing her eventuell einen Unterschied? Nach meiner naiven Logik muss ja zuerst das eine Signal erzeugt werden, das würde bedeuten das es doppelt so lange dauert, um die RD/RW-Signale zu erzeugen.
Oder wird das vom Compiler irgendwie übersetzt?

Offline czietz

  • Benutzer
  • Beiträge: 3.692
Re: c´t IDE Interface ...
« Antwort #66 am: Di 12.07.2016, 18:15:38 »
Also du meinst das LDS komplett ignorieren und statt dessen AS auswerten?

Ich weiß es nicht. Es ist halt ein Unterschied zwischen ppera- und c't-Interface. Wäre zu testen...

Zitat
Mir ist noch etwas aufgefallen. Ppera erzeugt die RD/RW Signale mit der vollen Gleichung, z.B.

/IORD = /AS*A23*A22*A21*A20*/A19*/A18*/A17*/A16*/A15*/A14*RW;
Aber beim c't Interface wird dafür das vorher generierte CSx-Signal verwendet:

IORD     = LDS &  RW & [b]CS0[/b] + LDS &  RW & [b]CS1[/b];

Grundsätzlich ist das ein Unterschied, ja. Aber in diesem Fall sind CS0/CS1 ja schon längst aktiv, bevor LDS low wird, d.h. das Timing von IORD hängt an LDS und nicht an den Adressbits. Dass diese durch CS0/CS1 erst etwas verzögert zur Verfügung stehen, sollte also keinen Unterschied im Timing von IORD (und IOWR) machen.

Offline SolderGirl

  • Benutzer
  • Beiträge: 446
Re: c´t IDE Interface ...
« Antwort #67 am: So 17.07.2016, 15:34:10 »
So, heute bin ich endlich mal zum Testen gekommen. Die Ergebnisse:

1. Mit dem GAL modifiziert nach dem Vorschlag von Tuxie wird auf jedem IDE-Kanal eine Festplatte erkannt, aber nicht richtig. Statt der Modellbezeichnung wird immer der gleiche unsinnige String angezeigt. Sowohl mit als auch ohne 245er. Nur der String ändert sich.

2. Mit dem GAL modifiziert nach dem Vorschlag von czietz passiert mit 245er das gleiche wie beim original: Die Platte und die Partitionen werden erkannt, aber es gibt immer wieder Datenfehler. Ohne 245er wird die Platte erkannt, aber sobald TOS versucht darauf zuzugreifen (noch bevor der Desktop erscheint) bleibt der Rechner bombig hängen.

3. Beim original GAL macht es keinen Unterschied, ob es der 15ns oder 10ns Baustein ist. Beide funktionieren ohne 245er problemlos, mit 245er funktioniert nurnoch die Erkennung, aber Datenfehler beim lesen und/oder schreiben.

Ich denke ich warte bis ich ein BitScope habe und messe dann mal wirklich das Timing genau durch.

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.431
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: c´t IDE Interface ...
« Antwort #68 am: Sa 30.07.2016, 12:10:20 »
Ich bin sehr gespannt auf das Ergebnis ...

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.431
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: c´t IDE Interface ...
« Antwort #69 am: So 19.03.2017, 12:42:44 »
Habe noch ein wenig probiert und möchte gerne minimal neben dem IDE Interface was ja läuft ohne die beiden Bustreiber die TOS 2.06 Option ans funktionieren bekommen was sie nicht tut ...

*PINS
 /AS = 3,
 RW = 5,
 A5 = 1,
 /ROM2 = 2,
 A17 = 6,
 A18 = 7,
 A19 = 9,
 A20 = 8,
 A21 = 10,
 A22 = 11,
 A23 = 13,
 /LDS = 4,
 /IOCHRDY = 14,
 IRQ14 = 23,

 /INT.T = 19,
 /TOS.T = 20,
 /IOWR.T = 22,
 /IORD.T = 21,
 /G.T = 16,
 /CS1.T = 18,
 /CS0.T = 17,
 /DTACK.T = 15;
 
*BOOLEAN-EQUATIONS

TOS.E    = VCC;
IOWR.E   = VCC;
IORD.E   = VCC;
G.E      = VCC;
CS1.E    = VCC;
CS0.E    = VCC;

  INT.E    = IRQ14;
  INT      = IRQ14;

DTACK    = /A17 & /A18 & /A19 & A20 & A21 & A22 & A23
   + TOS;

  DTACK.E  = /IOCHRDY & AS & /A19 & A21 & A22 & A23;
     
CS0      = /A5 & /A17 & /A18 & /A19 & A20 & A21 & A22 & A23;

CS1      =  A5 & /A17 & /A18 & /A19 & A20 & A21 & A22 & A23;

G        = LDS & RW & /A17 & /A18 & /A19 & A20 & A21 & A22 & A23
+      /RW & /A17 & /A18 & /A19 & A20 & A21 & A22 & A23;
 
IORD     = LDS &  RW & CS0 + LDS &  RW & CS1;
     
IOWR     = LDS & /RW & CS0 + LDS & /RW & CS1 + LDS & /RW & TOS; % Signal TOS wegen EEPROMs %

TOS      = ROM2
   + AS & A23 & A22 & A21 & /A20 & /A19;

*END

Habe geändert in ...

TOS      = /ROM2
   + /AS & A23 & A22 & A21 & /A20 & /A19;

geht auch nicht ! und geändert in ...

TOS      = ROM2
   + AS & A23 & A22 & A21 & /A20 & /A19 & /A18 & RW;

geht auch nicht ! und geändert in ...

TOS      = /ROM2
   + /AS & A23 & A22 & A21 & /A20 & /A19 & /A18 & RW;

... geht auch nicht !

Ich habe keine Idee mehr warum der Rechner das TOS 2.06 von der Erweiterung nicht bootet !?!

Etwas seltsam die Beschaltung mit A18 doppelt und beim EE Eprom mit A19. Aber das ganze sollte doch nichts machen bei 27C010 Eproms, oder ?

D8 -D15 = EE Eprom Hi
D0 - D7 = E0 Eprom Lo

Offline tuxie

  • Benutzer
  • Beiträge: 6.836
  • Falcon! Milan! Schuetzt die Raubvoegel!
Re: c´t IDE Interface ...
« Antwort #70 am: So 19.03.2017, 13:27:52 »
Also,

eingangs wird Rom2 und AS auf Low Aktiv gesetzt, also sollte es so funktionieren

TOS      = ROM2
        + AS & A23 & A22 & A21 & /A20 & /A19 & /A18 & RW;

Pass mal dein DTACK Signal an, da ist /A17 zu viel...
Tschau Ingo

Offline czietz

  • Benutzer
  • Beiträge: 3.692
Re: c´t IDE Interface ...
« Antwort #71 am: So 19.03.2017, 13:35:56 »
Alte ROMs aus dem Rechner vorher ausgebaut?

Pass mal dein DTACK Signal an, da ist /A17 zu viel...

Wie man's nimmt, die Zeile "/A17 & /A18 & /A19 & A20 & A21 & A22 & A23" ist ja sowieso für's IDE-Interface, da stört das /A17 nicht weiter, für TOS-Zugriff wird DTACK ja auch erzeugt.
« Letzte Änderung: So 19.03.2017, 13:38:00 von czietz »

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.431
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: c´t IDE Interface ...
« Antwort #72 am: So 19.03.2017, 14:11:40 »
Funktioniert nicht ...


-------
Datei "C:\ALT\JEDI.045\CT_IDE_2.LCI" gelesen.
LOG-Datei von JEDI, Version 0.45
JEDI ist ein Shareware-Programm von
  Ralf Zimmermann
            ___  ___
           |   \/   |
        A5 |1     24| VCC       
     !ROM2 |2     23| IRQ14     
       !AS |3     22| !IOWR     
      !LDS |4     21| !IORD     
        RW |5     20| !TOS     
       A17 |6     19| !INT     
       A18 |7     18| !CS1     
       A20 |8     17| !CS0     
       A19 |9     16| !G       
       A21 |10    15| !DTACK   
       A22 |11    14| !IOCHRDY 
       GND |12    13| A23       
           |________|

' OLMC 0:
 IOWR.OE      = VCC;
 IOWR         = LDS * !RW * CS0
              + LDS * !RW * CS1
              + LDS * !RW * TOS;
' OLMC 1:
 IORD.OE      = VCC;
 IORD         = LDS * RW * CS0
              + LDS * RW * CS1;
' OLMC 3:
 INT.OE       = IRQ14;
 INT          = IRQ14;
' OLMC 4:
 CS1.OE       = VCC;
 CS1          = A5 * !A17 * !A18 * !A19 * A20 * A21 * A22 * A23;
' OLMC 5:
 CS0.OE       = VCC;
 CS0          = !A5 * !A17 * !A18 * !A19 * A20 * A21 * A22 * A23;
' OLMC 6:
 G.OE         = VCC;
 G            = LDS * RW * !A17 * !A18 * !A19 * A20 * A21 * A22 * A23
              + !RW * !A17 * !A18 * !A19 * A20 * A21 * A22 * A23;
' OLMC 7:
 DTACK.OE     = !IOCHRDY * AS * !A19 * A21 * A22 * A23;
 DTACK        = !A18 * !A19 * A20 * A21 * A22 * A23
              + TOS;

----------------------------------------------------------------------
Gew„hlter GAL-Modus:  Mode2, Tristate
----------------------------------------------------------------------
----------------------------------------------------------------------
Assemblier-Vorgang erfolgreich beendet
----------------------------------------------------------------------


JEDI gibt nichts aus für die Pin20 TOS welches das /CE Signal sein sollte für die beiden Eproms. Mit dem Multimeter gemessen ist der Pin20 auch Dauerhaft high ...
« Letzte Änderung: So 19.03.2017, 14:22:37 von Lukas Frank »

Offline czietz

  • Benutzer
  • Beiträge: 3.692
Re: c´t IDE Interface ...
« Antwort #73 am: So 19.03.2017, 14:31:49 »
Da TOS schon benutzt wird (z.B. in der Gleichung von DTACK), bevor es definiert wird, beschließt JEDI wohl, das sei ein Eingang und ignoriert die Zuweisung weiter unten. Aus meiner Sicht ein Bug, es sollte zumindest eine Warnung kommen. Wer weiß, welche Bugs noch alle in JEDI stecken...

Pack mal die Zeile "TOS = ..." vor die Zeile "DTACK = ...".


Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.431
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: c´t IDE Interface ...
« Antwort #74 am: So 19.03.2017, 15:13:25 »
Sieht schon besser aus ...

-------
Datei "C:\ALT\JEDI.045\CT_IDE_2.LCI" gelesen.
LOG-Datei von JEDI, Version 0.45
JEDI ist ein Shareware-Programm von
  Ralf Zimmermann

            ___  ___
           |   \/   |
        A5 |1     24| VCC       
     !ROM2 |2     23| IRQ14     
       !AS |3     22| !IOWR     
      !LDS |4     21| !IORD     
        RW |5     20| !TOS     
       A17 |6     19| !INT     
       A18 |7     18| !CS1     
       A20 |8     17| !CS0     
       A19 |9     16| !G       
       A21 |10    15| !DTACK   
       A22 |11    14| !IOCHRDY 
       GND |12    13| A23       
           |________|

' OLMC 0:
 IOWR.OE      = VCC;
 IOWR         = LDS * !RW * CS0
              + LDS * !RW * CS1
              + LDS * !RW * TOS;
' OLMC 1:
 IORD.OE      = VCC;
 IORD         = LDS * RW * CS0
              + LDS * RW * CS1;
' OLMC 2:
 TOS.OE       = VCC;
 TOS          = ROM2
              + AS * A23 * A22 * A21 * !A20 * !A19 * !A18 * RW;
' OLMC 3:
 INT.OE       = IRQ14;
 INT          = IRQ14;
' OLMC 4:
 CS1.OE       = VCC;
 CS1          = A5 * !A17 * !A18 * !A19 * A20 * A21 * A22 * A23;
' OLMC 5:
 CS0.OE       = VCC;
 CS0          = !A5 * !A17 * !A18 * !A19 * A20 * A21 * A22 * A23;
' OLMC 6:
 G.OE         = VCC;
 G            = LDS * RW * !A17 * !A18 * !A19 * A20 * A21 * A22 * A23
              + !RW * !A17 * !A18 * !A19 * A20 * A21 * A22 * A23;
' OLMC 7:
 DTACK.OE     = !IOCHRDY * AS * !A19 * A21 * A22 * A23;
 DTACK        = !A18 * !A19 * A20 * A21 * A22 * A23
              + TOS;

----------------------------------------------------------------------
Gew„hlter GAL-Modus:  Mode2, Tristate
----------------------------------------------------------------------
----------------------------------------------------------------------
Assemblier-Vorgang erfolgreich beendet
----------------------------------------------------------------------


Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.431
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: c´t IDE Interface ...
« Antwort #75 am: So 19.03.2017, 15:15:31 »
Da fehlt jetzt aber INIT ...

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.431
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: c´t IDE Interface ...
« Antwort #76 am: So 19.03.2017, 15:20:03 »
Gibt es denn einen guten GAL Assembler als freie Software unter Windows ?

Offline czietz

  • Benutzer
  • Beiträge: 3.692
Re: c´t IDE Interface ...
« Antwort #77 am: So 19.03.2017, 15:20:36 »
INIT? Meinst Du INT? Das ist doch da, in Output Logic Macrocell Nr. 3.

Offline czietz

  • Benutzer
  • Beiträge: 3.692
Re: c´t IDE Interface ...
« Antwort #78 am: So 19.03.2017, 15:42:21 »
Gibt es denn einen guten GAL Assembler als freie Software unter Windows ?

Freie Software? Keine, der mir bekannt wäre. Kostenlos, ja klar, aber frei wie in "Freiheit"? GALs sind in den letzten 20 Jahren etwas außer Mode gekommen, sodass die Menge an aktueller Software, die sie unterstützt, eher klein ist.

Atmels WinCUPL soll dem Vernehmen nach auch GALs unterstützen. Dann natürlich ispLEVER classic von Lattice, dem ehemaligen Hersteller der GALs. Allerdings fand ich es bei ispLEVER classic etwas übertrieben, 1 GB Software herunterzuladen, inkl. Synthesetools für VHDL und Verilog, nur um ein GAL zu programmieren. Daher habe ich mit keinem der genannten Programme eigene Erfahrung.

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.431
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: c´t IDE Interface ...
« Antwort #79 am: So 19.03.2017, 15:47:30 »
JA war blind INIT ist natürlich da. Geht aber auch jetzt nicht mit den Änderungen von tuxie und original ...