TI中文支持网
TI专业的中文技术问题搜集分享网站

AM335X aduio

请问 am335x aduio 接口连接 耳机 和外置喇叭有什么不同? 代码中如何修改进行耳机和喇叭的切换?谢谢

kooking:

这个主要是和你的audio的codec芯片有关,比如TLV320AIC3x,一般会支持MIC和LINE IN两种输入方式(二选一),这两种输出方式可以通过寄存器配置的。

如果需要在app中对MIC和LINE IN进行切换,需要在内核驱动中增加一个接口,最简单的就是可以通过ioctrl

laughing Zou:

回复 kooking:

Hi Kooking

codec芯片我们用的就是 TLV320AIC3x, AM335X 参考设计不是结的是耳机吗? 我现在没有接耳机直接接了外置的扬声器。原理图如下。代码是否还是按照耳机的模式进行修改呢?分别修改 board-AM335XEVM.C  和 davince-evm.c 呢? 我用的是 I2C1, mcasp0. 谢谢 目前 BCLK,wclk,din,dout,没用检测到信号。

Jian Zhou:

回复 laughing Zou:

我们demo板上AUDIO是接的MCASP1和I2C0,所以你要修改board-AM335XEVM.C

kooking:

回复 Jian Zhou:

修改board-am335xevm.c

1.配置I2C总线,查aic3x手册

static struct i2c_board_info am335x_i2c1_boardinfo[]

2.增加McSAP0参数设备

static struct snd_platform_data am335x_evm_snd_data0 = { .tx_dma_offset = 0x46000000, /* McASP0*/ .rx_dma_offset = 0x46000000, .op_mode = DAVINCI_MCASP_IIS_MODE, .num_serializer = ARRAY_SIZE(am335x_iis_serializer_direction1), .tdm_slots = 2, .serial_dir = am335x_iis_serializer_direction1, .asp_chan_q = EVENTQ_2, .version = MCASP_VERSION_3, .txnumevt = 1, .rxnumevt = 1, };

3.增加pinmux设置

static struct pinmux_config mcasp0_pin_mux[] = {…}

4.McASP0,AXR0入,AXR1出还是AXR0出,AXR1入

static u8 am335x_iis_serializer_direction1[]

5.增加McASP0初始化函数

static void mcasp0_init(int evm_id, int profile) { /* Configure McASP 0*/ setup_pin_mux(mcasp0_pin_mux); switch (evm_id) { case EVM_SK: am335x_register_mcasp(&am335x_evm_sk_snd_data1, 1); break; default: am335x_register_mcasp(&am335x_evm_snd_data0, 0); }

6.McASP0初始化设置

static struct evm_dev_cfg gen_purp_evm_dev_cfg[] = {

… {i2c1_init, DEV_ON_DGHTR_BRD, (PROFILE_ALL & ~PROFILE_2)},//{mcasp1_init, DEV_ON_DGHTR_BRD, (PROFILE_0 | PROFILE_3 | PROFILE_7)},

{mcasp0_init, DEV_ON_DGHTR_BRD, (PROFILE_0 | PROFILE_3 | PROFILE_7)} … };

7.剩下的就是aic3x的配置了omap3evm.c

注意下系统时钟是不是一样static int evm_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params)

修改配置参数

static struct snd_soc_dai_link am335x_evm_dai = {…}

laughing Zou:

回复 Jian Zhou:

Hi Jian Zhou

board-am335xevm.c 我已经修改了。 codec 的 驱动我也修改了 davinci-evm.c 我也修改了 ,改成了 mcasp0. 但是有个问题 我们这边把TLV320AIC3104 耳机的输出接到了 外置扬声器上了,而 TLV320AIC3104 中有专门的 扬声器接口,这会有对声音的输出有影响吗?谢谢 

Jian Zhou:

回复 laughing Zou:

音频codec的问题建议您去音频社区支持论坛去问一下

Yaoming Qin:

回复 laughing Zou:

功放不一样,耳机和音箱需求的功率不一样,建议你最好按照参考设计的解法,如果推不动音箱,考虑外接功放

laughing Zou:

回复 kooking:

Hi Kooking

我按照你说的做了。CODEC 的耳机输出还是无法检测到信号。 因为之前 am335x 的参考设计用的是 TLV320AIC3106  而我用的 codec 是 TLV320aic3104 ,是不是需要修改 寄存器呢?

kooking:

回复 laughing Zou:

laughing Zou

Hi Kooking

我按照你说的做了。CODEC 的耳机输出还是无法检测到信号。 因为之前 am335x 的参考设计用的是 TLV320AIC3106  而我用的 codec 是 TLV320aic3104 ,是不是需要修改 寄存器呢?

laughing Zou:

回复 kooking:

Hi Kooking

时钟频率是相符合的。 寄存器的修改具体要修改哪里呢?

赞(0)
未经允许不得转载:TI中文支持网 » AM335X aduio
分享到: 更多 (0)