From e53dc953c4839db0e0d378d7336fd1dc67501a18 Mon Sep 17 00:00:00 2001 From: rkcf Date: Sun, 19 Feb 2023 19:15:16 -0600 Subject: [PATCH] Feat: add dac i2c master init Refs: #8 --- src/main/esp32_eurorack_generic.c | 37 ++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/main/esp32_eurorack_generic.c b/src/main/esp32_eurorack_generic.c index 7b66f33..186eaf6 100644 --- a/src/main/esp32_eurorack_generic.c +++ b/src/main/esp32_eurorack_generic.c @@ -1,6 +1,41 @@ #include +#include "driver/i2c.h" +#include "esp_err.h" +#include "esp_log.h" +#include "hal/i2c_types.h" + +#define DAC_SCL_PIN 12 +#define DAC_SDA_PIN 13 +#define DAC_LDAC_PIN 14 + +#define DAC_ADDR 0x60 /* I2C Address of DAC */ + +static const char *TAG = "EERG"; + + +/* Initialize and configure I2C DAC */ +static void dac_init(void) +{ + ESP_LOGI(TAG, "Initializing DAC I2C connection"); + + /* Configure µC as I2C master */ + i2c_port_t master_port = 0; + i2c_config_t i2c_conf = { + .mode = I2C_MODE_MASTER, + .scl_io_num = DAC_SCL_PIN, + .sda_io_num = DAC_SDA_PIN, + .master.clk_speed = 400000 /* 400kHz for i2c fast mode */ + + }; + i2c_param_config(master_port, &i2c_conf); + + /* Install i2c driver */ + ESP_ERROR_CHECK(i2c_driver_install(master_port, i2c_conf.mode, 0, 0, 0)); +} + void app_main(void) { - + /* Initialize and configure I2C DAC */ + dac_init(); }