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
Solved! Go to Solution.
Hi, James,
Regarding your question, I think the PCM data is in complementary format, pls refer to the following diagram in UM10914.pdf.
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:
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
Hi, James,
Regarding your question, I think the PCM data is in complementary format, pls refer to the following diagram in UM10914.pdf.
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:
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
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