This HDL block accepts a pulse density modulated (PDM) microphone signal and produces an encoded output at a lower sampling frequency while maintaining audio intelligibility.
Expected Inputs:
Outputs:
Provide two synchronized external clocks, clk and slow_clk, slow_clk a frequency 8x slower than clk (e.g. clk = 512 kHz, slow_clk = 64 khz) Connect the data pin of a pdm microphone clocked with clk to pdm_in. Intially set block_enable to low, then when recording/compression should begin, set block_enable to high. Now, a CIC decimated and ADPCM encoded output of the microphone data will stream from encPcm, which can be stored to memory, or decoded for writing to an audio file or playback.
# | Input | Output | Bidirectional |
---|---|---|---|
0 | clk | outValid | |
1 | slow_clk | ||
2 | block_enable | ||
3 | pdm_in | ||
4 | encPcm[0] | ||
5 | encPcm[1] | ||
6 | encPcm[2] | ||
7 | encPcm[3] |