jar4812

jar4812

0个粉丝

4

问答

0

专栏

0

资料

jar4812  发布于  2017-08-09 17:21:36
采纳率 0%
4个问答
5761

Hi3536 sample_audio 与i2s 问题

 
我使用 sample_audio 程序能正常的由 analog line-in 到 analog-line-out.

请问现在改用外部 codec(CS8422)输出I2S 信号到 Hi3536 时要如何设定, 才能让 选择外部I2S 为 audio 输入源呢?
我来回答
回答13个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-08-09 17:42:13
认可0
不同的I2S对应不同的AI/AO设备, 只要打开不同的AI/AO设备就可以了, 要注意设对管脚复用关系

jar4812

0个粉丝

4

问答

0

专栏

0

资料

jar4812 2017-08-10 09:24:55
认可0
手册上 Hi3536 只有一个 I2S input, 然后用 mux 来切换外部 I2S 与内部 ADC, 但是没看到如何在这两者间切换, 有任何建议吗?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-08-10 10:15:30
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=57168&ptid=18404]jar4812 发表于 2017-8-10 09:24[/url]
手册上 Hi3536 只有一个 I2S input, 然后用 mux 来切换外部 I2S 与内部 ADC, 但是没看到如何在这两者间切换 ...[/quote]

管脚复用
   himm 0x120F0190 0x2; # 00:GPIO12_0  01:VOU1120_DATA0  10:I2S0_SD_RX  11:I2S2_MCLK
    himm 0x120F0194 0x2; # 00:GPIO12_1  01:VOU1120_DATA1  10:I2S0_SD_TX  11:I2S2_BCLK_TX
      himm 0x120F01a0 0x2; # 00:GPIO12_4  01:VOU1120_DATA4  10:I2S0_WS_TX
    himm 0x120F01a4 0x2; # 00:GPIO12_5  01:VOU1120_DATA5  10:I2S0_WS_RX
    himm 0x120F01a8 0x2; # 00:GPIO12_6  01:VOU1120_DATA6  10:I2S0_BCLK_RX
    himm 0x120F01ac 0x2; # 00:GPIO12_7  01:VOU1120_DATA7  10:I2S0_BCLK_TX
    himm 0x120F01b0 0x2; # 00:GPIO13_0  01:VOU1120_DATA8  10:I2S0_MCLK  11:SFC_NAND_BOOT_PIN1

jar4812

0个粉丝

4

问答

0

专栏

0

资料

jar4812 2017-08-10 11:39:59
认可0
本帖最后由 jar4812 于 2017-8-10 11:46 编辑

这个之前都设过了, 我的I2S 是做Rx 用, 因此只用到三根pin
himm 0x120F0190  0x02  -->    GPIO12_0/I2S0_SD_RX
himm 0x120F01A4  0x02  -->    GPIO12_5/I2S0_WS_RX
himm 0x120F01A8  0x02  -->    GPIO12_6/I2S0_BCLK_Rx
这三个pin 都设定为  0x02 , 但是执行 sample_audio 0 后, 从analog-line-out来实际听, 结果还是听到 analog-line-in 输入的声音, 无法由 I2S 这路来输入声音, 请问 sample_audio 程序代码还需要做其他什么调整吗 ?

_沉思

0个粉丝

6

问答

0

专栏

0

资料

_沉思 2017-08-10 11:53:53
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=57184&ptid=18404]jar4812 发表于 2017-8-10 11:39[/url]
这个之前都设过了, 我的I2S 是做Rx 用, 因此只用到三根pin
himm 0x120F0190  0x02  -->    GPIO12_0/I2S0_ ...[/quote]

楼主,方便交流一下吗?我现在也是在做AUDIO模块,我的qq是729327449

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-08-10 13:46:16
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=57184&ptid=18404]jar4812 发表于 2017-8-10 11:39[/url]
这个之前都设过了, 我的I2S 是做Rx 用, 因此只用到三根pin
himm 0x120F0190  0x02  -->    GPIO12_0/I2S0_ ...[/quote]

建议楼主看一下硬件文档中的 MISC_CTRL3





jar4812

0个粉丝

4

问答

0

专栏

0

资料

jar4812 2017-08-10 14:36:33
认可0
本帖最后由 jar4812 于 2017-8-10 14:54 编辑

设定 MISC_CTRL3 后已经能由外部I2C 接收声音了.  大大谢谢!

不过发现另外一个问题, 是只有单声道, 我修改 MONO 为 STEREO后
stAioAttr.enSoundmode = AUDIO_SOUND_MODE_STEREO;
反而会变成没有声音, 请问这是哪里漏掉了吗?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-08-10 15:13:07
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=57195&ptid=18404]jar4812 发表于 2017-8-10 14:36[/url]
设定 MISC_CTRL3 后已经能由外部I2C 接收声音了.  大大谢谢!

不过发现另外一个问题, 是只有单声道, 我 ...[/quote]

AUDIO_SOUND_MODE_STEREO的处理方式,sample里面没有,文档上资料少,不容易搞

简单的方法:开两个通道试一下 stAioAttr.u32ChnCnt = 1改成 2, 还是MONO



jar4812

0个粉丝

4

问答

0

专栏

0

资料

jar4812 2017-08-10 16:23:37
认可0
刚才将 stAioAttr.u32ChnCnt = 2; 后, 试验的结果还是单声道.

谢谢回复, 我再看看有没有什么 register 可调的!

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-08-10 16:44:54
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=57216&ptid=18404]jar4812 发表于 2017-8-10 16:23[/url]
刚才将 stAioAttr.u32ChnCnt = 2; 后, 试验的结果还是单声道.

谢谢回复, 我再看看有没有什么 register  ...[/quote]

外接codec要设对才行

jar4812

0个粉丝

4

问答

0

专栏

0

资料

jar4812 2017-08-10 17:13:28
认可0
我测试Hi3536 内部的 ADC codec line-in  出来的 line-out 结果也是只有单声道.

jar4812

0个粉丝

4

问答

0

专栏

0

资料

jar4812 2017-08-11 17:26:28
认可0
本帖最后由 jar4812 于 2017-8-11 17:28 编辑

自问自答.
我成功让Hi3536 输出双声道(左右声道), 下面说明修改, 供有兴趣者参考

1.        在 sample_audio.c 中修改下面两行
stAioAttr.enSoundmode = AUDIO_SOUND_MODE_STEREO;
stAioAttr.u32ChnCnt = 2;  // 原本是1, 现改为2

2.        在 sample_comm_audio.c 中修改下面两行
   在 SAMPLE_COMM_AUDIO_StartAi( )函数里修改 enable channel 设定为
       s32Ret = HI_MPI_AI_EnableChn(AiDevId, 0);

   在 SAMPLE_COMM_AUDIO_StartAo( )函数里修改 enable channel 设定为
       s32Ret = HI_MPI_AO_EnableChn(AiDevId, 0);

只要修改此四行code 即可输出双声道.

七星海棠

1个粉丝

29

问答

0

专栏

1

资料

七星海棠 2018-08-15 14:19:19
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=57377&ptid=18404]jar4812 发表于 2017-8-11 17:26[/url]
自问自答.
我成功让Hi3536 输出双声道(左右声道), 下面说明修改, 供有兴趣者参考

[/quote]

   你好,
         这样确实可以出双声道,ai后面接aenc时,怎么能将这2通道数据编码到一块呢
          我测试的得用2个aenc分开编码
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区