Infineon / IM69D130-Microphone-Shield2Go

Examples for Infineon's MEMS microphone based evaluation board IM69D130 Microphone Shield2Go for Arduino.
7 stars 6 forks source link

ESP32 Support I2S on Infineon IM69D130 #3

Closed phorenabess closed 2 months ago

phorenabess commented 3 years ago

We need help to implement I2S on ESP32-WROOM 32D. We can't access Infineon IM69D130 even after register Infineon new account. It requires Infineon Application Engineer to approve and grant the software download. Even so can we use Infineon IM69D130 on ESP32-WROOM 32D? We are in early manufacturing design. Please help

ESP32-WROOM 32D https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32d_esp32-wroom-32u_datasheet_en.pdf

Infineon IM69D130 https://www.infineon.com/cms/en/product/evaluation-boards/s2go-memsmic-im69d/

The IM69D is a I2S (Inter-IC-Sound) device and does not need a special library. It works out-of-the-box with the XMC microcontroller series. The ESP32 is not yet natively supported.

mhollfelder commented 3 years ago

Hi phorenabess,

Just to understand it correctly, you are:

Basically, the IM69D130 microphone on ESP32-WROOM 32D can be used with IM69D130 PDM interface or via a converter IC, e.g. with I2S. The S2GO MEMSMIC IM69D evaluation board itself uses an ADAU7002 to convert from PDM to I2S, both interfaces can be handled by the ESP32 according to 4.1.12 I²S Interface in the datasheet here.

The ESP32 only needs the specific I2S and/or PDM drivers depending on your setup. Here, support has to be given via the official ESP32 channels, documentation of I2S for ESP32 can be found here.

Best regards,

Manuel

phorenabess commented 3 years ago

We are using both. One is testing IM69D130 as a hardware component and another is to add IM69D130 as a noise sensor.

1) Test IM69D130 microphone using an IM69D board Using the IM69D130 S2GO MEMSMIC IM69D board with the I2S interface and connecting it to the ESP32 I2S interface?

2) Add IM69D130 as a noise sensor on our main board Using the IM69D130 bare microphone with the PDM interface and connecting it to the ESP32 PDM interface?

We are designing a smart device where we can detect the noise level (SPL) similar to iWatch and iPhone. It informs you on noise dangers.

https://support.apple.com/guide/watch/noise-apd00a43a9cb/watchos

Can you please help us by giving us exact and correct details? Our entire hardware release is pending on getting IM69D130 to function on ESP32-WROOM 32D.

ESP32-WROOM 32D Integration Methods 1) IM69D130 PDM interface 2) via a converter IC as I2S

1) How do we get the IM69D130 PDM driver? The Infineon account blocks me from downloading the IM69D130 software from your website. It requires an Application Engineer to grant the right. I've submitted the technical support form twice 2 weeks ago. No results. I've contacted Arrow Sales but they can't find Infineon contact for us.

2) How do we achieve converter IC? Can you give any example? links?

On Fri, Oct 16, 2020 at 1:47 AM Manuel Hollfelder notifications@github.com wrote:

Hi phorenabess,

Just to understand it correctly, you are:

  • Using the IM69D130 S2GO MEMSMIC IM69D board with the I2S interface and connecting it to the ESP32 I2S interface?
  • Using the IM69D130 bare microphone with the PDM interface and connecting it to the ESP32 PDM interface?

Basically, the IM69D130 microphone on ESP32-WROOM 32D be used with IM69D130 PDM interface or via a converter IC as I2S. The S2GO MEMSMIC IM69D evaluation board itself uses an ADAU7002 to convert from PDM to I2S, both interfaces can be handled by the ESP32 according to 4.1.12 I²S Interface in the datasheet here https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf .

The ESP32 only needs the specific I2S and/or PDM drivers depending on your setup. Here, support has to be given via the official ESP32 channels, documentation of I2S for ESP32 can be found here https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/i2s.html .

Best regards,

Manuel

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Infineon/IM69D130-Microphone-Shield2Go/issues/3#issuecomment-709915039, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALTDLMPGRCBJZPC7QWVTSUTSLACCHANCNFSM4SGXQE2A .

-- Bess Ho Head of Products Phorena designs smart light that make you healthier

mhollfelder commented 3 years ago

Hi phorenabess,

1) Test IM69D130 microphone using an IM69D board Using the IM69D130 S2GO MEMSMIC IM69D board with the I2S interface and connecting it to the ESP32 I2S interface? 2) Add IM69D130 as a noise sensor on our main board Using the IM69D130 bare microphone with the PDM interface and connecting it to the ESP32 PDM interface?

Understood and thanks for clarification.

1) How do we get the IM69D130 PDM driver?

Basically, there is no IM69D130 PDM driver as Pulse Density Modulation (PDM) is typically a hardware interface to send/receive data binary encoded (delta sigma / 1-Bit DAC modulation, in principal). You have to set up the ESP32 properly as this driver has to be implemented for a specific microcontroller. The implementation is microcontroller dependent and you have to get support for the ESP32 microcontroller which we are not offering.

2) How do we achieve converter IC? Can you give any example? links?

The converter IC which is used on the IM69D120 evaluation board is the ADAU7002. It converts in hardware the PDM interface to I2S interface. Here again, you will find all software and details how to wire and hook up a I2S microphone to the ESP32 from the official microcontroller documentation as it is a hardware interface of the microcontroller.

1) Test IM69D130 microphone using an IM69D board Using the IM69D130 S2GO MEMSMIC IM69D board with the I2S interface and connecting it to the ESP32 I2S interface?

I propose that you start with 1) and one example for the I2S interface for ESP32, e.g. from here for Arduino:

https://github.com/maspetsberger/esp32-i2s-mems

You then have only to hook up the IM69D130 microphone board and will immediately get the data.

Connection would be following the documentation of the example Readme.md:

I2S:BCLK to #15 I2S:DATA to #32 I2S:CLK to #14 GND to GND 3V to 3V

I could not test this, but based on what I read there, it should work out with the examples.

The full software documentation for I2S with ESP32 can be found on the official documentation page here:

https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/i2s.html

I hope this clarifies things a little bit as it could be one reason why you cannot get any additional examples from Infineon side.

phorenabess commented 3 years ago

Thank you. I'll follow up if our Engineer has any new issue.

On Thu, Oct 22, 2020 at 11:11 AM Manuel Hollfelder notifications@github.com wrote:

Hi phorenabess,

  1. Test IM69D130 microphone using an IM69D board Using the IM69D130 S2GO MEMSMIC IM69D board with the I2S interface and connecting it to the ESP32 I2S interface?
  2. Add IM69D130 as a noise sensor on our main board Using the IM69D130 bare microphone with the PDM interface and connecting it to the ESP32 PDM interface?

Understood and thanks for clarification.

  1. How do we get the IM69D130 PDM driver?

Basically, there is no IM69D130 PDM driver as Pulse Density Modulation (PDM https://en.wikipedia.org/wiki/Pulse-density_modulation) is an hardware interface definition to send/receive data binary encoded (delta sigma / 1-Bit DAC modulation, in principal). You have to set up the ESP32 properly as this driver has to be implemented for a specific microcontroller. The implementation is microcontroller dependent and you have to get support for the ESP32 microcontroller which we are not offering.

  1. How do we achieve converter IC? Can you give any example? links?

The converter IC which is used on the IM69D120 evaluation board is the ADAU7002 https://www.analog.com/media/en/technical-documentation/data-sheets/ADAU7002.pdf. It converts in hardware the PDM interface to I2S interface. Here again, you will find all software and details how to wire and hook up a I2S microphone to the ESP32 from the official microcontroller documentation as it is a hardware interface of the microcontroller.

  1. Test IM69D130 microphone using an IM69D board Using the IM69D130 S2GO MEMSMIC IM69D board with the I2S interface and connecting it to the ESP32 I2S interface?

I propose that you start with 1) and one example for the I2S interface for ESP32, e.g. from here for Arduino:

https://github.com/maspetsberger/esp32-i2s-mems

You then have only to hook up the IM69D130 microphone board https://github.com/Infineon/IM69D130-Microphone-Shield2Go/wiki and will immediately get the data.

Connection would be following the documentation of the example Readme.md https://github.com/maspetsberger/esp32-i2s-mems/blob/master/Readme.md:

I2S:BCLK to #15 I2S:DATA to #32 I2S:CLK to #14 GND to GND 3V to 3V

I could not test this, but based on what I read there, it should work out with the examples.

The full software documentation for I2S with ESP32 can be found on the official documentation page here:

https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/i2s.html

I hope this clarifies things a little bit as it could be one reason why you cannot get any additional examples from Infineon side.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Infineon/IM69D130-Microphone-Shield2Go/issues/3#issuecomment-714668808, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALTDLMI2AORREEDA7ECWCEDSMBYVPANCNFSM4SGXQE2A .

-- Bess Ho Head of Products Phorena designs smart light that make you healthier

phorenabess commented 3 years ago

Hi Manuel,

Our hardware Engineer is still having trouble with Infineon IM69D130. We are using Infineon IM69D130 as a sensor to read dB and SPL - noise level. Similar to Apple iWatch and iPhone. We are not using it to record audio.

He can't extract dB value from Infineon IM69D130 on ESP32. Infineon IM69D130 is using a unique UART interface and ESP32 does not have the readI2S() function he can use to read the dB data.

Can you help and show us how to read dB value from Infineon IM69D130 on ESP32-WROOM 32D on UART interface? What ESP32 function must be used?

Noise Level https://support.apple.com/guide/watch/noise-apd00a43a9cb/watchos https://support.apple.com/en-us/HT209593

[image: Screen Shot 2020-11-03 at 3.12.53 PM.png]

On Fri, Oct 23, 2020 at 2:06 AM Bess Ho bess@phorena.com wrote:

Thank you. I'll follow up if our Engineer has any new issue.

On Thu, Oct 22, 2020 at 11:11 AM Manuel Hollfelder < notifications@github.com> wrote:

Hi phorenabess,

  1. Test IM69D130 microphone using an IM69D board Using the IM69D130 S2GO MEMSMIC IM69D board with the I2S interface and connecting it to the ESP32 I2S interface?
  2. Add IM69D130 as a noise sensor on our main board Using the IM69D130 bare microphone with the PDM interface and connecting it to the ESP32 PDM interface?

Understood and thanks for clarification.

  1. How do we get the IM69D130 PDM driver?

Basically, there is no IM69D130 PDM driver as Pulse Density Modulation (PDM https://en.wikipedia.org/wiki/Pulse-density_modulation) is an hardware interface definition to send/receive data binary encoded (delta sigma / 1-Bit DAC modulation, in principal). You have to set up the ESP32 properly as this driver has to be implemented for a specific microcontroller. The implementation is microcontroller dependent and you have to get support for the ESP32 microcontroller which we are not offering.

  1. How do we achieve converter IC? Can you give any example? links?

The converter IC which is used on the IM69D120 evaluation board is the ADAU7002 https://www.analog.com/media/en/technical-documentation/data-sheets/ADAU7002.pdf. It converts in hardware the PDM interface to I2S interface. Here again, you will find all software and details how to wire and hook up a I2S microphone to the ESP32 from the official microcontroller documentation as it is a hardware interface of the microcontroller.

  1. Test IM69D130 microphone using an IM69D board Using the IM69D130 S2GO MEMSMIC IM69D board with the I2S interface and connecting it to the ESP32 I2S interface?

I propose that you start with 1) and one example for the I2S interface for ESP32, e.g. from here for Arduino:

https://github.com/maspetsberger/esp32-i2s-mems

You then have only to hook up the IM69D130 microphone board https://github.com/Infineon/IM69D130-Microphone-Shield2Go/wiki and will immediately get the data.

Connection would be following the documentation of the example Readme.md https://github.com/maspetsberger/esp32-i2s-mems/blob/master/Readme.md:

I2S:BCLK to #15 I2S:DATA to #32 I2S:CLK to #14 GND to GND 3V to 3V

I could not test this, but based on what I read there, it should work out with the examples.

The full software documentation for I2S with ESP32 can be found on the official documentation page here:

https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/i2s.html

I hope this clarifies things a little bit as it could be one reason why you cannot get any additional examples from Infineon side.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Infineon/IM69D130-Microphone-Shield2Go/issues/3#issuecomment-714668808, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALTDLMI2AORREEDA7ECWCEDSMBYVPANCNFSM4SGXQE2A .

-- Bess Ho Head of Products Phorena designs smart light that make you healthier

-- Bess Ho Head of Products Phorena designs smart light that make you healthier

wilpa commented 2 years ago

Hi @phorenabess I am currently working with a heltec esp32 lora and a Infineon IM69D130 mic. I also want to read dB value but i am not able to make it work. Did you find a way to do it using the uart interface?

github-actions[bot] commented 2 months ago

This issue is stale because it has been open more than 6 weeks with no activity. Please comment on this issue if it's still relevant or it will be closed automatically after 1 week.

github-actions[bot] commented 2 months ago

This issue was closed because it has been stalled for 1 week with no activity.