The circuit programs each of the eight DAC7615s by shifting in a serial 16-bit word comprising two address bits, two dummy bits, and the DAC 12-bit data word. The serial data for the VOUTA channel of each DAC7615 shifts in first, followed by the VOUTB , VOUTC , and VOUTD channels.
The DAC7615s have a double-buffered data input, so the circuit can load the programmed data for all DAC channels into input registers without changing the previously set DAC output voltage. After each 16-bit word shifts into the corresponding DAC7615, the DAC control line momentarily pulses low to latch the shifted data into each DAC's internal input register.
Finally, when the circuit has programmed all DAC input registers, the signal pulses low to update the internal DAC registers and change all DAC outputs. To use the parallel port for simultaneous serial data transmission to all DAC7615s, the software must first manipulate the digital output data to place it in a form that can stream out the parallel port.
The controlling software transposes a group of eight 16-bit words, representing the codes to shift into each DAC7615, into a group of 16 8-bit words (Figure 2). The resulting vector of 16 8-bit words represents the 16-bit serial data stream, which the circuit simultaneously shifts into the selected one-of-four registers of the DAC7615s.
This transposition repeats four times to program all four channels of each DAC7615.