Hi, bin gerade dabei mit dem ISA (XT) Bus herumzuspielen und hab bisher mal das hier aufm Steckbrett nachgebaut http://linuxgazette.net/124/dutta.html Funktioniert soweit ganz gut. Im Anhang mal ein Entwurf für einen Adressdekoder. Die Adressleitungen A0-A7 gehen direkt an den Controller, die anderen werden zuerst invertiert und dann &-verknüpft und so eine "1" am Ende heraus zu bekommen, wenn: z.B. Schalter alle auf 0: Adressen von 0x000 bis 0x0FF Schalter alle auf 1: Adressen von 0xF00 bis 0xFFF Mit den 4 Schaltern eben 0x100, 0x200, 0x300, ... , 0xF00 als Base-Adressen. Haut das so hin? Oder liegt da irgendwo der Wurm drin? Nun soll da ein Propeller draufkommen, der einen Adressbereich von 256Byte abhören und entsprechend was ausführen soll. Bei einer Busgeschwindigkeit von 4,xxMhz und 80-100Mhz vom Propeller bleiben zwischen 18 und 25 Takten zeit um die Adresse (8Bit) zu holen und den Inhalt des Datenbusses/Memory (je nach RD/WR) auf den Datenbus/Memory zu legen. Die verbleibenden 7 Cogs können sich darum kümmern mit den 256 Byte was anzufangen. Wenn die Zeit nicht ganz reichen sollte, bleiben immer noch waitstates durch "IO CH RDY". Zitat http://www.techfest.com/hardware/bus/isa.htm >I/O Channel Ready allow slower ISA boards to lengthen I/O or memory >cycles by inserting wait states. This signals normal state is active >high (ready). ISA boards drive the signal inactive low (not ready) >to insert wait states. Devices using this signal to insert wait >states should drive it low immediately after detecting a valid >address decode and an active read or write command. The signal >is release high when the device is ready to complete the cycle. Um dem nachzukommen, würde ich durch die "1" am "CS"-Ausgang meines Adressdekoders ein FlipFlop anschalten lassen, welches den "IO CH RDY" auf low zieht, direkt nach dem Erhalten der Adresse. Erst wenn der Controller mit allem fertig ist, resettet der dann das Flip Flop, wird das so funktionieren?
Vielen Dank! Den 688 hab ich sogar noch auf einer alten ISA Controllerkarte gefunden. Jetzt werd ich erstmal die Karte mitm Dremel zerlegen, mit ordentlichem Kleber die Steckerleiste an eine Lochrasterkarte kleben und los gehts :) Auf'm Steckbrett funktionierts bereits Ansatzweise. Mein Oszi zeigt mir zumindest mal die CS Flanken und bei inb/outb geht der jeweilige IOR/IOW an :) Fehlt nur noch das mit den Waitstates... Das werd ich nachher mal Probieren. Mit dem CS ein RS-FF setzen, welches den IO CH RDY runterzieht und dann per Software das FF resetten. Nur muss ich das noch irgendwie hinbekommen, den CS am SET-Eingang abzuschalten, denn SET und RESET gleichzeitig geht ja wohl nicht...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.