Skip to content

Commit

Permalink
invert I2S CLK output to clock out data on rising edge
Browse files Browse the repository at this point in the history
  • Loading branch information
Louis Beaudoin committed Sep 30, 2019
1 parent cb0f538 commit ebf12e4
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/esp32_i2s_parallel.c
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,13 @@ static void gpio_setup_out(int gpio, int sig) {
gpio_matrix_out(gpio, sig, false, false);
}

static void gpio_setup_out_invert(int gpio, int sig) {
if (gpio==-1) return;
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[gpio], PIN_FUNC_GPIO);
gpio_set_direction(gpio, GPIO_MODE_DEF_OUTPUT);
gpio_matrix_out(gpio, sig, true, false);
}


static void dma_reset(i2s_dev_t *dev) {
dev->lc_conf.in_rst=1; dev->lc_conf.in_rst=0;
Expand Down Expand Up @@ -284,8 +291,9 @@ void i2s_parallel_setup_without_malloc(i2s_dev_t *dev, const i2s_parallel_config
for (int x=0; x<cfg->bits; x++) {
gpio_setup_out(cfg->gpio_bus[x], sig_data_base+x);
}
//ToDo: Clk/WS may need inversion?
gpio_setup_out(cfg->gpio_clk, sig_clk);

// invert CLK output to clock out data on rising edge
gpio_setup_out_invert(cfg->gpio_clk, sig_clk);

//Power on dev
if (dev==&I2S0) {
Expand Down

0 comments on commit ebf12e4

Please sign in to comment.