adc的bclk与adc和dac的区别bclk可以连在一齐吗

Verilog对WM8731的I2S数据格式 (转载) _物联网在线WM8960GEFL/V (WOLFSON [立体声编解码器与1W立体声D类扬声器驱动器和耳机驱动器的便携式音频应用]) PDF技术资料下载
WM8960GEFL/V 供应信息 IC Datasheet 数据表 (48/88 页)
按型号查询:
WM8960GEFL/V
立体声编解码器与1W立体声D类扬声器驱动器和耳机驱动器的便携式音频应用
[Stereo CODEC with 1W Stereo Class D Speaker Drivers and Headphone Drivers for Portable Audio Applications]
&&WM8960GEFL/VPDF文件:
描述:&&立体声编解码器与1W立体声D类扬声器驱动器和耳机驱动器的便携式音频应用[Stereo CODEC with 1W Stereo Class D Speaker Drivers and Headphone Drivers for Portable Audio Applications]文件大小:&&1047 KPDF页数:
&&88 页联系供应商:&& 品牌Logo:
&&&&WOLFSON [ WOLFSON MICROELECTRONICS PLC ]
WM8960GEFL/V&&
WM8960GEFL/V&&
WM8960GEFL/V&&
WM8960GEFL/V&&
WM8960GEFL/V&
立体声编解码器与1W立体声D类扬声器驱动器和耳机驱动器的便携式音频应用 [Stereo CODEC with 1W Stereo Class D Speaker Drivers and Headphone Drivers for Portable Audio Applications]
WM8960BCLK DIVIDE初步的技术数据在主控模式下, BCLK频率由BCLKDIV控制[ 3 : 0 ] 。当ADC和DAC都在不同的采样率工作, BCLKDIV必须被适当地设置,以支持的数据速率取其更快。内部时钟分频和相位控制机制,确保BCLK , ADCLRC和DACLRC边缘将出现在一个可预测的和可重复的位置相对于彼此,并为一个数据DAC的采样速率, ADC采样率和BCLKDIV设置给定的组合。见时钟和采样率节以获取更多信息。音频数据格式在左对齐模式下, MSB可在BCLK的第一个上升沿之后一个LRCLK过渡。其它位到最低位,然后才能发送。根据单词长度,BCLK的频率和采样速率,可能有每个LRCLK过渡之前未使用的BCLK的周期。图26左对齐音频接口(假设n位的字长度)的在右对齐模式下, LSB可在BCLK的最后一个上升沿LRCLK前过渡。所有其他位( MSB在前)之前被发送。根据单词的长度, BCLK频率和采样速率,可能有每个LRCLK过渡后未使用的BCLK的周期。图27右对齐音频接口(假设n位字长)在IS模式中,MSB可在BCLK的以下一个LRCLK过渡的第二个上升沿。其它位到最低位,然后才能发送。根据单词的长度, BCLK频率和采样率,可以存在间和LSB一个样品未使用的BCLK周期的下一个最高有效位。2w工信部, 2006年9月,修订版2.04821ic官方微信-->
后使用快捷导航没有帐号?
请完成以下验证码
查看: 297|回复: 6
DAC的使用方法
&&已结帖(0)
主题帖子积分
初级工程师, 积分 2404, 距离下一级还需 596 积分
初级工程师, 积分 2404, 距离下一级还需 596 积分
主题帖子积分
专家等级:结帖率:0%打赏:0.00受赏:10.00
主题帖子积分
初级工程师, 积分 2404, 距离下一级还需 596 积分
初级工程师, 积分 2404, 距离下一级还需 596 积分
我们以NANO100BN的DAC来说明DAC的用法和特点
? NANO100支持 2个 12-bit DAC 通道
? 支持组模式 (2组 DAC 同步更新)
? 2 个 DAC 通道同步更新
? Channel 0 决定触发模式
? 如果数据更新没有使用 PDMA, 在下一个转换开始之前,软件必须更新好两个
DACx_DAT 寄存器
? 有 3种触发方式
? 上电稳定时间: 6 us
? DACPWONSTBCNT (14 bit 可编程,单位 PCLK)
? DAC 上电之后,等待 DACPWONSTBCNT+1个 PCLK开始转换
? 转换完成时间: 2 us (500k sample/sec)
? WAITDACCONV (8 bit 可调,单位 PCLK),用于 PDMA触发 DAC 时,保证 DAC 转
主题帖子积分
初级工程师, 积分 2404, 距离下一级还需 596 积分
初级工程师, 积分 2404, 距离下一级还需 596 积分
主题帖子积分
专家等级:结帖率:0%打赏:0.00受赏:10.00
主题帖子积分
初级工程师, 积分 2404, 距离下一级还需 596 积分
初级工程师, 积分 2404, 距离下一级还需 596 积分
下面的代码使用软件触发的方式,组模式,不用选择时钟源,时钟源默认为PCLK
void DAC_Init()
/* 使能 DAC 时钟 */
CLK-&APBCLK |= CLK_APBCLK_DAC_EN_M
/* 配置多功能引脚 PC.6 和 PC.7 用作 DAC */
SYS-&PC_L_MFP &= ~(SYS_PC_L_MFP_PC6_MFP_Msk | SYS_PC_L_MFP_PC7_MFP_Msk);
SYS-&PC_L_MFP |= SYS_PC_L_MFP_PC6_MFP_DA_OUT0 | SYS_PC_L_MFP_PC7_MFP_DA_OUT1;
/* 关闭PC.6 and PC.7引脚的数字通路 */
GPIO_DISABLE_DIGITAL_PATH(PC, (1 && 6) | (1 && 7));
/* 软件触发 */
DAC_Open(DAC, 0, DAC_WRITE_DAT_TRIGGER);
DAC_Open(DAC, 1, DAC_WRITE_DAT_TRIGGER);
/* 使能 DAC 组模式 */
DAC_ENABLE_GROUP_MODE(DAC);
//&&使能 DAC0 中断. 组模式中使能一个通道就可以了 .
DAC_ENABLE_INT(DAC, 0);
NVIC_EnableIRQ(DAC_IRQn);
//&&等待两个通道ready
while(DAC_IS_BUSY(DAC, 0) == 1);
while(DAC_IS_BUSY(DAC, 1) == 1);
/* 写第一笔数据到DATA寄存器 */
DAC_WRITE_DATA(DAC, 0, a16Sine[index0]);
DAC_WRITE_DATA(DAC, 1, a16Sine[index1]); //&&写通道1将触发 DAC 开始转换
/*中断处理函数*/
void DAC_IRQHandler(void)
// 清除中断标志
DAC_CLR_INT_FLAG(DAC, 0);
/*写下一笔数据*/
DAC_WRITE_DATA(DAC, 0, a16Sine[index0]);
DAC_WRITE_DATA(DAC, 1, a16Sine[index1]); // 写通道1将触发 DAC 开始转换
index0 = (index0 + 1) % SINE_ARRAY_SIZE;
index1 = (index1 + 1) % SINE_ARRAY_SIZE;
主题帖子积分
高级工程师, 积分 5066, 距离下一级还需 2934 积分
高级工程师, 积分 5066, 距离下一级还需 2934 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
高级工程师, 积分 5066, 距离下一级还需 2934 积分
高级工程师, 积分 5066, 距离下一级还需 2934 积分
NANO100支持 2个 12-bit DAC 通道,双通道啊,可以做立体声。
主题帖子积分
高级工程师, 积分 5641, 距离下一级还需 2359 积分
高级工程师, 积分 5641, 距离下一级还需 2359 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:0.10
主题帖子积分
高级工程师, 积分 5641, 距离下一级还需 2359 积分
高级工程师, 积分 5641, 距离下一级还需 2359 积分
DAC初始化的方法,很不错,很明白。
主题帖子积分
高级技术员, 积分 942, 距离下一级还需 58 积分
高级技术员, 积分 942, 距离下一级还需 58 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
高级技术员, 积分 942, 距离下一级还需 58 积分
高级技术员, 积分 942, 距离下一级还需 58 积分
一次转换需要2us,速度可以了。
主题帖子积分
中级工程师, 积分 4881, 距离下一级还需 119 积分
中级工程师, 积分 4881, 距离下一级还需 119 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
中级工程师, 积分 4881, 距离下一级还需 119 积分
中级工程师, 积分 4881, 距离下一级还需 119 积分
一秒500k次的采样速率,没谁了
主题帖子积分
高级技术员, 积分 942, 距离下一级还需 58 积分
高级技术员, 积分 942, 距离下一级还需 58 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
高级技术员, 积分 942, 距离下一级还需 58 积分
高级技术员, 积分 942, 距离下一级还需 58 积分
DAC用的不多,都是用ADC,不过万一用到了呢,还是再看看。为音频设备动手添加ADAT接口_中华文本库
第1页/共4页
为音频设备动手添加 ADAT 接口
本人有一台 BOSS BR1600 调音台,因为进不了系统,后来维修不当导致主板报废,所 幸 ADC 部分还能用,手痒把它改成一台 ADAT,国内 ADAT 的电路例子不多,从一个外国 网站上看到有大神将 echo layla 声卡的外置接口箱改成 ADAT 的例子,经过几天查 IC 手册 不断的学习,终于做成成功传输 ADAT 信号。 虽然对 ADC 和 DAC 的原理了解不多,但基本知道它们都需要三个时钟信号,分别是 MCLK(SCLK)系统时钟, LRCK(WCLK)字时钟, BCLK 位时钟,只要 ADC 或 DAC 接收到这 三个时钟信号便可以正常工作。 在 BR1600 主板上,adc 和 dac 用的是 AK4552,它是 ADC 和 DAC 一体的,ADC 将模 拟信号转换成数字信号后, 通过 ADAT 的发射芯片 AL1401 转成光纤信号, 光纤信号亦可从 ADAT 接收芯片 AL1402 转换成数字信号,送到 DAC 中完成数字对模拟的转换。 基本电路入下图
AL1402 的 SVCO 在手册上说它是 MCK, 将 AL1402 的三根时钟线接到 4552 的 BCLK、 MCLK、LRCK 上即可完成数据同步。 接着就是连接传输数字音频的信号线,4552 的 SDTO、SDTI 是数字输入输出。 下图是 br1600 主板的 4 个 AK4552,我需要引出三根时钟线,可从 IC 手册上查到。
小心翼翼的焊出时钟线,数字输入输出线 接下来就是焊接 AL1401 和 AL1402 发射接收电路 其中 MODE0、MODE1、FMT0、FMT1、 FMT2、FMT3 是设置模式和格式用的,建 议使用上拉排阻和拨码开关完成模式和格式的设置,这些数据在 AL1401 和 AL1402 手册上 有说明。
一共需要焊接 3 根时钟线,4 根数字 IN(4 个 AK4552) ,4 根数字 OUT, (同一设备上 所有的 ADC 和 DAC 时钟线都是并联的)接下来就要产生时钟了,在某 DIY 论坛上看到有 人用 HC4040 分频 IC 做了一个时钟,利用 11.2896M 有源晶振产生时钟,通过 HC4040 分频 后得出 44100 赫兹,它就是字时钟信号了(WCLK) , 晶振输出脚接到 HC4040 的 CLK 时钟输入脚 (这里要注意 HC4040 的 CLR 脚接低电 平,否则所有输出脚都不会有输出)HC4040 的 13 脚 Qh 即可输出 44100Hz,用万用表的占 空比档可以测出频率, 将这根线接到 AL1401 和 AL1402 的 WDCLK 上,只要 AL1402 接 收到 WCLK,便会产生 MCLK(11.2896M Hz)和 BCLK(2.81M Hz) ,这时候 AK4552 均 得到这三个时钟信号。
接下来用光纤线连接另一台 ADAT 看看效果,调整拨码开关将模式和数据格式设置正确(瞎猜)
我现在要将改装好的 ADAT 与另一台 ADAT 连接,看看是否可以正常传输音频信号 将另一台 ADAT 的同步方式设置为 ADAT 输入,SYNC 灯亮起,说明同步正确,只要 数据格式正确便可以正常出声。
你可以使用多个晶振来切换采样频率,切换得出的频率接上 AL1401 和 AL1402 的 WCLK 即
第1页/共4页
寻找更多 ""版主请教个问题! STM32 I2S 接 AUDIO CODEC==
热门型号:
&&&当前位置:
版主请教个问题! STM32 I2S 接 AUDIO CODEC
用户名:aaron238
注册时间: 14:36:00
版主请教个问题! STM32 I2S 接 AUDIO CODEC
一般的AUDIOCODEC是这样的接口!!ST的没法接!!!因为在输出DAC的同事需要读取出ADC值!也就是MIC!如果要分时用的话!这就不能实现了!语音的功能就有问题了!!!不知道ST的要怎么接了程序上怎么弄了
用户名:aaron238
注册时间: 14:44:00
现在很多的 CODEC 都是这样的I2S 接口 !!&&
用户名:浪淘沙
注册时间: 15:10:00
什么也没说,谁知道应该怎么接?
用户名:barboon
注册时间: 15:10:00
大容量的STM32有2个I2S接口可以考虑这样接:一个接ADCDAT,一个接DACDAT,共用BCLK和LRCK
用户名:ST_ARM
注册时间: 15:16:00
该图是ST的DEMO板上的例子。至于你所说的“如果要分时用的话!&&这就不能实现了!&语音的功能就有问题了”,那是你对自己的编程的判断不足而已!
用户名:ST_ARM
注册时间: 17:12:00
就应该能够实现软件对其实时读写的操作,而不影响其运行。
热门型号:}

我要回帖

更多关于 adc和dac 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信