1Digital To Analog Converter (DAC) 2================================= 3 4{IDF_TARGET_DAC_CH_1: default = "GPIO25", esp32 = "GPIO25", esp32s2 = "GPIO17"} 5{IDF_TARGET_DAC_CH_2: default = "GPIO26", esp32 = "GPIO26", esp32s2 = "GPIO18"} 6 7Overview 8-------- 9 10{IDF_TARGET_NAME} has two 8-bit DAC (digital to analog converter) channels, connected to {IDF_TARGET_DAC_CH_1} (Channel 1) and {IDF_TARGET_DAC_CH_2} (Channel 2). 11 12 13 14The DAC driver allows these channels to be set to arbitrary voltages. 15 16.. only:: esp32 17 18 The DAC channels can also be driven with DMA-style written sample data by the digital controller, via the :doc:`I2S driver <i2s>` when using the "built-in DAC mode". 19 20.. only:: esp32s2 21 22 The DAC channels can also be driven with DMA-style written sample data by the digital controller, however the driver does not supported this yet. 23 24 25For other analog output options, see the :doc:`Sigma-delta Modulation module <sigmadelta>` and the :doc:`LED Control module <ledc>`. Both these modules produce high frequency PWM output, which can be hardware low-pass filtered in order to generate a lower frequency analog output. 26 27 28Application Example 29------------------- 30 31Setting DAC channel 1 ({IDF_TARGET_DAC_CH_1}) voltage to approx 0.78 of VDD_A voltage (VDD * 200 / 255). For VDD_A 3.3V, this is 2.59V:: 32 33 #include <driver/dac.h> 34 35 ... 36 37 dac_output_enable(DAC_CHANNEL_1); 38 dac_output_voltage(DAC_CHANNEL_1, 200); 39 40API Reference 41------------- 42 43.. include-build-file:: inc/dac.inc 44.. include-build-file:: inc/dac_common.inc 45 46GPIO Lookup Macros 47^^^^^^^^^^^^^^^^^^ 48Some useful macros can be used to specified the GPIO number of a DAC channel, or vice versa. 49e.g. 50 511. ``DAC_CHANNEL_1_GPIO_NUM`` is the GPIO number of channel 1 ({IDF_TARGET_DAC_CH_1}); 522. ``DAC_{IDF_TARGET_DAC_CH_2}_CHANNEL`` is the channel number of GPIO 26 (channel 2). 53 54.. include-build-file:: inc/dac_channel.inc 55.. include-build-file:: inc/dac_types.inc 56