da7212 mkrzero接口

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
9个帖子/ 0新
最后一篇
尼拉达特
离线
最后一次露面:1 year 2 months ago
加入:2019-12-27 07:09
da7212 mkrzero接口

你好,

根据DA7212的数据表Page 62,当DA7212与从动模式中的处理器接口时,不需要MCLK。我用我的Arduino Mkrzero界面接口了ARD-Audio-DA7212板。Arduino MKRZero能够生成所需的I2S信号,如BCLK,WCLK和Datout。我的问题是我必须向Mkrzero提供MCLK到ARD-Audio-DA7212吗?

当做,

尼拉达特。

设备:
CharlesXue1122.
离线
最后一次露面:3小时39分钟前
职员
加入:2019-12-23 05:48
亲爱的Niradat,

亲爱的Niradat,

抱歉迟到的回应。我的DA7212 DA7212似乎与您的差异有些不同。

你能把你的人发送给我来检查描述。我需要检查PLL时钟Soucrec来自MCLK或Blck。

非常感谢!

布尔

查尔斯

尼拉达特
离线
最后一次露面:1 year 2 months ago
加入:2019-12-27 07:09
你好,

你好,

附近是我拥有的da7212的数据表。

Regards,

尼拉达特

CharlesXue1122.
离线
最后一次露面:3小时39分钟前
职员
加入:2019-12-23 05:48
嗨Niradat,

嗨Niradat,

附件是一个新的。您可以参考“13.25时钟模式”部分作为参考。请注意PLL模式配置。

谢谢!

尼拉达特
离线
最后一次露面:1 year 2 months ago
加入:2019-12-27 07:09
嗨查尔斯,

嗨查尔斯,

感谢您分享DA7212的更新数据表。使用数据表我已经在Arduino Mkrzero上写下了Follwing代码。在此代码中,MKRzero正在播放16位立体声WAV文件,我可以在我的ARD-Audio -Da7212音频屏蔽上聆听它。但似乎DA7212突然进入睡眠状态,音频停止。虽然mkrzero正在播放音频。此外,来自DA7212模块的音频不是立体声。请在这方面帮助。

此致,

涅盘。

#定义编解码器地址0x1A#include#include#include//要播放的wave文件的文件名const char filename[]=“MUSIC.WAV”;//表示波形文件SDWaveFile waveFile的变量;void setup(){//打开串行通信并等待端口打开:serial.begin(9600);延迟(5000);//设置SD卡,具体取决于转接板的屏蔽//您可能需要在begin for SS Serial.print(“初始化SD卡…”)中传递pin码;如果(!SD.begin()){Serial.println(“初始化失败!”);返回;}Serial.println(“初始化完成”);//创建一个SDWaveFile waveFile=SDWaveFile(文件名);//如果(!waveFile){Serial.println(“wave文件无效!”);while(1);//什么都不做}//打印出一些信息。关于wave文件Serial.print(“Bits per sample=”);Serial.println(waveFile.bitsPerSample());长通道=waveFile.channels();Serial.print(“Channels=”);Serial.println(通道);long sampleRate=waveFile.sampleRate();Serial.print(“采样率=”);串行打印(sampleRate);串行打印(“Hz”);长持续时间=waveFile.duration();Serial.print(“Duration=”);连续打印(持续时间);Serial.println(“秒”);//////////////////////////////////////////////////////////////////////////////DA7212的初始化/////////////////////////////////////////////////////////////////////////////Wire.begin()//写入DA7212 0x92 0x00//将斜坡率设置为默认延迟(100);Wire.beginTransmission(编解码器地址);Wire.write(0x92);Wire.write(0x00);线端传动()//写入DA7212 0x90 0x80//启用数字LDO延迟(100);Wire.beginTransmission(编解码器地址);Wire.write(0x90);线写(0x80);线端传动()//写入DA7212 0x29 0xC0//启用AIF 16位I2S模式延迟(100);Wire.beginTransmission(编解码器地址);Wire.write(0x29);Wire.write(0xC0);线端传动()//写入DA7212 0x22 0x0A//设置传入采样率为44.1kHz延时(100);Wire.beginTransmission(编解码器地址);Wire.write(0x22);线写(0x0A);线端传动()//写入DA7212 0x94 0x02//将PC sync设置为resync default delay(100);Wire.beginTransmission(编解码器地址);Wire.write(0x94);Wire.write(0x02);线端传动()//写入DA7212 0x27 0x04//PLL\u CTRL PLL disabled delay(100);Wire.beginTransmission(编解码器地址);Wire.write(0x27);Wire.write(0x04);线端传动()//写入DA7212 0x2A 0x32//路由DAI输出默认延迟(100);Wire.beginTransmission(编解码器地址);线写(0x2A);Wire.write(0x32);线端传动()//写入DA7212 0x4B 0x08//DACL延迟的混音输入(100);Wire.beginTransmission(编解码器地址);Wire.write(0x48);Wire.write(0x08);线端传动()//写入DA7212 0x4C 0x08//DACR延迟(100)的混音输入;Wire.beginTransmission(编解码器地址);线写(0x4C);Wire.write(0x08);线端传动()//写入DA7212 0x47 0xCD//使能电荷泵、CP\u MOD mode、CPVDD/1和Boost CP delay(100);Wire.beginTransmission(编解码器地址);Wire.write(0x47);Wire.write(0xCD);线端传动()//写入DA7212 0x95 0x36//将CP threshold设置为0x36 delay(100);Wire.beginTransmission(编解码器地址);Wire.write(0x95);Wire.write(0x36);线端传动()//写入DA7212 0x96 0xA5//设置CP Tau DELAY为64ms DELAY(100);Wire.beginTransmission(编解码器地址);Wire.write(0x96);Wire.write(0xA5);线端传动()//写入DA7212 0x48 0x2D//将音量设置为-12dB延迟(100);Wire.beginTransmission(编解码器地址);Wire.write(0x48);Wire.write(0x2D);线端传动()//写入DA7212 0x49 0x2D//将音量设置为-12dB延迟(100);Wire.beginTransmission(编解码器地址);Wire.write(0x49);Wire.write(0x2D);线端传动()//写入DA7212 0x51 0xF1//启用DAC、Mix和HP放大器延迟(100);Wire.beginTransmission(编解码器地址);线写(0x51);Wire.write(0xF1);线端传动()//写入DA7212 0xFD 0x01//将音调发生器增益设置为-18dBstem有效延迟(100);Wire.beginTransmission(编解码器地址);Wire.write(0xFD);Wire.write(0x01);Wire.endTransmission();//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////调整播放音量AudioOutI2S。音量(50);//检查I2S输出是否可以播放波形文件if(!AudioOutI2S.canPlay(waveFile)){Serial.println(“无法使用I2S播放波形文件!”);while(1);//什么都不做}//开始播放Serial.println(“开始播放”);播放(波形);}void loop(){//如果(!AudioOutI2S.isPlaying()){//播放已停止Serial.println(“播放已停止”);while(1);//什么也不做}

CharlesXue1122.
离线
最后一次露面:3小时39分钟前
职员
加入:2019-12-23 05:48
嗨Niradat,

嗨Niradat,

如果已将DA7212配置为从模式,请您提供从Arduino MKRZERO发送的MCLK / BCLK / WS的频率吗?

I can find some sample code for you.

谢谢!

尼拉达特
离线
最后一次露面:1 year 2 months ago
加入:2019-12-27 07:09
嗨查尔斯,

嗨查尔斯,

是的,我想要配置DA7212slave mode. Regarding the clock outputs from Arduino MKRZERO, there are only three outputs from MKRZERO namely BCLK, WS and DOUT with their respective frequency BCLK= 1.4112 MHz and WS=44.1KHz. MCLK is not output from MKRZERO.

BCLK = 44.1 kHz×16×2 = 1.4112 MHz

Regards,

尼拉达特。

CharlesXue1122.
离线
最后一次露面:3小时39分钟前
职员
加入:2019-12-23 05:48
嗨Niradat,

嗨Niradat,

请参阅附加的代码。

谢谢!

尼拉达特
离线
最后一次露面:1 year 2 months ago
加入:2019-12-27 07:09
非常感谢查尔斯

非常感谢查尔斯