mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik NE2000 ISA Karte und CS


Autor: Loki Daelis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich würde gerne eine ISA NE2000 Netzwerkkarte (a la Ulrich Radig) an
den selben Bus hängen, an dem ich auch ein externes 64k Ram Betreibe
und via Cip Selects zwischen beiden hin und her wechseln.

Ist das überhaupt möglich, kann ein Isa Device TriState/OpenCollector
etc....
Was ist denn CS beim ISA Sockel, AEN?

Wie doll reisse ich die Performance von meinem System runter, wenn ich
von der Netzwerkkarte in einen internen RAM Puffer schreibe und dann
ins RAM?

Danke

Autor: Christoph Wagner (christoph)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein ISA MUSS seinen Bus tristate schalten können. Wie sollte das sonst
in PCs funktionieren. 3 ISA Karten waren einst doch keine Seltenheit.

Ich hab so ein Ding mal so gemacht : $8000-FFFF für ein Banked RAM (128
KB). A15 ud A16 des RAMs hab ich an den AVR geschaltet. darunter hab ich
über eine Logik eine Addressleitung des "ISA" Busses angesteuert. Bei
Addressen von $4000-$7FFF wurde somit die ISA-Karte ausgewählt.

Bei ISA-Karten werden alle Addressleitungen auf (genau) einen Wert
geprüft, wobei die unteren 5 für Register-Selects rausfallen. Ist der
Wert nicht der Addresse der Karte, verbleibt sie in tristate. Einfach
die meisten Signale auf die Pegel legen und nur eine Addressleitung
entsprechend HIGh oder LOW legen, um das Gerät auszuwählen. So einfach
geht das.

Mit der Technik kannst du in einem Befehl (lds TEMP1,ADDR) von der
Karte lesen und mit dem anderen gleich ins ext. RAM schreiben (sts
$8000,TEMP1). Das ist besser, als es erst zwischenzuspeichern.

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

Bewertung
0 lesenswert
nicht lesenswert
Das mit den Adressleitungen bei ISA-Karten sieht ein bisschen anders
aus, als von Christoph dargestellt.
Bei Speicherzugriffen werden Adressleitungen bis herauf zu A23
ausgewertet, bei I/O-Zugriffen jedoch höchstens bis herauf zu A15.
Richtig alte ISA-Karten (aus der Zeit des XT, auch von IBM
höchstselbst* designt) werteten oft sogar nur Adressleitungen bis
herauf zu A9 aus - was dazu führte, daß I/O-Adressen mehrfach
gespiegelt im Adressraum auftreten konnten.
Aus diesem Grunde verwenden ISA-Karten auch nur selten Adressen >
0x3ff.

Davon abgesehen ist die von Christoph vorgeschlagene Ansteuerng schon
in Ordnung. Man sollte sich nur nicht von den vielen
Schreib-/Leseleitungen durcheinanderbringen lassen; entscheidend sind
/IORD und /IOWR, nicht aber /MEMRD und /MEMWR.

Was übrigens richtig eklig anzusteuern ist, sind 16-Bit-I/O-Zugriffe
(/IOCS16), da kann man leicht graue Haare von bekommen. Etwa 1992 hat
die c't mal einen recht guten Artikel über den ISA-Bus mit
ausführlichen Timingdiagrammen veröffentlicht; leider ist dieser
Artikel in der elektronischen Ausgabe ("c't-CD") unbrauchbar
verstümmelt, da die meisten Timingdiagramme fehlen.


*) ich habe ein "IBM PC Technical Reference Manual" mit Schaltplänen
verschiedener zu PC/XT-Zeiten verbreiteter ISA-Karten. Da stehen einem
teilweise die Haare zu Berge.

Autor: No Name (birger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Möchte diesen Beitrag nochmal hervorholen.

Hat hier jemand schon tatsächlich eine RTL8019 Netzwerkkarte 
memory-mapped nach obigen Vorgaben zum Laufen gebracht? Ich versuche 
mich gerade mit dem Thema. Denn sollte es klappen, so kann man doch 
einige Portleitungen sparen, besonders dann, wenn man zusätzlich weitere 
Bausteine wie RAM extern anschließen möchte. Freue mich auf Vorschläge 
und Erfahrungen.

Meine bisherigen Versuche führten leider zum Absturz des AVR bzw. man 
ließt nur Nullen.

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.