Sigma-delta Modulation

Overview

ESP32 has a second-order sigma-delta modulation module. This driver configures the channels of the sigma-delta module.

Application Example

Sigma-delta Modulation example: peripherals/sigmadelta.

API Reference

Macros

Type Definitions

Enumerations

enum sigmadelta_channel_t

Sigma-delta channel list.

Values:

SIGMADELTA_CHANNEL_0 = 0

Sigma-delta channel0

SIGMADELTA_CHANNEL_1 = 1

Sigma-delta channel1

SIGMADELTA_CHANNEL_2 = 2

Sigma-delta channel2

SIGMADELTA_CHANNEL_3 = 3

Sigma-delta channel3

SIGMADELTA_CHANNEL_4 = 4

Sigma-delta channel4

SIGMADELTA_CHANNEL_5 = 5

Sigma-delta channel5

SIGMADELTA_CHANNEL_6 = 6

Sigma-delta channel6

SIGMADELTA_CHANNEL_7 = 7

Sigma-delta channel7

SIGMADELTA_CHANNEL_MAX

Structures

struct sigmadelta_config_t

Sigma-delta configure struct.

Public Members

sigmadelta_channel_t channel

Sigma-delta channel number

int8_t sigmadelta_duty

Sigma-delta duty, duty ranges from -128 to 127.

uint8_t sigmadelta_prescale

Sigma-delta prescale, prescale ranges from 0 to 255.

uint8_t sigmadelta_gpio

Sigma-delta output io number, refer to gpio.h for more details.

Functions

esp_err_t sigmadelta_config(sigmadelta_config_t *config)

Configure Sigma-delta channel.

Return
  • ESP_OK Success
  • ESP_ERR_INVALID_ARG Parameter error
Parameters
  • config: Pointer of Sigma-delta channel configuration struct

esp_err_t sigmadelta_set_duty(sigmadelta_channel_t channel, int8_t duty)

Set Sigma-delta channel duty.

This function is used to set Sigma-delta channel duty, If you add a capacitor between the output pin and ground, the average output voltage Vdc = VDDIO / 256 * duty + VDDIO/2, VDDIO is power supply voltage.

Return
  • ESP_OK Success
  • ESP_ERR_INVALID_ARG Parameter error
Parameters
  • channel: Sigma-delta channel number
  • duty: Sigma-delta duty of one channel, the value ranges from -128 to 127, recommended range is -90 ~ 90. The waveform is more like a random one in this range.

esp_err_t sigmadelta_set_prescale(sigmadelta_channel_t channel, uint8_t prescale)

Set Sigma-delta channel’s clock pre-scale value. The source clock is APP_CLK, 80MHz. The clock frequency of the sigma-delta channel is APP_CLK / pre_scale.

Return
  • ESP_OK Success
  • ESP_ERR_INVALID_ARG Parameter error
Parameters
  • channel: Sigma-delta channel number
  • prescale: The divider of source clock, ranges from 0 to 255

esp_err_t sigmadelta_set_pin(sigmadelta_channel_t channel, gpio_num_t gpio_num)

Set Sigma-delta signal output pin.

Return
  • ESP_OK Success
  • ESP_ERR_INVALID_ARG Parameter error
Parameters
  • channel: Sigma-delta channel number
  • gpio_num: GPIO number of output pin.