查看: 2013|回复: 6

[求助] uda1341没有声音

[复制链接]

该用户从未签到

7

主题

34

帖子

0

注册会员

Rank: 2

积分
124
最后登录
1970-1-1
发表于 2015-7-20 16:31:01 | 显示全部楼层 |阅读模式
环境: mx53+uda1341
我对音频驱动的理解是,codec驱动和SSI驱动已经写好了,我需要做的就是一些配置的工作。但是不管我怎么修改配置,I2S上的FSCLK和bit-clk始终没有信号。由于uda1341只能工作在从模式,所以我的SSI是主模式,2个地方的配置如下:
        MX53_PAD_KEY_COL0__AUDMUX_AUD5_TXC,
        MX53_PAD_KEY_ROW0__AUDMUX_AUD5_TXD,
        MX53_PAD_KEY_COL1__AUDMUX_AUD5_TXFS,
        MX53_PAD_KEY_ROW1__AUDMUX_AUD5_RXD,


static struct mxc_audio_platform_data uda134x_data = {
        .ssi_num = 0,
        .src_port = 1,
        .ext_port = 6,
        .init = mxc_uda134x_init,
};

看AUDMUX部分的文档,端口对应的是1->6,2->5,3->4。所以这里的src_num就是1,ext_num就是6,是不是说我用(1,6)和(2,5)效果是一样的呢?还是说与引脚的功能配置有关,如果用的是AUDMUX5就是用(2,5)?当我用(2,5)的时候用madplay播放音频得到input/output error,但是用(1,6)播放正常没有错误。

然后就是machine驱动里面对AUDMUX的配置
        /* reset port ssi_port & dai_port */
        __raw_writel(0, DAM_PTCR(ssi_port));
        __raw_writel(0, DAM_PTCR(dai_port));
        __raw_writel(0, DAM_PDCR(ssi_port));
        __raw_writel(0, DAM_PDCR(dai_port));

        /* set to synchronous */
        ssi_ptcr |= AUDMUX_PTCR_SYN;
        dai_ptcr |= AUDMUX_PTCR_SYN;

        /* set Rx sources ssi_port <--> dai_port */
        ssi_pdcr |= AUDMUX_PDCR_RXDSEL(dai_port);
        dai_pdcr |= AUDMUX_PDCR_RXDSEL(ssi_port);

        /* set Tx frame direction and source  ssi_port --> dai_port output */
        dai_ptcr |= AUDMUX_PTCR_TFSDIR;
        dai_ptcr |= AUDMUX_PTCR_TFSSEL(AUDMUX_FROM_TXFS, ssi_port);

        /* set Tx Clock direction and source ssi_port--> dai_port output */
        dai_ptcr |= AUDMUX_PTCR_TCLKDIR;
        dai_ptcr |= AUDMUX_PTCR_TCSEL(AUDMUX_FROM_TXFS, ssi_port);

        printk("AUDMUX SSI PTCR=0x%x,PDCR=0x%x\n",ssi_ptcr,ssi_pdcr);
        printk("AUDMUX DAI PTCR=0x%x,PDCR=0x%x\n",dai_ptcr,dai_pdcr);
        __raw_writel(ssi_ptcr, DAM_PTCR(ssi_port));
        __raw_writel(dai_ptcr, DAM_PTCR(dai_port));
        __raw_writel(ssi_pdcr, DAM_PDCR(ssi_port));
        __raw_writel(dai_pdcr, DAM_PDCR(dai_port));

根据打印信息,dai_ptcr的值应该是ssi的才对,可是即便我将dai_ptcr和ssi_ptcr的位置交换,BCLK和FSCLK还是没有信号。
SSI和AUDMUX的输出值
[   71.655302] scr 1bb  , 1bb
[   71.659303] sisr 320 , 300
[   71.663391] stcr 3ed , 3ed
[   71.667480] srcr 30d , 30d
[   71.671568] stccr e117       , e117
[   71.675917] srccr 40100      , 40100
[   71.680440] sfcsr 8680868    , 8680868
[   71.685309] stmsk fffffffe   , fffffffe
[   71.690353] srmsk fffffffe   , fffffffe
[   71.695396] sier 180100      , 180100

[    2.412130] AUDMUX SSI PTCR=0x84000800,PDCR=0x0
[    2.416685] AUDMUX DAI PTCR=0x800,PDCR=0xa000


为什么把SSI配置成主模式,它没有产生内部时钟给codec呢?还需要配置哪些寄存器吗?在线等这个问题困扰我许久了,多谢各位。
我知道答案 目前已有6人回答

评分

参与人数 1NXP金币 +10 收起 理由
小七 + 10 打赏!

查看全部评分

回复

使用道具 举报

该用户从未签到

7

主题

34

帖子

0

注册会员

Rank: 2

积分
124
最后登录
1970-1-1
 楼主| 发表于 2015-7-20 16:51:30 | 显示全部楼层
• Port 1 to Port 6
• Port 6 provides the clock and frame sync.
• Port 2 to Port 5
• Port 5 provides the clock and frame sync.
• Port 3 to Port 4
• Port 4 provides the clock and frame sync.

根据文档是不是应该dai_port是5而ssi_port是2,那这样不就相当于音频是从dai->ssi的吗?
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

34

帖子

0

注册会员

Rank: 2

积分
124
最后登录
1970-1-1
 楼主| 发表于 2015-7-21 09:12:31 | 显示全部楼层
up up up up up
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

31

帖子

0

注册会员

Rank: 2

积分
70
最后登录
2018-5-2
发表于 2015-7-21 09:45:23 | 显示全部楼层
帮顶~
回复

使用道具 举报

该用户从未签到

7

主题

34

帖子

0

注册会员

Rank: 2

积分
124
最后登录
1970-1-1
 楼主| 发表于 2015-7-21 13:52:21 | 显示全部楼层
我对照寄存器值确定SSI已经配置成了master模式,但是BCLK和FCLK都没有时钟信号,是不是这个时钟没有使能,换句话说在clock.c里面需要怎样去配置这个时钟呢?我只是添加了如下代码
        clk_set_parent(&ssi1_clk[0], &pll3_sw_clk);
//        clk_set_rate(&ssi1_clk[0], /*176000000*/ 180633600);
        clk_enable(&ssi1_clk[0]);
还需要怎样去设置呢
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

34

帖子

0

注册会员

Rank: 2

积分
124
最后登录
1970-1-1
 楼主| 发表于 2015-7-21 17:19:28 | 显示全部楼层
顶!!!!!
回复

使用道具 举报

该用户从未签到

7

主题

34

帖子

0

注册会员

Rank: 2

积分
124
最后登录
1970-1-1
 楼主| 发表于 2015-7-21 18:24:08 | 显示全部楼层
终于有时钟信号啦,能听到wav的声音了,虽然播放mp3都是杂音。

问题是src_num和ext_num的方向不对,另外clock.c需要打一个补丁
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-22 01:36 , Processed in 0.097051 second(s), 28 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表