请问 am335x aduio 接口连接 耳机 和外置喇叭有什么不同? 代码中如何修改进行耳机和喇叭的切换?谢谢
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.
请问 am335x aduio 接口连接 耳机 和外置喇叭有什么不同? 代码中如何修改进行耳机和喇叭的切换?谢谢
我们demo板上AUDIO是接的MCASP1和I2C0,所以你要修改board-AM335XEVM.C
修改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 = {...}
Hi Jian Zhou
board-am335xevm.c 我已经修改了。 codec 的 驱动我也修改了 davinci-evm.c 我也修改了 ,改成了 mcasp0. 但是有个问题 我们这边把TLV320AIC3104 耳机的输出接到了 外置扬声器上了,而 TLV320AIC3104 中有专门的 扬声器接口,这会有对声音的输出有影响吗?谢谢
音频codec的问题建议您去音频社区支持论坛去问一下
功放不一样,耳机和音箱需求的功率不一样,建议你最好按照参考设计的解法,如果推不动音箱,考虑外接功放
Hi Kooking
我按照你说的做了。CODEC 的耳机输出还是无法检测到信号。 因为之前 am335x 的参考设计用的是 TLV320AIC3106 而我用的 codec 是 TLV320aic3104 ,是不是需要修改 寄存器呢?