UncleRoderick

UncleRoderick

32个粉丝

14

问答

1

专栏

14

资料

UncleRoderick  发布于  2018-12-05 21:03:20
采纳率 0%
14个问答
QQ1097159959,海思平台调试开发
1972

请问有大神调过3520DV300音频主模式吗?有问题想请教下

 
Hi3520DV300的音频主模式该怎么配置,按文档来配置没有效果
我来回答
回答3个
时间排序
认可量排序

UncleRoderick

32个粉丝

14

问答

1

专栏

14

资料

UncleRoderick 2018-12-05 21:03:48
认可0
[img]‪C:\Users\Admin\Pictures\QQ图片20181205210133.jpg[/img]

UncleRoderick

32个粉丝

14

问答

1

专栏

14

资料

UncleRoderick 2018-12-05 21:05:21
认可0
录音工作流程
        录音步骤如下:(假设场景为 I2S 模式 48K,2 声道 16bit 精度,假设 AIAO pll 源头时
        钟为 500M,系统控制器 AIAO 时钟已经使能)。
步骤 1. 配置寄存器 I2S_CRG_CFG0_08 为 0x003254E7,此时第 8 路时钟输出 mclk 频率为
        12.288MHz。
步骤 2. 配置寄存器 I2S_CRG_CFG1_08 为 0x00000133,此时使能第 8 路时钟,同时把 bclk 配
        置为 mclk 的 4 分频,fclk 配置为 bclk 的 64 分频,此时 fclk 频率为 48KHz。
步骤 3. 配置 AIAO_SWITCH_RX_BCLK 寄存器为 0x00000008,此时设置接收通路选择工作在
        第 8 路时钟上面,也即上面配置好的时钟。
步骤 4. 配置 RX_IF_ATTRI 为 0xE4800014,此时设置接收通道工作在 I2S 模式下,两声道,
        采样精度为 16bit。
步骤 5. 配置 RX_BUFF_SADDR 寄存器为分配 DDR 的起始地址,比如 0x00000100 配置
        RX_BUFF_SIZE 寄存器为分配 DDR_BUF 的大小,比如 0x0000f000,配置
        RX_BUFF_WPTR 寄存器和 RX_BUFF_RPTR 寄存器为 0x0,初始化读写指针。配置
        RX_TRANS_SIZE 寄存器,比如 0x00000f00。
步骤 6. 根据需要,使能接收通路相应的中断位,即配置寄存器 RX_INT_ENA,比如配置为
        0x00000001,只是能 trans_int 中断。
步骤 7. 配置寄存器 RX_IF_ATTRI 为 0x10000000,使能接收通道,接收通道开始工作,录音
        开始。
步骤 8. 通过读取 RX_BUFF_WPTR 和 RX_BUFF_RPTR 的值判断循环缓冲区的空/满状态以及
        有效数据量;要保证在循环缓冲区满之前将数据取走,并将更新后的循环缓冲区读地
        址写入 RX_BUFF_RPTR,否则可能会造成循环缓冲区溢出,声音不连续。
步骤 9. 录音完成后,写寄存器 RX_IF_ATTRI 为 0x00000000,不断查询 RX_IF_ATTRI 寄存
        器,直到看到其变为 0x20000000 后,说明接收通道停止完成。
----结束

播放工作流程
        AOP0、AOP1 的工作流程相同,下面以 AOP0 为例进行说明。
        播放步骤如下:(假设场景为 I2S 模式 48K,2 声道 16bit 精度,假设 AIAO pll 源头时
        钟为 500M,系统控制器 AIAO 时钟已经使能):
步骤 1. 配置寄存器 I2S_CRG_CFG0_08 为 0x003254E7,此时第 8 路时钟输出 mclk 频率为
        12.288MHz。
步骤 2. 配置寄存器 I2S_CRG_CFG1_08 为 0x00000133,此时使能第 8 路时钟,同时把 bclk 配
        置为 mclk 的 4 分频,fclk 配置为 bclk 的 64 分频,此时 fclk 频率为 48KHz。
步骤 3. 配置 AIAO_SWITCH_TX_BCLK 寄存器为 0xE4000014,此时设置接收通路选择工作在
        第 8 路时钟上面,也即上面配置好的时钟。
步骤 4. 配置 TX_IF_ATTRI 寄存器为 0xE4000014,即配置发送接口工作于 I2S 模式下,两声
        道,16bit 采样精度。
步骤 5. 配置 TX_BUFF_SADDR 为分 BUF 的起始地址,比如 0x00000100,TX_BUFF_SIZE 为
        分配 BUF 的大小, 初始化 TX_BUFF_WPTR 为 0x0,TX_BUFF_RPTR 为 0x0,设置
        TX_TRANS_SIZE。(这一步配置可以参考录音流程)
步骤 6. 根据需要,使能接收通路相应的中断位,即配置寄存器 TX_INT_ENA,比如配置为
        0x00000001,只使能 trans_int 中断。
步骤 7. 配置寄存器 TX_DSP_CTRL 为 0x10000000,使能播放通道。
步骤 8. 通过读取 TX_BUFF_WPTR 和 TX_BUFF_RPTR 的值判断循环缓冲区的空/满状态以及
        有效数据量;要保证在循环缓冲区空之前将新的音频数据填入,并将更新后的循环缓
        冲区写地址写入 TX_BUFF_WPTR,否则可能会造成循环缓冲区下溢出,声音不连
        续。
步骤 9. 播放结束后,配置寄存器 TX_DSP_CTRL 为 0x00000000,停止播放通道,查询
        TX_DSP_CTRL 寄存器,当看到其值变为 0x20000000 时,说明通道停止完成。
----结束

UncleRoderick

32个粉丝

14

问答

1

专栏

14

资料

UncleRoderick 2018-12-05 21:06:20
认可0
按文档说明的来配,MCLK啥都没有
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区