Data Structures | |
struct | XMC_DAC_CH_CONFIG_t |
struct | XMC_DAC_t |
Macros | |
#define | XMC_DAC0 ((XMC_DAC_t *)DAC_BASE) |
#define | XMC_DAC_NO_CHANNELS (2U) |
#define | XMC_DAC_PATTERN_RECTANGLE {31U, 31U, 31U, 31U, 31U, 31U, 31U, 31U, 31U} |
#define | XMC_DAC_PATTERN_SINE {0U, 6U, 12U, 17U, 22U, 26U, 29U, 30U, 31U} |
#define | XMC_DAC_PATTERN_TRIANGLE {0U, 4U, 8U, 12U, 16U, 19U, 23U, 27U, 31U} |
#define | XMC_DAC_SAMPLES_PER_PERIOD (32U) |
Enumerations | |
enum | XMC_DAC_CH_DATA_TYPE_t |
enum | XMC_DAC_CH_MODE_t |
enum | XMC_DAC_CH_OUTPUT_NEGATION_t |
enum | XMC_DAC_CH_OUTPUT_SCALE_t |
enum | XMC_DAC_CH_PATTERN_SIGN_OUTPUT_t |
enum | XMC_DAC_CH_STATUS_t |
enum | XMC_DAC_CH_TRIGGER_t |
Functions | |
void | XMC_DAC_CH_DisableEvent (XMC_DAC_t *const dac, const uint8_t channel) |
void | XMC_DAC_CH_DisableOutput (XMC_DAC_t *const dac, const uint8_t channel) |
void | XMC_DAC_CH_DisableOutputNegation (XMC_DAC_t *const dac, const uint8_t channel) |
void | XMC_DAC_CH_DisablePatternSignOutput (XMC_DAC_t *const dac, const uint8_t channel) |
void | XMC_DAC_CH_EnableEvent (XMC_DAC_t *const dac, const uint8_t channel) |
void | XMC_DAC_CH_EnableOutput (XMC_DAC_t *const dac, const uint8_t channel) |
void | XMC_DAC_CH_EnableOutputNegation (XMC_DAC_t *const dac, const uint8_t channel) |
void | XMC_DAC_CH_EnablePatternSignOutput (XMC_DAC_t *const dac, const uint8_t channel) |
XMC_DAC_CH_OUTPUT_SCALE_t | XMC_DAC_CH_GetOutputScale (XMC_DAC_t *const dac, const uint8_t channel) |
uint16_t | XMC_DAC_CH_GetRampStart (XMC_DAC_t *const dac, const uint8_t channel) |
uint16_t | XMC_DAC_CH_GetRampStop (XMC_DAC_t *const dac, const uint8_t channel) |
void | XMC_DAC_CH_Init (XMC_DAC_t *const dac, const uint8_t channel, const XMC_DAC_CH_CONFIG_t *const config) |
bool | XMC_DAC_CH_IsFifoEmpty (const XMC_DAC_t *const dac, const uint8_t channel) |
bool | XMC_DAC_CH_IsFifoFull (const XMC_DAC_t *const dac, const uint8_t channel) |
bool | XMC_DAC_CH_IsOutputEnabled (const XMC_DAC_t *const dac, const uint8_t channel) |
XMC_DAC_CH_STATUS_t | XMC_DAC_CH_SetFrequency (XMC_DAC_t *const dac, const uint8_t channel, const uint32_t frequency) |
void | XMC_DAC_CH_SetMode (XMC_DAC_t *const dac, const uint8_t channel, const XMC_DAC_CH_MODE_t mode) |
void | XMC_DAC_CH_SetOutputOffset (XMC_DAC_t *const dac, const uint8_t channel, const uint8_t offset) |
void | XMC_DAC_CH_SetOutputScale (XMC_DAC_t *const dac, const uint8_t channel, const XMC_DAC_CH_OUTPUT_SCALE_t scale) |
void | XMC_DAC_CH_SetPattern (XMC_DAC_t *const dac, const uint8_t channel, const uint8_t *const pattern) |
XMC_DAC_CH_STATUS_t | XMC_DAC_CH_SetPatternFrequency (XMC_DAC_t *const dac, const uint8_t channel, const uint32_t frequency) |
XMC_DAC_CH_STATUS_t | XMC_DAC_CH_SetRampFrequency (XMC_DAC_t *const dac, const uint8_t channel, const uint32_t frequency) |
void | XMC_DAC_CH_SetRampStart (XMC_DAC_t *const dac, const uint8_t channel, const uint16_t start) |
void | XMC_DAC_CH_SetRampStop (XMC_DAC_t *const dac, const uint8_t channel, const uint16_t stop) |
void | XMC_DAC_CH_SetSignedDataType (XMC_DAC_t *const dac, const uint8_t channel) |
void | XMC_DAC_CH_SetTrigger (XMC_DAC_t *const dac, const uint8_t channel, const XMC_DAC_CH_TRIGGER_t trigger) |
void | XMC_DAC_CH_SetUnsignedDataType (XMC_DAC_t *const dac, const uint8_t channel) |
void | XMC_DAC_CH_SoftwareTrigger (XMC_DAC_t *const dac, const uint8_t channel) |
XMC_DAC_CH_STATUS_t | XMC_DAC_CH_StartDataMode (XMC_DAC_t *const dac, const uint8_t channel, const XMC_DAC_CH_TRIGGER_t trigger, const uint32_t frequency) |
XMC_DAC_CH_STATUS_t | XMC_DAC_CH_StartNoiseMode (XMC_DAC_t *const dac, const uint8_t channel, const XMC_DAC_CH_TRIGGER_t trigger, const uint32_t frequency) |
XMC_DAC_CH_STATUS_t | XMC_DAC_CH_StartPatternMode (XMC_DAC_t *const dac, const uint8_t channel, const uint8_t *const pattern, const XMC_DAC_CH_PATTERN_SIGN_OUTPUT_t sign_output, const XMC_DAC_CH_TRIGGER_t trigger, const uint32_t frequency) |
XMC_DAC_CH_STATUS_t | XMC_DAC_CH_StartRampMode (XMC_DAC_t *const dac, const uint8_t channel, const uint16_t start, const uint16_t stop, const XMC_DAC_CH_TRIGGER_t trigger, const uint32_t frequency) |
XMC_DAC_CH_STATUS_t | XMC_DAC_CH_StartSingleValueMode (XMC_DAC_t *const dac, const uint8_t channel) |
void | XMC_DAC_CH_Write (XMC_DAC_t *const dac, const uint8_t channel, const uint16_t data) |
void | XMC_DAC_Disable (XMC_DAC_t *const dac) |
void | XMC_DAC_DisableSimultaneousDataMode (XMC_DAC_t *const dac) |
void | XMC_DAC_Enable (XMC_DAC_t *const dac) |
void | XMC_DAC_EnableSimultaneousDataMode (XMC_DAC_t *const dac) |
bool | XMC_DAC_IsEnabled (const XMC_DAC_t *const dac) |
void | XMC_DAC_SimultaneousWrite (XMC_DAC_t *const dac, const uint16_t data0, const uint16_t data1) |
DAC driver uses DAC peripheral to convert digital value to analog value. XMC4000 microcontroller family has two DAC channels of 12-bit resolution and maximum conversion rate of 2MHz with full accuracy and 5MHz with reduced accuracy. It consists of inbuilt pattern generator, ramp generator and noise generator modes. Additionally, waveforms can be generated by configuring data registers in single value mode and in data mode. It has DMA handling capability to generate custom waveforms in data mode without CPU intervention.
DAC driver features:
#define XMC_DAC0 ((XMC_DAC_t *)DAC_BASE) |
DAC module register base
#define XMC_DAC_NO_CHANNELS (2U) |
DAC maximum channels
#define XMC_DAC_PATTERN_RECTANGLE {31U, 31U, 31U, 31U, 31U, 31U, 31U, 31U, 31U} |
First quarter Rectangle waveform samples
#define XMC_DAC_PATTERN_SINE {0U, 6U, 12U, 17U, 22U, 26U, 29U, 30U, 31U} |
First quarter Sine waveform samples
#define XMC_DAC_PATTERN_TRIANGLE {0U, 4U, 8U, 12U, 16U, 19U, 23U, 27U, 31U} |
First quarter Triangle waveform samples
#define XMC_DAC_SAMPLES_PER_PERIOD (32U) |
DAC samples per period in pattern mode
enum XMC_DAC_CH_MODE_t |
Operating modes of DAC
Scaling of the input data
enum XMC_DAC_CH_STATUS_t |
Return types of the API's
enum XMC_DAC_CH_TRIGGER_t |
Trigger sources for the data update
void XMC_DAC_CH_DisableEvent | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
void XMC_DAC_CH_DisableOutput | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
void XMC_DAC_CH_DisableOutputNegation | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
void XMC_DAC_CH_DisablePatternSignOutput | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
void XMC_DAC_CH_EnableEvent | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
void XMC_DAC_CH_EnableOutput | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
void XMC_DAC_CH_EnableOutputNegation | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
void XMC_DAC_CH_EnablePatternSignOutput | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
XMC_DAC_CH_OUTPUT_SCALE_t XMC_DAC_CH_GetOutputScale | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
uint16_t XMC_DAC_CH_GetRampStart | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
uint16_t XMC_DAC_CH_GetRampStop | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
void XMC_DAC_CH_Init | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const XMC_DAC_CH_CONFIG_t *const | config | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
config | Pointer to the DAC channel configuration structure |
bool XMC_DAC_CH_IsFifoEmpty | ( | const XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
bool XMC_DAC_CH_IsFifoFull | ( | const XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
bool XMC_DAC_CH_IsOutputEnabled | ( | const XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
XMC_DAC_CH_STATUS_t XMC_DAC_CH_SetFrequency | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const uint32_t | frequency | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
frequency | Waveform frequency in [Hz] |
void XMC_DAC_CH_SetMode | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const XMC_DAC_CH_MODE_t | mode | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
mode | DAC operation mode |
void XMC_DAC_CH_SetOutputOffset | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const uint8_t | offset | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
offset |
void XMC_DAC_CH_SetOutputScale | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const XMC_DAC_CH_OUTPUT_SCALE_t | scale | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
scale | Input data scaling |
void XMC_DAC_CH_SetPattern | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const uint8_t *const | pattern | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
pattern | Pointer to the data table |
XMC_DAC_CH_STATUS_t XMC_DAC_CH_SetPatternFrequency | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const uint32_t | frequency | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
frequency | in [Hz] |
< DAC samples per period in pattern mode
XMC_DAC_CH_STATUS_t XMC_DAC_CH_SetRampFrequency | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const uint32_t | frequency | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
frequency | [Hz] |
void XMC_DAC_CH_SetRampStart | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const uint16_t | start | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
start | Ramp start point [0-4095] |
void XMC_DAC_CH_SetRampStop | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const uint16_t | stop | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
stop | Ramp stop point [0-4095] |
void XMC_DAC_CH_SetSignedDataType | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
void XMC_DAC_CH_SetTrigger | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const XMC_DAC_CH_TRIGGER_t | trigger | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
trigger | Trigger source |
void XMC_DAC_CH_SetUnsignedDataType | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
void XMC_DAC_CH_SoftwareTrigger | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
XMC_DAC_CH_STATUS_t XMC_DAC_CH_StartDataMode | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const XMC_DAC_CH_TRIGGER_t | trigger, | ||
const uint32_t | frequency | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
trigger | Data points update trigger |
frequency | Waveform frequency [Hz] |
XMC_DAC_CH_STATUS_t XMC_DAC_CH_StartNoiseMode | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const XMC_DAC_CH_TRIGGER_t | trigger, | ||
const uint32_t | frequency | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
trigger | Data points update trigger |
frequency | Waveform frequency in [Hz] |
XMC_DAC_CH_STATUS_t XMC_DAC_CH_StartPatternMode | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const uint8_t *const | pattern, | ||
const XMC_DAC_CH_PATTERN_SIGN_OUTPUT_t | sign_output, | ||
const XMC_DAC_CH_TRIGGER_t | trigger, | ||
const uint32_t | frequency | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
pattern | Data table of a pattern |
sign_output | Sign information of the waveform |
trigger | Data points update trigger |
frequency | Waveform frequency in [Hz] |
XMC_DAC_CH_STATUS_t XMC_DAC_CH_StartRampMode | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const uint16_t | start, | ||
const uint16_t | stop, | ||
const XMC_DAC_CH_TRIGGER_t | trigger, | ||
const uint32_t | frequency | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
start | Start point of the ramp [0-4095] |
stop | Stop point of the ramp [0-4095] |
trigger | Data points update trigger |
frequency | Ramp frequency in [Hz] |
XMC_DAC_CH_STATUS_t XMC_DAC_CH_StartSingleValueMode | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
void XMC_DAC_CH_Write | ( | XMC_DAC_t *const | dac, |
const uint8_t | channel, | ||
const uint16_t | data | ||
) |
dac | Pointer to an instance of DAC module |
channel | DAC channel number |
data | Data to be written [0-4095] |
void XMC_DAC_Disable | ( | XMC_DAC_t *const | dac | ) |
dac | Pointer to an instance of DAC module |
void XMC_DAC_DisableSimultaneousDataMode | ( | XMC_DAC_t *const | dac | ) |
dac | Pointer to an instance of DAC module |
void XMC_DAC_Enable | ( | XMC_DAC_t *const | dac | ) |
dac | Pointer to an instance of DAC module |
void XMC_DAC_EnableSimultaneousDataMode | ( | XMC_DAC_t *const | dac | ) |
dac | Pointer to an instance of DAC module |
bool XMC_DAC_IsEnabled | ( | const XMC_DAC_t *const | dac | ) |
dac | Pointer to an instance of DAC module |
void XMC_DAC_SimultaneousWrite | ( | XMC_DAC_t *const | dac, |
const uint16_t | data0, | ||
const uint16_t | data1 | ||
) |
dac | Pointer to an instance of DAC module |
data0 | Data for DAC channel 0 [0-4095] |
data1 | Data for DAC channel 1 [0-4095] |