Skip to main content
Graduate
October 30, 2023
Question

Unit of measure for the MEMS IMP23ABSU microphone

  • October 30, 2023
  • 6 replies
  • 6168 views

Hello, i have searched for this information, but couldnt find it anywhere. Whats the unit of the measured of the MEMS IMP23ABSU mic? I have used the STEVAL-STWINKT1B with the FP-SNS-DATALOG1 from which i created several .csv files that i now need to analyse. I have exported the values as "raw values" (which is an option you can choose when running the script of the dataloger).
So far i have checked the DeviceConfig.json from the dataloger and found out that the unit is  "unit": "Waveform". Does that mean the values, measured from the microphone, are in Pa or dB?

You can find part of my DeviceConfig.json below.

{
 "id": 7,
 "name": "IMP23ABSU",
 "sensorDescriptor": {
 "subSensorDescriptor": [
 {
 "id": 0,
 "sensorType": "MIC",
 "dimensions": 1,
 "dimensionsLabel": [
 "aud"
 ],
 "unit": "Waveform",
 "dataType": "int16_t",
 "FS": [
 130
 ],
 "ODR": [
 8000,
 16000,
 32000,
 48000,
 96000,
 192000
 ],
 "samplesPerTs": {
 "min": 0,
 "max": 1000,
 "dataType": "int16_t"
 }
 }
 ]
 },
 "sensorStatus": {
 "subSensorStatus": [
 {
 "ODR": 192000,
 "ODRMeasured": 192000,
 "initialOffset": 0.19303,
 "FS": 130,
 "sensitivity": 1,
 "isActive": true,
 "samplesPerTs": 1000,
 "usbDataPacketSize": 4096,
 "sdWriteBufferSize": 136192,
 "wifiDataPacketSize": 0,
 "comChannelNumber": -1,
 "ucfLoaded": false
 }
 ]
 }
 }

 

    This topic has been closed for replies.

    6 replies

    TomRettAuthor
    Graduate
    October 29, 2023

    Hello, i have searched for this information, but couldnt find it anywhere. Whats the unit of the measured of the MEMS IMP23ABSU mic? I have used the STEVAL-STWINKT1B with the FP-SNS-DATALOG1 from which i created several .csv files that i now need to analyse. I have exported the values as "raw values" (which is an option you can choose when running the script of the dataloger).

    Technical Moderator
    November 3, 2023

    Hi @TomRett ,

    Welcome to ST Community!

    The raw data are in dB.

    TomRettAuthor
    Graduate
    November 3, 2023

    Thanks for the reply! I have plotted the measured raw data and started analysing it where it looked like if i had peaks at 30000 dB (Y-Axis)? Can it be that i must normalize the Y-Axis by some factor? Is there any documentation for this? IMP23ABSU-MIC_hsdatalog_plot.png

    Technical Moderator
    November 6, 2023

    Hi @TomRett ,

    Sorry, looking closer, the data go from -32000 to +32000 so they are in LSB over 16 bits, and it seems they cover all the dynamics up to full scale, which is 130dBSPL, or 0dBV, or 1V (because 94dBSPL = -38dBV).
    If you want LSB in volts, you have to do 1V/32.768 = 30uV
    If you want it in dBV, LSB(dBV) = 20*log(1V/32.768)
    With the conversion factor above you get dBSPL, which is directly related to Pa.

    TomRettAuthor
    Graduate
    November 8, 2023

    So the LSB covers values as small as -32000 and the MSB is covering values as large as +32000? How can i convert it do dBSPL? The LSB represents only negative numbers out of a 16-bit integer, so how can i get the other half (MSB)?

    Regarding the DeviceConfig.json:

    Can i reduce the sensitivity for it not to reach the 130dbSPL? ("sensitivity": 1)

    What does the ""samplesPerTs": 1000" translate to? Is this the sampling frequency of the IMP23ABSU? 

    Isnt the sampling frequency defined with "ODR": 192000, "ODRMeasured": 192000 ? What is the connection and the difference between ODR and ODRMeasured

    TomRettAuthor
    Graduate
    November 10, 2023

    bump

    Technical Moderator
    November 13, 2023

    Hello @TomRett 

    In DATALOG1, data from each sensor are saved in .dat as raw data. .dat contains bytes and data format is described in the json file you shared. So, in the case if the analog microphone, .dat contains "int16" kind of data.

    Python scripts allows to elaborate, convert and plot data in different formats, both as raw data or applying the right gain in base of their physical meaning. The gain is described in the Sensitivity field of the above cited json file. For example: accelerometers data could be managed as int16 values or converted as g (gravitational acceleration). In the analog microphone use case, sensitivity is 1 and data are simply expressed as int16 values.

    DATALOG1 could be a powerful demo for multisensor acquisitions, but we were not able to include a calibration procedure to guarantee a precise dBSPL measurement.

    Let me also introduce you FP-SNS-DATALOG2 (link). DATALOG2 is the new and most updated Function Pack, extending functionalities and board support from the older DATALOG1. We are continuously working on DATALOG2 to let also the microphone volume and gain controllable by the user. So please evaluate the possibility to update the fiwmware and use FP-SNS-DATALOG2.

     

    Best regards

    Simone

    TomRettAuthor
    Graduate
    November 13, 2023

    Thanks, but that doesn't answer my questions. 

    What sensitivity values does the DeviceConfig.json accept ("sensitivity": 1)?

    Is the sampling frequency defined with "ODR": 192000, "ODRMeasured": 192000 ? What is the connection and the difference between ODR and ODRMeasured

    Technical Moderator
    November 13, 2023

    Hi,

    Excuse me, I lost some of the questions in the long thread.

    Sensitivity is only a readable value, you can't set it.

    ODR and ODRMeasured as separated values. They described the nominal and the real measured data rate value for each sensor.

    The greater part of MEMS sensor has each own resonator with no timing synchronization with the MCU. So, there could be the possibility that sensor clock drifts, and there is no control on the difference between the sensor master clock and the MCU clock. In this situation, setting a nominal ODR can generate a real ODR drifted about 3-5%.

    This is not the use case for microphones, where no internal resonator is needed. To let the microphone working it exposes a pin for linking directly a clock from the MCU. So, by design, there is no clock drift between the microphone and the MCU and ODR and ODRMeasured are exactly the same.

    TomRettAuthor
    Graduate
    November 13, 2023

    Thanks you! I receive a shorter amplitude range when i set the ODR from e.g. 192000 to 32000. Why does this happen? Here is the same procedure with ODR: 192000, ODRMeasured: 192000

    IMP23ABSU-MIC_hsdatalog_plot_192_kHz_phi_1.png

    and below with ODR: 32000, ODRMeasured: 32000

    IMP23ABSU-MIC_hsdatalog_plot_32_kHz_phi_1.png

     

    Technical Moderator
    November 29, 2023

    Hello,

    We are working on patch releases for both FP-SNS-DATALOG1 and FP-SNS-DATALOG2.

    By looking at your requests we found a bug in the software microphone setup we'll solve in those releases.

    Updated versions should be online in a couple of weeks. I suggest to update the package and eventually come back with your further feedbacks.

     

    Best regards

    TomRettAuthor
    Graduate
    November 29, 2023

    What is the bug? I am working with the mic on a daily basis and all my measurements depend on it.