# DAC Module

The buffered digital to analog converter (DAC) API provides a set of functions for programming the digital circuits of the DAC. Functions are provided to set the reference voltage, the synchronization mode, the internal 12-bit DAC value, and set the state of the DAC output.

group `dac_api`

  Defines

  `DAC_REG_BYTE_MASK` (0xFFU)

    Register Byte Mask.

  `DAC_LOCK_KEY` (0xA000U)

    DAC Lock Key.

  `DAC_LOCK_CONTROL` (0x1U)

    Lock the control register.

  `DAC_LOCK_SHADOW` (0x2U)

    Lock the shadow value register.

  `DAC_LOCK_OUTPUT` (0x4U)

    Lock the output enable register.

  Enums

  enum `DAC_ReferenceVoltage`

    Values that can be passed to DAC_setReferenceVoltage() as the source parameter.

    Values:

    enumerator `DAC_REF_VDAC` = 0

      VDAC reference voltage.

    enumerator `DAC_REF_ADC_VREFHI` = 1

      ADC VREFHI reference voltage.

  enum `DAC_LoadMode`

    Values that can be passed to DAC_setLoadMode() as the mode parameter.

    Values:

    enumerator `DAC_LOAD_SYSCLK` = 0

      Load on next SYSCLK.

    enumerator `DAC_LOAD_PWMSYNC` = 4

      Load on next PWMSYNC specified by SYNCSEL.

  Functions

  uint16_t `DAC_getRevision`(uint32_t base)

    Get the DAC Revision value

    This function gets the DAC revision value.

    Parameters

      - `base`: is the DAC module base address

    Return

      Returns the DAC revision value.

  void `DAC_setReferenceVoltage`(uint32_t base, DAC_ReferenceVoltage source)

    Sets the DAC Reference Voltage

    This function sets the DAC reference voltage.

    Parameters

      - `base`: is the DAC module base address

      - `source`: is the selected reference voltage

    The source parameter can have one of two values:

    - DAC_REF_VDAC - The VDAC reference voltage

    - DAC_REF_ADC_VREFHI - The ADC VREFHI reference voltage

    Return

      None.

  void `DAC_setLoadMode`(uint32_t base, DAC_LoadMode mode)

    Sets the DAC Load Mode

    This function sets the DAC load mode.

    Parameters

      - `base`: is the DAC module base address

      - `mode`: is the selected load mode

    The mode parameter can have one of two values:

    - DAC_LOAD_SYSCLK - Load on next SYSCLK

    - DAC_LOAD_PWMSYNC - Load on next PWMSYNC specified by SYNCSEL

    Return

      None.

  void `DAC_setPWMSyncSignal`(uint32_t base, uint16_t signal)

    Sets the DAC PWMSYNC Signal

    This function sets the DAC PWMSYNC signal.

    Parameters

      - `base`: is the DAC module base address

      - `signal`: is the selected PWM signal

    The signal parameter must be set to a number that represents the PWM signal that will be set. For instance, passing 2 into signal will select PWM sync signal 2.

    Return

      None.

  uint16_t `DAC_getActiveValue`(uint32_t base)

    Get the DAC Active Output Value

    This function gets the DAC active output value.

    Parameters

      - `base`: is the DAC module base address

    Return

      Returns the DAC active output value.

  void `DAC_setShadowValue`(uint32_t base, uint16_t value)

    Set the DAC Shadow Output Value

    This function sets the DAC shadow output value.

    Parameters

      - `base`: is the DAC module base address

      - `value`: is the 12-bit code to be loaded into the active value register

    Return

      None.

  uint16_t `DAC_getShadowValue`(uint32_t base)

    Get the DAC Shadow Output Value

    This function gets the DAC shadow output value.

    Parameters

      - `base`: is the DAC module base address

    Return

      Returns the DAC shadow output value.

  void `DAC_enableOutput`(uint32_t base)

    Enable the DAC Output

    This function enables the DAC output.

    Parameters

      - `base`: is the DAC module base address

    Note

      A delay is required after enabling the DAC. Further details regarding the exact delay time length can be found in the device datasheet.

    Return

      None.

  void `DAC_disableOutput`(uint32_t base)

    Disable the DAC Output

    This function disables the DAC output.

    Parameters

      - `base`: is the DAC module base address

    Return

      None.

  void `DAC_setOffsetTrim`(uint32_t base, int16_t offset)

    Set DAC Offset Trim

    This function sets the DAC offset trim. The

    offset value should be a signed number in the range of -128 to 127.
    Parameters

      - `base`: is the DAC module base address

      - `offset`: is the specified value for the offset trim

    Note

      The offset should not be modified unless specifically indicated by TI Errata or other documentation. Modifying the offset value could cause this module to operate outside of the datasheet specifications.

    Return

      None.

  int16_t `DAC_getOffsetTrim`(uint32_t base)

    Get DAC Offset Trim

    This function gets the DAC offset trim value.

    Parameters

      - `base`: is the DAC module base address

    Return

      None.

  void `DAC_lockRegister`(uint32_t base, uint16_t reg)

    Lock write-access to DAC Register

    This function locks the write-access to the specified DAC register. Only a system reset can unlock the register once locked.

    Parameters

      - `base`: is the DAC module base address

      - `reg`: is the selected DAC registers

    The reg parameter can be an ORed combination of any of the following values:

    - DAC_LOCK_CONTROL - Lock the DAC control register

    - DAC_LOCK_SHADOW - Lock the DAC shadow value register

    - DAC_LOCK_OUTPUT - Lock the DAC output enable/disable register

    Return

      None.

  bool `DAC_isRegisterLocked`(uint32_t base, uint16_t reg)

    Check if DAC Register is locked

    This function checks if write-access has been locked on the specified DAC register.

    Parameters

      - `base`: is the DAC module base address

      - `reg`: is the selected DAC register locks to check

    The reg parameter can be an ORed combination of any of the following values:

    - DAC_LOCK_CONTROL - Lock the DAC control register

    - DAC_LOCK_SHADOW - Lock the DAC shadow value register

    - DAC_LOCK_OUTPUT - Lock the DAC output enable/disable register

    Return

      Returns true if any of the registers specified are locked, and false if all specified registers aren’t locked.

  void `DAC_tuneOffsetTrim`(uint32_t base, float32_t referenceVoltage)

    Tune DAC Offset Trim

    This function adjusts/tunes the DAC offset trim. The

    referenceVoltage value should be a floating point number in the range specified in the device data manual.
    Parameters

      - `base`: is the DAC module base address

      - `referenceVoltage`: is the reference voltage the DAC module is operating at.

    Note

      Use this function to adjust the DAC offset trim if operating at a reference voltage other than 2.5v. Since this function modifies the DAC offset trim register, it should only be called once after Device_cal. If it is called multiple times after Device_cal, the offset value scaled would be the wrong value.

    Return

      None.

The code for this module is contained in driverlib/dac.c, with driverlib/dac.h containing the API declarations for use by applications.