TAS5754应用笔记
2016-03-08 23:23
218 查看
1. 工程实例
音频接口:三线I2S接口,从模式,无MCLK采样频率:192KHz
总线接口:I2C 50KHz
电源电压:15V/3.3V
功能框图:
上电自动复位所有寄存器
系统时钟图:
LRCK/FS可以作为时钟源,需要软件配置
fs代表I2S输入数据的采样频率
时钟分叉树:
可选时钟源有三种:MCLK/GPIO/SCLK
选择SCLK作为时钟源的话,需要手动配置PLL锁相环的参数(K/J/D/R/P),参数的选择取决于SCLK的频率,采样频率等参数
PLL锁相成功后生成的PLLCK经过分频后提供给内部DSP和DAC使用
从模式的SCLK作为PLL锁相环的时钟源,生成内部时钟(3线PCM)
关闭自动配置音频接口,否则不能手动配置PLL参数
配置时钟分叉树,使SCLK的时钟给到PLL
根据从模式I2S输入的采样频率计算PLL参数。本工程使用192KHz采样频率,参照下表中的参数配置PLL锁相环(建议选择PLL倍频比最小的,表中最后一行R*J.D/P=2,值最小),锁相环锁定后会输出数倍于SCLK的时钟
图中参数J和D可由公式进一步计算得出,公式如下:
参数DSPfs,DOSR,NCP用来配置时钟分叉树内的对应分频器
SPK_GAIN脚上的电压决定了功放的最大输出功率
本工程使用26dBV=19.95V
dBV-V快速转换工具链接
功放运行模式选择stereo模式
mini DSP 音频处理器机制
多种可选的HybridFlows,快速将mini DSP配置到特定的模式
只有HybridFlow5支持192KHz的采样率
2. 示例代码
uint8_t IIC_REG_5754[][2] = { {0x00,0x00}, /* Select page 0 */ {0x01,0x11}, /* Enter reset mode */ {0xFF,0x32}, /* Delay 50ms */ {0x01,0x00}, /* Enter normal mode */ {0x03,0x11}, /* Mute all channels */ {0x02,0x10}, /* Enter standby mode */ {0x25,0x5a}, /* Ignore Fs/MCLK/LRCLK/SCLK detection,disable clock auto set */ {0x0d,0x10}, /* Set SCLK as PLL clock */ {0x14,0x01}, /* Set P=2 */ {0x15,0x08}, /* Set J=9 */ {0x16,0x00}, /* Set D=0 */ {0x17,0x00}, {0x18,0x00}, /* Set R=1 */ {0x1b,0x01}, /* Set DSP clock divide by 1 */ {0x1c,0x0f}, /* Set DAC clock divide by 16 */ {0x1d,0x03}, /* Set NCP clock divide by 2 */ {0x1e,0x01}, /* Set OSR clock divide by 1 */ {0x22,0x02}, /* Set Quad speed(96KHz~192KHz) */ {0x23,0x01}, /* Set DSP clock cycles=DSPfs */ {0x24,0x00}, {0x02,0x00}, /* Enter normal operation */ {0x03,0x00}, /* Un-mute all channels */ }; void PA_5754_Init(uint8_t Adds) { uint8_t buf[2]; uint8_t index; for(index = 0; index<(sizeof(IIC_REG_5754)/(sizeof(uint8_t)*2)); index++) { switch(IIC_REG_5754[index][0]) { case 0xFF: vTaskDelay(IIC_REG_5754[index][1]); break; default: buf[0] = IIC_REG_5754[index][0]; buf[1] = IIC_REG_5754[index][1]; IICsetReg(Adds,buf); break; } } }
相关文章推荐
- 大数的加法,减法,乘法
- block的使用场景
- mysql 连接数的最大数
- pro2
- 随机生成30个1~99的加减乘除运算
- 勇敢向前, 无所畏惧------送给入职现公司半年的自己, 送给即将满28岁的自己
- JSON 数据格式
- (MFC)CPropertySheet的生成
- 静态方法(static method)那点事
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
- 千万用户级别应用系统背后的SOA组件化容器
- 讲讲项目开发生命周期
- linux第8天 connect强化
- IT十八掌作业_java基础第九天_多线程、自动拆装箱
- poj 3259 最短路判负环 spfa算法和Bellman_ford算法
- BZOJ 3140 [HNOI2013]消毒
- 冒泡排序--BubbleSort
- 【bzoj4421】【cerc2015】【Digit Division】
- 【杭电oj】1716 - 排列2(字典序输出)
- Linux普通用户使用1024以下端口的问题