Anhang C Lokale I/O-Adressen C- C. Lokale I/O-Adressen Die folgende Aufstellung soll als Übersicht dienen. Wenn Sie eigene Anwendungsprogramme in 86-Assembler oder in anderen Sprachen schreiben wollen, finden Sie hierzu Hinweise und Beispiele in den Kapiteln 7, 8, 9 und dieses Handbuchs. Die V2-CPU auf der Karte kann alle Programme, die für 886 oder 886 geschrieben sind, verarbeiten, sofern nicht interne 886-I/O-Devices (Timer etc.) verwendet werden. Die CPU-internen Register sind hier nicht aufgeführt. Bitte benutzen Sie hierfür die umfangreiche Literatur, die zu diesem Thema auf dem Markt erhältlich ist. Auf alle Devices wird mit 8 Bit oder 6 Bit (PC-Schnittstelle, AD-Wandler, DA-Wandler und RAM) zugegriffen. Der Zugriff auf einige Devices ist kompleer und sollte nur über die System-Subroutinen erfolgen. Die Devices auf der Karte werden alle mit I/O-Adressen von h bis ffh angesprochen. Alle Adressenangaben sind headezimal. Die Angaben in der Spalte "Zugriff" zeigen die erlaubten Zugriffe an, ein angehängtes "" bedeutet, daß die gelesenen bzw. geschriebenen Daten ungültig bzw. ohne Bedeutung sind: 8 = nur Byte-Zugriff ist erlaubt 6 = nur Wort-Zugriff ist erlaubt W R = nur Schreibzugriffe sind erlaubt = nur Lesezugriffe sind erlaubt RW = Schreib- und Lesezugriffe sind erlaubt = gelesene bzw. geschriebene Daten sind ohne Bedeutung C
C-2 Anhang C Lokale I/O-Adressen PC-Schnittstelle 8ah 8h 88h 86h 87h R8 W6 R6 W8 W8 nach Reset sind alle Bits = PC-Interrupt und PC-DMA Status: Bit = RBF, Bit = DLM Bit 6 = DLP, Bit 7 = TBF Sende Datenwort an PC Lies Datenwort von PC Setze Device Locking Bit DLP = Setze Device Locking Bit DLP = 84h W8 PC-DMA-Kanal und Funktion anwählen Bit und : Kanalnr.: 3 Bit 4: -Wait = ohne -Wait = mit -Wait Bit 5: Richtung: = Multi-LAB/2 PC = PC Multi-LAB/2 Bit 6: = DMA disabled, = DMA enabled Bit 7: = DMA not connected, = DMA connected 85h W8 PC-Interrupt-Kanal und Funktion Bit bis 3: Kanalnr.: 3 5 9 2 5 Bit 7 6 5 4 RBF PC-Interrupt-Leitung nach Reset sind alle Bits = ( = oder ) nicht verbunden (hochohmig) RBF und TBF sind aus der Sicht der Karte zu verstehen. Daher sind sie gegenüber Kapitel, in dem diese Register aus der Sicht des PCs beschrieben sind, vertauscht.
Anhang C Lokale I/O-Adressen C-3 Interrupt-Controller 3h W8 Interrupt Mask Register setzen (Bit = : gesperrt, : freigegeben) Bit : IP- Bit : IP- Bit 2: PC-RBF Bit 3: TIMER-A Bit 4: TIMER-B-UP Bit 5: TIMER-B-DOWN Bit 6: SIO-RBF Bit 7: nicht benutzt 7h R8 Interrupt Mask Register lesen (Bitzuordnung s.o.) 4h W8 Interrupt-Pending löschen (Bitzuordnung s.o.) (Bit = : nicht löschen, : löschen) 5h W8 Aktive Interrupt-Flanke setzen (ab FPGA (IC2)-Version 6: Flankendefinition umgekehrt (siehe C-)) Rev. A: Bit 2: IP-, Bit 3: IP-: = pos. Flanke = neg. Flanke Bit,, 4, 5, 6, 7 = Rev. B: Bit : IP-, Bit : IP-: = pos. Flanke = neg. Flanke Bit 2 bis 7 = 2h R8 Interrupt-Pending lesen (Bitzuordnung s.o.) (Bit = : Interrupt-Pending, : nicht) C nach Reset sind alle Bits =
C-4 Anhang C Lokale I/O-Adressen Verwendung der on-board Interrupts Int.-Nr. IRQ- Funktion 8h 8h 82h 83h 84h 85h 86h 2h 2 3 4 5 6 7 IP-: Eterner Interrupt-Eingang (an St), aktive Flanke programmierbar IP-: Eterner Interrupt-Eingang (an St), aktive Flanke programmierbar PC-RBF: von PC-Schnittstelle (Receive Buffer Full) TIMER-A: von Ausgang Timer A Überlauf des Aufwärtszählers, auch bei Frequenz-, Pulsbreitenund Periodendauermessung (Timer/Counter B) Überlauf des Abwärtszählers bzw. Messungsende bei Frequenz-, Pulsbreiten- und Periodendauermessung (Timer/Counter B) SIO-RBF: serielle Schnittstelle, Empfangsteil (Reveive Buffer Full) NMI, Watchdog
Anhang C Lokale I/O-Adressen C-5 Timer/Counter A und B 82h W8 Basistakt für beide Timer einstellen = CPU-Takt /2 = CPU-Takt /6 2 = CPU-Takt /2 3 = CPU-Takt /32 7h W8 Betriebsart für beide Timer einstellen Bit bis 2: Mode für Timer/Counter B = Ereigniszähler = Frequenzmessung (Gate von TA o. IP-2) 2 = Pulsbreitenmessung 3 = Periodendauermessung 4 = Timer 5 = Inkrementalgeberinterface / 6 = Inkrementalgeberinterface /2 7 = Inkrementalgeberinterface /4 Bit 3 (nur für Timer B in Mode, 2 und 3): = pos. Flanke bzw. Puls = neg. Flanke bzw. Puls Bit 4 (nur für Timer B in Mode ): = Referenzzeit von Timer A = Referenzzeit von IP-2 Bit 5 (nur für Timer A): = Stop und Reset, = Run Bit 6 (nur für Timer B): = Stop und Reset, = Run (Data für Timer B erst nach Start laden) Bit 7 (nur für Timer-B in Mode 4): = Timer wird nur von Bit 6 gesteuert = Timer wird durch Flanke an IP- gestartet (wenn Bit 6 = ) und kann durch Rücksetzen von Bit 6 gestoppt werden. Die Polarität der Flanke wird im Interrupt-Controller eingestellt. ah W8 Digitalen Meßeingang anwählen (nur für Timer B in Mode,, 2 und 3): = IP-8, = IP-9,..., 7 = IP-5 ch W6 2 Bit-Timer A Data laden (wird erst geladen, wenn Timer auf Null läuft) C
C-6 Anhang C Lokale I/O-Adressen ah W6 6 Bit-Timer B Data laden (nur in Mode 4, wird erst geladen, wenn Timer auf Null läuft) 8h W8 Übernahme des aktuellen Zählerstandes Timer B in Latch (nur in Mode, 5, 6 und 7). In den Modes, 2 und 3 kann nicht per Software gelatcht werden. In Mode 4 kann der Timer nicht gelatcht werden. In den Modes 5, 6 und 7 kann auch durch eine Flanke an IP- gelatcht werden. Die Polarität der Flanke wird im Interrupt-Controller eingestellt. 4h R6 Auslesen des Latches von Timer B. In den Modes 5, 6 und 7 steht im Low-Byte der Zählerstand für abwärts, im High- Byte für aufwärts zählen. Nach Reset sind alle Bits = Digitale Ein- und Ausgänge h W8 Mode (für digitale Ein- und Ausgänge) Bit-: = Ausgänge hochohmig = Ausgangszustände aktivieren Bit-: = Eingänge per Software latchen = Eingänge auch über IP- latchen (die aktive Flanke siehe Bit 2) Bit-2: = pos. Flanke an IP- zum Latchen = neg. Flanke an IP- zum Latchen Bit-3 bis 7: reserviert (= setzen) h W8 Ausgangszustände setzen Bit- = OP- bis Bit 7 = OP-7 2h W8 Eingangszustände IP- bis IP-5 latchen h R6 Eingangszustände IP- bis IP-5 aus Latch lesen
Anhang C Lokale I/O-Adressen C-7 Analoge Eingänge Adresse Zugriff Funktion 4h W8 Konfigurationsregister Bit-: = Messen = Abgleich (= interne Prüfspannungen messen) Bit-: Reserviert (immer auf setzen) Bit-2 Bit-3 Clock des ADC (immer = ) CPU-Clock/2 Bit-4: = in Konf.-Reg. 3 eingestellten Kanal messen = Kanal nach jeder Messung + (Autoinkrement) (nicht im Mode 'Abgleich') Bit-5: Reserviert (immer auf setzen) Bit-6: Reserviert (immer auf setzen) Bit-7: Reserviert (immer auf setzen) 4h W8 Konfigurationsregister 2 Bit-: = single-ended Eingang = Differenzeingang Bit 6 5 4 3 2 Meßbereich ± V ±5 V ±2,5 V ±,25 V ±,625 V ±,325 V bis V bis 5 V bis 2,5 V bis,25 V bis,625 V - bis V -5 bis V -2,5 bis V -,25 bis V -,625 bis V Bit-7: = Wandlung wird durch Auslesen des Wandlers gestartet (ohne Auto-Start). = Wandlung wird durch Beschreiben des Konfigurationsregisters #3 gestartet (Auto-Start). Ist zusätzlich Bit-4 im Konfigurationsregister (4h) gesetzt, wird automatisch mit Timer-A gestartet. C
C-8 Anhang C Lokale I/O-Adressen Adresse Zugriff Funktion In dieser Betriebsart kann die serielle Schnittstelle nicht benutzt werden. Somit kann auch kein Remote-Debugging ausgeführt werden. 42h W8 Konfigurationsregister 3 (Kanal anwählen) Im Mode "Auto-Start" (siehe Konfigurationsregister 2, Bit-7) wird mit dem Setzen des Kanals automatisch die Wandlung gestartet. In den Modes "Auto-Inkrement" (siehe Konfigurationsregister, Bit-4) und "Auto-Start" wird nach jedem Anwählen eines Kanals der Settle-Timer gestartet, so daß die Einschwingzeiten der Multipleer berücksichtigt werden können. Bit- bis Bit-3: Eingangskanal (bzw. Endkanal bei Autoinkr.) - bis 5 bei massebezogenen Eingängen - bis 7 bei Differenzeingängen - bis 7 im Abgleich-Mode (Konf.-Reg. Bit- = ): : Ground am Eingang der Karte : Ground am Eingang des ADC 2: +5 Volt Referenz am Eingang der Karte 3: Ausgangsspannung von DA- zurücklesen 4: Ausgangsspannung von DA- zurücklesen 5: Temperatursensor am ADC lesen 6: Reserviert für SORCUS 7: -5 Volt Referenz am Eingang der Karte Bit-4 bis Bit-7: Reserviert (immer auf setzen) 43h R8 Status der Wandlung Bit-: = Wandlung oder Settle-Timer läuft = Wandlung beendet, Meßwert im A/D-Wandler gültig 43h W8 Settle-Timer setzen, angegeben wird die Anzahl von CPU- Takten (7-Bit Timer, Bit-7 = setzen) 44h W8 Korrekturfaktor für Gain einstellen (Bestimmung siehe Kap. 3) 45h W8 Korrekturfaktor für Offset einstellen (Bestimmung siehe Kap. 3) 4h R6 Ergebnis der Wandlung lesen. Falls im Konfigurationsregister 2 das Bit-7 gelöscht ist (kein Auto-Start), so wird mit diesem Zugriff die Wandlung direkt gestartet, und so lange gewartet, bis die Wandlung fertig ist. Als Ergebnis wird ein Zweierkomplementwert geliefert.
Anhang C Lokale I/O-Adressen C-9 Analoge Ausgänge Adresse Zugriff Funktion 46h W8 Konfiguration von DA-: Bit- Bit-: Ausgangsbereich - 5 V - V ±5 V und..2 ma (Einst. nach Reset) ± V Bit-2: = Ausgabewert nicht aktivieren = Ausgabewert von DA- und DA- durch Setzen von DA- aktivieren Bit-3 bis Bit-7: Reserviert (immer auf setzen) 47h W8 Konfiguration von DA-: Bit- Bit-: Ausgangsbereich - 5 V - V ±5 V und..2 ma (Einst. nach Reset) ± V Bit-2: = Ausgabewert nicht aktivieren = Ausgabewert von DA- und DA- durch Setzen von DA- aktivieren Bit-3 bis Bit-7: Reserviert (immer auf setzen) 48h W6 DA- setzen. Es muß ein vorzeichenbehafteter Integer (2er Komplement) übergeben werden. Die Zuordnung der Ausgabedaten zu den Spannungsbereichen finden Sie in Kapitel 3. Zur Aktivierung des Ausgabewertes siehe Konfiguration von DA- bzw. DA-. Ausgabewert wird automatisch auf min./ma. Wert begrenzt. 4ah W6 DA- setzen. Es muß ein vorzeichenbehafteter Integer (2er Komplement) übergeben werden. Die Zuordnung der Ausgabedaten zu den Spannungsbereichen finden Sie in Kapitel 3. Zur Aktivierung des Ausgabewertes siehe Konfiguration von DA- bzw. DA-. Ausgabewert wird automatisch auf min./ma. Wert begrenzt. C
C- Anhang C Lokale I/O-Adressen Serielle Schnittstelle (nur Multi-LAB/2i und /2h) Die serielle Schnittstelle ist eine asynchrone RS-232 Schnittstelle mit Startbit, Stopbit, 8 Datenbits ohne Parität. Diese Parameter sind fest eingestellt. Die Schnittstelle kann nicht gleichzeitig senden und empfangen! Falls die Analogeingänge im Mode 'Autostart und Autoinkrement' (Start der Wandlung durch Timer-A) betrieben werden, kann die serielle Schnittstelle nicht benutzt werden. Somit kann auch kein Remote-Debugging ausgeführt werden. eh W8 Baudrate: : 38,4 KBaud : 9,2 KBaud 2: 9,6 KBaud 3: 53,6 KBaud 4eh (fh) 44h (6h) 45h (7h) W8 R8 R8 Sendebuffer. Der Sendebuffer darf erst dann beschrieben werden, wenn das Bit-3 im Schnittstellen-Status-Register auf steht. Während des Sendens ist dieses Bit =. Empfangsbuffer. Der Empfangsbuffer enthält erst dann ein gültiges Zeichen, wenn das Bit-2 des Schnittstellen-Status-Registers auf gegangen ist. Schnittstellen-Status: Bit-: Zustand der seriellen Empfangsleitung (RS-232) Bit-: Zustand der seriellen Sendeleitung (RS-232) Bit-2: = Zeichen empfangen = kein Zeichen empfangen Bit-3: = Zeichen ist noch nicht gesendet = Zeichen wurde komplett gesendet Bit-4: Zustand des Stoppbits nach dem Empfang eines Zeichens. Es sollte immer auf stehen. (h) Die Adreßangabe in Klammern gilt für Multi-LAB/2 Rev. A.
Anhang C Lokale I/O-Adressen C- Versions- und Bestückungsdaten Adresse Zugriff Funktion 3h R8 Version von IC-2 und Kartentyp: Bit- bis Bit-5: Version von Gate-Array IC-2 Bit-6, Bit-7: Kartentyp Multi-LAB/2h Multi-LAB/2a Multi-LAB/2d Multi-LAB/2i 8bh R8 Version von Gate-Array IC-6 42h R8 Version von Gate-Array IC-4 und Leiterplattenrevision lesen Bit- bis Bit-3: Version von Gate-Array IC-4 Bit-4 bis Bit 7: Leiterplattenrevision (=A, =B,...) C LED (on-board) mit zusätzlichem et. Ausgang an St Adresse 83h (6h) Zugriff Funktion W8 LED ein/aus Bit = : LED aus, Bit = : LED ein Bit bis 7: reserviert (= setzen) (h) Die Adreßangabe in Klammern gilt für Multi-LAB/2 Rev. A.
C-2 Anhang C Lokale I/O-Adressen EEPROM (nur Multi-LAB/2i und /2h) Adresse Zugriff Funktion 4ch W8 EEPROM Chip Enable Bit = : Disable, Bit = : Enable Bit bis 7: reserviert (= setzen) 42h W8 EEPROM Clock und Data schreiben Bit-: Data Bit-: Clock Bit-2 bis Bit-7: reserviert (= setzen) 43h R8 EEPROM Data lesen (nur Bit ist gültig) Watchdog (ab Rev. B) und NMI (nur Multi-LAB/2i und /2h) Der Watchdog löst, wenn er nicht nachgetriggert wird, nach einer einstellbaren Zeit einen NMI aus. 6h W8 Bit- Bit-: Retriggerzeit des Watchdogs 52 µs 24 µs 248 µs 496 µs Bit-7: = NMI disable (Einstellung nach Reset) = NMI enable Bit-6: = Auto-Refresh off, Refresh per Software (nach Reset) = Auto-Refresh on Bit-2 bis Bit-5: Reserviert (immer auf setzen) fh W8 Retrigger Watchdog