48
OPTOIO-PCIe16
ULTRA
© 2017 by Messcomp Datentechnik GmbH
DV01
48
OPTOIO-PCIe16
ULTRA
© 2017 by Messcomp Datentechnik GmbH
EV04
48
48
wasco
®
wasco
®
10.1.2 Calculation of the register values
OCPERIODx = Period_duration_in_µs + 1 [µs]
OCUNITORx = Pulse_duration_in_µs [µs]
OCTIMER = clocks [µs]
10.1.3 Application example
1. Deactivate the OC unit by clearing the corresponding bit in the register
OCUNITxe
2.Connect the OC unit to the required optocoupler output. For this, select
the source in the optocoupler OPTOOUTMUXx register (see chapter op-
tocoupler output multiplexer)
3. Preload the OC timer of the OC unit. Here usually the value 0x00000000
is written to the register OCTIMERx.
4. Define the period duration of the PWM. For this, write the period duration
to the register OCUNITORx as follows:
OCPERIODx = Period duration - 1 [µs]
5. Define the pulse duration. For this, write the pulse duration to the register
OCPULSx as follows:
OCPULSx = Pulse duration [µs]
6. Select the mode of the OC unit. For using the PWM, the value 0 has to
be written to the register OCCONFIGx
7. Activate the OC unit by setting the corresponding bit in register
OCUNITe.
The application of the two-level pulse duration register ensures the com-
plete return of each period prior to transfer, if the pulse duration is changed
during OC operating.
If you want to skip the first period after starting the OC unit, in which no
pulse at the output is emitted, you can preload the timer accordingly with
another value than 0 (-> reduction of the period).
10.1.2 Berechnung der Registerwerte
OCPERIODx = Periodendauer_in_µs + 1 [µs]
OCUNITORx = Pulsdauer_in_µs [µs]
OCTIMER = Takte [µs]
10.1.3 Anwendungsbeispiel
1. OC-Einheit durch das Löschen des entsprechenden Bits im Register
OCUNITxe deaktivieren.
2. OC-Einheit mit dem gewünschten Optokopplerausgang verbinden.
Dafür muss in dem zum Optokoppler gehörigen OPTOOUTMUXx-Register
die Quelle ausgewählt werden (siehe Kapitel Optokopplerausgangs-
multiplexer).
3. Den OC-Timer der OC-Einheit vorladen. Hier wird in der Regel der Wert
0x00000000 in das Register OCTIMERx geschrieben.
4. Die Periodendauer der PWM festlegen. Hierfür muss die Periodendauer
wie folgt in das Register OCUNITORx geschrieben werden:
OCPERIODx = Periodendauer - 1 [µs]
5. Die Pulsdauer festlegen. Hierfür muss die Pulsdauer wie folgt in das
Register OCPULSx geschrieben werden:
OCPULSx = Pulsdauer [µs]
6. Den OC-Unit-Modus auswählen. Für das Verwenden der PWM muss
der Wert 0 im Bereich Mode des Registers OCCONFIGx geschrieben
werden.
7. OC-Einheit durch das Setzen des entsprechenden Bits im Register
OCUNITe aktivieren.
Mit dem Einsatz des Zwei-Stufen-Pulsdauer-Registers wird gewährleistet,
dass bei einer Änderung der Pulsdauer während des OC-Betriebs jede
Periode vor der Übernahme vollständig ausgegeben wird. Möchte man
die erste Periode nach dem Start der OC-Einheit, in welcher kein Puls
am Ausgang ausgegeben wird, überspringen, so kann der Timer entspre-
chend mit einem anderen Wert als 0 vorgeladen werden (-> Verkürzung
der Periode).