.. zephyr:code-sample:: dac :name: Digital-to-Analog Converter (DAC) :relevant-api: dac_interface Generate an analog sawtooth signal using the DAC driver API. Overview ******** This sample demonstrates how to use the :ref:`DAC driver API `. Building and Running ******************** The DAC output is defined in the board's devicetree and pinmux file. The board's :ref:`/zephyr,user ` node must have ``dac``, ``dac-channel-id``, and ``dac-resolution`` properties set. See the predefined overlays in :zephyr_file:`samples/drivers/dac/boards` for examples. Building and Running for ST Nucleo L073RZ ========================================= The sample can be built and executed for the :ref:`nucleo_l073rz_board` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: nucleo_l073rz :goals: build flash :compact: Building and Running for ST Nucleo L152RE ========================================= The sample can be built and executed for the :ref:`nucleo_l152re_board` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: nucleo_l152re :goals: build flash :compact: Building and Running for ST Nucleo F767ZI ========================================= The sample can be built and executed for the :ref:`nucleo_f767zi_board` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: nucleo_f767zi :goals: build flash :compact: Building and Running for ST Disco F3 ========================================= The sample can be built and executed for the :ref:`stm32f3_disco_board` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: stm32f3_disco :goals: build flash :compact: Building and Running for ST Nucleo F429ZI ========================================= The sample can be built and executed for the :ref:`nucleo_f429zi_board` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: nucleo_f429zi :goals: build flash :compact: Building and Running for STM32L562E DK ====================================== The sample can be built and executed for the :ref:`stm32l562e_dk_board` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: stm32l562e_dk :goals: build flash :compact: Building and Running for ST Nucleo L552ZE Q =========================================== The sample can be built and executed for the :ref:`nucleo_l552ze_q_board` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: nucleo_l552ze_q :goals: build flash :compact: Building and Running for NXP TWR-KE18F ====================================== The sample can be built and executed for the :ref:`twr_ke18f` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: twr_ke18f :goals: build flash :compact: DAC output is available on pin A32 of the primary TWR elevator connector. Building and Running for NXP FRDM-K64F ====================================== The sample can be built and executed for the :ref:`frdm_k64f` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: frdm_k64f :goals: build flash :compact: DAC output is available on connector J4 pin 11. Building and Running for BL652 ============================== The BL652 DVK PCB contains a footprint for a MCP4725 to use as an external DAC. Note this is not populated by default. The sample can be built and executed for the :ref:`bl652_dvk` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: bl652_dvk :goals: build flash :compact: DAC output is available on pin 1 of the MCP4725. Building and Running for BL653 ============================== The BL653 DVK PCB contains a footprint for a MCP4725 to use as an external DAC. Note this is not populated by default. The sample can be built and executed for the :ref:`bl653_dvk` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: bl653_dvk :goals: build flash :compact: DAC output is available on pin 1 of the MCP4725. Building and Running for BL654 ============================== The BL654 DVK PCB contains a footprint for a MCP4725 to use as an external DAC. Note this is not populated by default. The sample can be built and executed for the :ref:`bl654_dvk` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: bl654_dvk :goals: build flash :compact: DAC output is available on pin 1 of the MCP4725. Building and Running for BL5340 =============================== The BL5340 DVK PCB contains a MCP4725 to use as a DAC. The sample can be built and executed for the :ref:`bl5340_dvk` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: bl5340_dvk_cpuapp :goals: build flash :compact: DAC output is available on pin 1 of the MCP4725. Building and Running for GD32450I-EVAL ====================================== The sample can be built and executed for the :ref:`gd32f450i_eval` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: gd32f450i_eval :goals: build flash :compact: Bridge the JP23 to DAC with the jumper cap, then DAC output will available on JP7. Building and Running for Longan Nano and Longan Nano Lite ========================================================= The sample can be built and executed for the :ref:`longan_nano` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: longan_nano :goals: build flash :compact: also can run for the :ref: `longan_nano_lite` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: longan_nano_lite :goals: build flash :compact: Building and Running for NXP LPCXpresso55S36 ============================================ The sample can be built and executed for the :ref:`lpcxpresso55s36` as follows: .. zephyr-app-commands:: :zephyr-app: samples/drivers/dac :board: lpcxpresso55s36 :goals: build flash :compact: DAC output is available on connector J12 pin 4. Sample output ============= You should see a sawtooth signal with an amplitude of the DAC reference voltage and a period of approx. 4 seconds at the DAC output pin specified by the board. The following output is printed: .. code-block:: console Generating sawtooth signal at DAC channel 1. .. note:: If the DAC is not supported, the output will be an error message.