Analog Outputs | Option Extra I/O |
|
|
Analog Outputs
In addition to the digital I/Os there are four analog outputs available. These outputs are directly programmed with the voltage values in mV. As the analog outputs are driven by a 12 bit DAC, the output voltage can be set in a stepsize of 5 mV. The table below shows the registers, you must write the desired levels too. If you read these outputs, the actual output level is given back from an internal software register.
Register | Value | Direction | Description | Offset range |
SPC_XIO_ANALOGOUT0 | 47120 | r/w | Defines the output value for the analog output A0. | ± 10000 mV in steps of 5 mV |
|
|
|
|
|
SPC_XIO_ANALOGOUT1 | 47121 | r/w | Defines the output value for the analog output A1. | ± 10000 mV in steps of 5 mV |
|
|
|
|
|
SPC_XIO_ANALOGOUT2 | 47122 | r/w | Defines the output value for the analog output A2. | ± 10000 mV in steps of 5 mV |
SPC_XIO_ANALOGOUT3 | 47123 | r/w | Defines the output value for the analog output A3. | ± 10000 mV in steps of 5 mV |
After programming the levels of all analog outputs by the registers above, you have to update the analog outputs. This is done by the register shown in the table below. To update all of the outputs all you need to do is write a “1“ to the dedicated register.
Register | Value | Direction | Description |
SPC_XIO_WRITEDACS | 47130 | w | All the analog outputs are simultaniously updated by the programmed levels if a “1“ is written. |
Programming example
The following example shows how to use either the digital I/O#s and the analog outputs.
//
SpcSetParam (hDrv, SPC_XIO_DIRECTION, XD_CH0_OUTPUT XD_CH1_INPUT); // set directions of digital I/O transfer
SpcSetParam (hDrv, SPC_XIO_DIGITALIO, 0x00005A); | // write | data | to | |||
SpcGetParam (hDrv, SPC_XIO_DIGITALIO, &lData); | // read data and write values to lData | |||||
// | // | mV = | V | |||
SpcSetParam (hDrv, SPC_XIO_ANALOGOUT0, | ||||||
SpcSetParam (hDrv, SPC_XIO_ANALOGOUT1, | 0); | // | 0 | mV = | 0.0 | V |
SpcSetParam (hDrv, SPC_XIO_ANALOGOUT2, | +3500); | // | 3500 | mV = | 3.5 | V |
SpcSetParam (hDrv, SPC_XIO_ANALOGOUT3, +10000); | // 10000 | mV = | 10.0 | V | ||
SpcSetParam (hDrv, SPC_XIO_WRITEDACS, 1); | // Write | data | simultaneously to DAC |
66 | MI.61xx Manual |