i2s_driver_install casues Guru Meditation Error

domosi
Posts: 2
Joined: Thu Dec 14, 2017 4:54 pm

i2s_driver_install casues Guru Meditation Error

Postby domosi » Thu Dec 14, 2017 5:08 pm

I am new this whole thing....
I am trying to use a SPH0645 mic with a Lora32 board. The mic is not connected to the board yet.
When I try to install and RX i2s driver I always get an error.
Unfortunately I don't know how to interpret the error description (yet :)) and I absolutely have no idea why is this not working :(

I really appreciate any help.

Here is my sample code.

Code: Select all

#include <stdlib.h>
#include <stddef.h>
#include <inttypes.h>
#include <string.h>
#include <stdio.h>
#include <stdbool.h>
#include <sys/time.h>

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/event_groups.h"
#include "esp_system.h"
#include "esp_log.h"
#include "esp_system.h"
#include "driver/i2s.h"

#define TAG "main"

static void init_i2s()
{
   /* RX: I2S_NUM_1 */
   i2s_config_t i2s_config_rx = {
      mode: (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX),
      sample_rate: 44100,
      bits_per_sample: I2S_BITS_PER_SAMPLE_32BIT,
      channel_format: I2S_CHANNEL_FMT_RIGHT_LEFT,
      communication_format: (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB),
      intr_alloc_flags: ESP_INTR_FLAG_LEVEL1,
      dma_buf_count: 14,
      dma_buf_len: 64
   };

   printf("1.\r\n");

   i2s_pin_config_t pin_config_rx = {
      .bck_io_num = GPIO_NUM_17,
      .ws_io_num = GPIO_NUM_18,
      .data_out_num = I2S_PIN_NO_CHANGE,
      .data_in_num = GPIO_NUM_5
   };

   printf("2.\r\n");

   i2s_driver_install(I2S_NUM_1, &i2s_config_rx, 0, NULL);

   printf("3.\r\n");

   // i2s_set_pin(I2S_NUM_1, &pin_config_rx);
}

void example(void *pvParams)
{
   init_i2s();
}

void app_main()
{
       printf("Hello world!\n");

       xTaskCreatePinnedToCore(&example, "example", 16384, NULL, 20, NULL, 0);

}


The result is this:
------------------------------------------------------------------------------------------------------------
Hello world!
1.

2.

V (263) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args
V (273) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x2
D (283) intr_alloc: Connected src 33 to int 13 (cpu 0)
D (283) I2S: Addr[0] = 1073455492
D (283) I2S: Addr[1] = 1073456008
D (293) I2S: Addr[2] = 1073456524
D (293) I2S: Addr[3] = 1073457040
D (293) I2S: Addr[4] = 1073457556
D (303) I2S: Addr[5] = 1073458072
D (303) I2S: Addr[6] = 1073458588
D (303) I2S: Addr[7] = 1073459104
D (313) I2S: Addr[8] = 1073459620
D (313) I2S: Addr[9] = 1073460136
D (313) I2S: Addr[10] = 1073460652
D (323) I2S: Addr[11] = 1073461168
D (323) I2S: Addr[12] = 1073461684
D (323) I2S: Addr[13] = 1073462200
I (333) I2S: DMA Malloc info, datalen=blocksize=512, dma_buf_count=14
I (343) I2S: PLL_D2: Req RATE: 44100, real rate: 44642.000, BITS: 32, CLKM: 14, BCK: 4, MCLK: 11289966.924, SCLK: 2857088.000000, diva: 64, divb: 11
3.

Guru Meditation Error: Core 0 panic'ed (IllegalInstruction)
. Exception was unhandled.
Register dump:
PC : 0x400d22f6 PS : 0x00060b30 A0 : 0x00000000 A1 : 0x3ffb9ee0
A2 : 0x00000000 A3 : 0x00000000 A4 : 0x00000000 A5 : 0x00000000
A6 : 0x00000000 A7 : 0x00000000 A8 : 0x800d22f6 A9 : 0x3ffb9e90
A10 : 0x00000000 A11 : 0x00000000 A12 : 0x00060023 A13 : 0x3ffb9f6c
A14 : 0x00000000 A15 : 0x00000000 SAR : 0x00000004 EXCCAUSE: 0x00000000
EXCVADDR: 0x00000000 LBEG : 0x400014fd LEND : 0x4000150d LCOUNT : 0xfffffffe

Backtrace: 0x400d22f6:0x3ffb9ee0 0x7ffffffd:0x3ffb9f00

Rebooting...
------------------------------------------------------------------------------------------------------------

thanks,
Janos

ESP_Sprite
Posts: 1304
Joined: Thu Nov 26, 2015 4:08 am

Re: i2s_driver_install casues Guru Meditation Error

Postby ESP_Sprite » Fri Dec 15, 2017 7:41 am

You get an IllegalInstruction exception, but your program counter seems to be normal... normally, one of the things that can cause this is if you somehow manage to de-configure one of the GPIOs the program flash is connected to, making the ESP32 unable to read its program code. I can't find any documentation about your board, but maybe you can try using different GPIOs?

domosi
Posts: 2
Joined: Thu Dec 14, 2017 4:54 pm

Re: i2s_driver_install casues Guru Meditation Error

Postby domosi » Fri Dec 15, 2017 11:15 am

In this there is no pins set (commented out).
But if I try to use the same the other direction, I mean not reading from a microphone, but writing to I2S ports, that is okay.
There is no error.

Maybe I contact the board producers.

Who is online

Users browsing this forum: No registered users and 9 guests