How to fix my DMIC interface data ?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to fix my DMIC interface data ?

Jump to solution
781 Views
jameswhitney
Contributor II

Greetings,

I now have a DMIC project running on a LPCXpresso54114 *without* the MAO shield, i.e., I go directly into the DMIC interface. I am able to capture and store data. The problem is the data will go from i.e., very low values during silence to almost 'FFFF' (its decimal equivalent) instantaneously *STILL DURING SILENCE*.

2
4
5
3
3
0
65533
65530
65530
65530
65531
65530

65533
65535
0
1
1
2
3

The 'true' values seem to reflect the conditions of the acquisition environment, i.e., during silence (DMIC covered with several layers of absorber) the values are very small single/double digits. During, i.e., speech can see higher amplitude values and some modulation.

Would like to get some insight on what might be causing this, and how to fix it.

Regards,

Jim

Labels (3)
Tags (2)
0 Kudos
1 Solution
648 Views
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi, James,

Regarding your question, I think the PCM data is in complementary format, pls refer to the following diagram in UM10914.pdf.

pastedImage_1.png

In 16 bits complementary, for the positive data, it is from 0, 1,2... to 0x7FFF, the 0x7FFF is the maximum. For negative value, it is from 0xFFFF, 0xFFFE, 0xFFFD...0x8000, the 0xFFFF approaches to zero, 0x8000 is the minimum value.

This is the complementary data format description:

pastedImage_2.png

I conclusion, I think it is okay the PCM data is from 0~5 or 65530~65535 in silent environment.

Hope it can help you

BR

XiangJun Rong

View solution in original post

0 Kudos
2 Replies
649 Views
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi, James,

Regarding your question, I think the PCM data is in complementary format, pls refer to the following diagram in UM10914.pdf.

pastedImage_1.png

In 16 bits complementary, for the positive data, it is from 0, 1,2... to 0x7FFF, the 0x7FFF is the maximum. For negative value, it is from 0xFFFF, 0xFFFE, 0xFFFD...0x8000, the 0xFFFF approaches to zero, 0x8000 is the minimum value.

This is the complementary data format description:

pastedImage_2.png

I conclusion, I think it is okay the PCM data is from 0~5 or 65530~65535 in silent environment.

Hope it can help you

BR

XiangJun Rong

0 Kudos
648 Views
jameswhitney
Contributor II

Good morning, Xiangjun,

Indeed, that was the problem. Based on the original values, I thought it may have been some sort of roll-over problem. I wrote some code to handle the Two's-complement case and everything is as it should be - Thanks !

Jim

0 Kudos