Skip to content

DMA driven DAC #10851

Open
Open
@tomcombriat

Description

Board

ESP Dev Module WROOM-32D

Device Description

Plain development board

Hardware Configuration

GPIO25 connected to scope.

Version

v3.1.0

IDE Name

Arduino IDE

Operating System

Debian

Flash frequency

80MHz

PSRAM enabled

yes

Upload speed

921600

Description

I'm trying to port Mozzi to the latest version of the ESP32 library. I2S and timer establishment works well following https://docs.espressif.com/projects/esp-idf/en/v5.4/esp32/index.html but DMA driven DAC as per https://docs.espressif.com/projects/esp-idf/en/v5.4/esp32/api-reference/peripherals/dac.html does not.

Sketch

#include <driver/dac_continuous.h>

dac_continuous_handle_t dac_handle;
void setup() {
  dac_continuous_config_t dac_config = {
    .chan_mask = DAC_CHANNEL_MASK_ALL,
    .desc_num = 2,
    .buf_size = 4,
    .freq_hz = 30000,
    .offset = 120,
    .clk_src = DAC_DIGI_CLK_SRC_DEFAULT,
    .chan_mode = DAC_CHANNEL_MODE_SIMUL,
  };
  dac_continuous_new_channels(&dac_config, &dac_handle);
  dac_continuous_enable(dac_handle);
}

void loop() {
  size_t bytes_written;
  uint8_t tt = 120;
  dac_continuous_write(dac_handle, &tt, sizeof(uint8_t), &bytes_written, 0);
}

Debug Message

22:11:09.084 -> E (4590) dac_continuous: dac_continuous_write(618): Load data failed
22:11:09.084 -> E (4596) dac_continuous: s_dac_wait_to_load_dma_data(551): Get available descriptor timeout

Other Steps to Reproduce

No response

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions