This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TLV320AIC3262: Audio frequency clipping in TLV320AIC3262

Part Number: TLV320AIC3262
Other Parts Discussed in Thread: AM5728

Hello,

We are using audio codec TLV320AIC3262 to interface to audio devices on a Video IP Phone product based on AM5728. In our board, we support handsfree mode and handset mode. In handsfree mode when we record audio using "arecord", the audio signal is seen till frequency of 20Khz.

In handset mode, when we record audio using "arecord", the audio signal  is limited to frequency of 4Khz.

The Voip phone has two microphones for handset and handsfree mode. Both the microphone devices are same.

Query

1) Why is the frequency of the signal limited to 4Khz in handset mode?

2) We are using wideband codecs and want audio signals to be in wideband  frequency range.

3) What register values in audeocodec device can we check for the frequency limiting issue?

Below are the frequency spectrum for the audio recorded with Handset and handsfree microphone.

A) Handsfree audio recording frequency spectrum

B) Handset audio recording frequency spectrum

Below are the audio scripts used to set register values for handsfree and handset modes.

a) Handsfree script

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
#sw reset
#/usr/sbin/i2cset -f -y 3 0x18 0x00 0x00
#/usr/sbin/i2cset -f -y 3 0x18 0x7f 0x00
#/usr/sbin/i2cset -f -y 3 0x18 0x01 0x01
#power config
#/usr/sbin/i2cset -f -y 3 0x18 0x00 0x01
#/usr/sbin/i2cset -f -y 3 0x18 0x01 0x00
#/usr/sbin/i2cset -f -y 3 0x18 0x7a 0x01
#clock initialize
#/usr/sbin/i2cset -f -y 3 0x18 0x00 0x00
#/usr/sbin/i2cset -f -y 3 0x18 0x04 0x00
#/usr/sbin/i2cset -f -y 3 0x18 0x0b 0x88
#/usr/sbin/i2cset -f -y 3 0x18 0x0c 0x82
#/usr/sbin/i2cset -f -y 3 0x18 0x0d 0x00
#/usr/sbin/i2cset -f -y 3 0x18 0x0e 0x80
#ASI config
#/usr/sbin/i2cset -f -y 3 0x18 0x00 0x04
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

b) Handset script

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
#sw reset
#/usr/sbin/i2cset -f -y 3 0x18 0x00 0x00
#/usr/sbin/i2cset -f -y 3 0x18 0x7f 0x00
#/usr/sbin/i2cset -f -y 3 0x18 0x01 0x01
#power config
#/usr/sbin/i2cset -f -y 3 0x18 0x00 0x01
#/usr/sbin/i2cset -f -y 3 0x18 0x01 0x00
#/usr/sbin/i2cset -f -y 3 0x18 0x7a 0x01
#clock initialize
#/usr/sbin/i2cset -f -y 3 0x18 0x00 0x00
#/usr/sbin/i2cset -f -y 3 0x18 0x04 0x00
#/usr/sbin/i2cset -f -y 3 0x18 0x0b 0x88
#/usr/sbin/i2cset -f -y 3 0x18 0x0c 0x82
#/usr/sbin/i2cset -f -y 3 0x18 0x0d 0x00
#/usr/sbin/i2cset -f -y 3 0x18 0x0e 0x80
#ASI config
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Hi,

    Looking at the differences between the 2 scripts, I see only the analog block settings which are different. 

    This tells me that the sampling rate are configured outside the codec.

    Somehow when handset is selected, it's switching to voice band of 8KHz and when handsfree is selected it's to audio band likely 44.1KHz. 

    You can check the WCLK to see the sampling rate to confirm.

    Regards.

  • Hello,

    Audio codec is configured in SLAVE mode in our product. It is getting clock from the SOC (AM5728).

    We checked the WCLK, in handsfree mode it is 44KHz and in handset mode it is 11KHz.

    How can we configure the WCLK in SOC?

  • Hi,

    You can check with the AM5728 team by creating the thread with the part number.

    Basically, to get the same frequency response, you will need both sampling to be 44.1KHz.

    You can refer to the AM5728 datasheet on how to configure the clocks or submit the thread to get their support.

    I'll close this thread for now.

    Regards.