User's Manual
PMAC2A PC104 Hardware Reference Manual
Software Setup
18
I903
I903 determines the frequency of four hardware clock signals used for machine interface channels 1-4;
This can be left at the default value (I903=*). The four hardware clock signals are SCLK (encoder sample
clock), PFM_CLK (pulse frequency modulator clock), DAC_CLK (digital-to-analog converter clock),
and ADC_CLK (analog-to-digital converter clock).
Parameters to Set Up Per-Channel Hardware Signals
I9n6
I9n6 is the output mode; ānā is the output channel number (i.e. for channel 1 the variable to set would be
i916, i926 for channel 2 etc.). On Pmac1 there is only one output and one output mode, DAC output. On
PMAC2 boards, each channel has 3 outputs, and there are 4 output modes. Since this is board was
designed to output filtered PWM signals we want to configure at least the first output as PWM. Therefore
the default value of 0 is the choice. For information on this variable consult the PMAC1/PMAC2
software reference manual.
Ix69
Ix69 is the motor output command limit. The analog outputs on PMAC1 style boards and some PMAC2
accessories are 16-bit DACs, which map a numerical range of -32,768 to +32,767 into a voltage range of -
10V to +10V relative to analog ground (AGND). For our purposes of a filtered PWM output this value
still represents the maximum voltage output; however the ratio is slightly different. With a true DAC,
Ix69=32767 allows a maximum voltage of 10V output. With the filtered PWM circuit, Ix69 is a function
of I900. A 10V signal in the output register is no longer 32767 as was in PMAC1, a 10V signal is
corresponds to a value equal to I900. Anything over I900 will just rail the Dac at 10V. For Example:
Desired Maximum Output Value = 6V
Ix69=6/10 * i900
Desired Maximum Output Value = 10V
Ix69= I900 + 10 ; add a little headroom to assure a full 10V
Effects of Changing I900 on the System
It should now be understood that a full 10 volts is output when the output register is equal to i900. The
output register is suggested m-variable Mx02 (I.e. M102-> Y:$C002,8,16,S ; OUT1A command value;
DAC or PWM). With default setting of I900, 10Volts is output when m102 is equal to i900, or 1001.
Since the output register is an integer value the smallest increment of change is about 10mV (1/1001 *
10V). Some users may want to calibrate their analog output using Ix29. Ix29 is an integer similar to
Mx02 except the value is added to the output register every servo cycle to apply a digital offset to the
output register. Therefore the resolution of our output signal affects how Ix29 should be set. As
mentioned earlier, with the default parameters, 1 bit change in the output register changes the analog
output by about 10mV. Therefore if there is an analog output offset less than 5mV, Ix29 cannot decrease
your offset. By increasing I900 you increase your resolution, so if you double i900, 1 bit change in the
output register corresponds to about 5mV. So with Ix29 you can only change the offset in increments of
5mV.
You can see above that by increasing I900 you increase the resolution of our command output register.
This sounds like a good thing, right? There are tradeoffs when you change I900 between resolution and
ripple.