19.4.4.3 Triangle Wave Mode
Triangle Wave mode generates an output voltage that rises and falls with
a triangle wave pattern. The Triangle Wave mode is enabled by the bit TWME (SLPxCON[26])
and requires SLOPEN to be set to ‘1’. The high and low
points of the waveform are specified via DACDAT and DACLOW. The rise and fall times and
the frequency of the triangle wave are controlled via the SLPxDAT register. The very
first clock cycle of the slope process selects a scaled SLPxDAT value, instead of the
specified value, to provide a prompt DAC response to the DAC trajectory. For all
subsequent clock cycles of the slope process, the slope generator uses the specified
SLPxDAT data value for incrementing/decrementing the DAC data value. The Fast DAC mode
is used in the Triangle Wave mode and is used to provide a fast response. The slope
changes direction automatically after reaching either the DACDAT or DACLOW value. The
Triangle Wave mode is useful in digital audio applications, where an analog input signal
is sampled via an analog comparator using a triangle wave reference signal (Figure 19-6).
A configuration example to set the Triangle Wave mode is shown in Triangle Wave Mode Configuration(1).
Triangle Wave Mode Configuration(1)
/* Triangle Wave Mode Settings */
DAC1DATbits.DACLOW = 0x100; /* Lower data value */
DAC1DATbits.DACDAT = 0xF00; /* Upper data value */
DACSLP1DATbits.SLPDAT = 0x1; /* Slope rate, counts per step */
DACSLP1CONbits.TWME = 1; /* Enable Triangle Mode */
DACSLP1CONbits.SLOPEN = 1; /* Enable Slope Mode */
- The maximum value of DACDAT must be set at 0xF32 – SLPxDAT, and the minimum value of DACLOW must be set at 0xCD + SLPxDAT.
