我的3254只提供一个MCLK,BCLK和WCLK OUTPUT,采用44.1K的采样率,GDE里面如下
CS里面设置生成的的文件如下
{ 0,0×00},
// # reg[ 0][ 1] = 0x01 ; Initialize the device through software reset
{ 1,0×01},
{254,0x0A},
{ 0,0×01},
// # reg[ 1][ 1] = 0x08 ; Power up AVDD LDO; Disable weak AVDD to DVDD connection; Enable Master Analog Power Control, AVDD LDO Powered; Disable weak AVDD to DVDD connection
{ 1,0×08},
// # reg[ 1][ 2] = 0x00 ; Enable Master Analog Power Control
{ 2,0×00},
// # reg[ 1][ 71] = 0x32 ; Set the input power-up time to 3.1ms
{ 71,0×32},
// # reg[ 1][123] = 0x01 ; Set REF charging time to 40ms (automatic)
{123,0×01},
{255,0×00},
{255,0×01},
{ 0,0×00},
// # reg[ 0][ 60] = 0x00 ; DAC prog Mode: miniDSP_A and miniDSP_D NOT powered up together, miniDSP_A used for signal processing
{ 60,0×00},
// # reg[ 0][ 61] = 0x00 ; Use miniDSP_A for signal processing
{ 61,0×00},
// # reg[ 0][ 17] = 0x08 ; 8x Interpolation
{ 17,0×08},
// # reg[ 0][ 23] = 0x04 ; 4x Decimation
{ 23,0×04},
{ 15,0×03},
// { 16,0×88},
// { 21,0×03},
// { 22,0×88},
{ 0,0×08},
// # reg[ 8][ 1] = 0x04 ; adaptive mode for ADC
{ 1,0×04},
{ 0,0x2C},
// # reg[ 44][ 1] = 0x04 ; adaptive mode for DAC
{ 1,0×04},
//
{ 0,0×00},
//reg[ 0][ 5] = 0x91 ; P=1, R=1, J=8
{ 5,0×91},
//reg[ 0][ 6] = 0x08 ; P=1, R=1, J=8
{ 6,0×08},
// reg[ 0][ 7] = 0x00 ; D=0000 (MSB)
{ 7,0×00},
//reg[ 0][ 8] = 0x00 ; D=0000 (LSB)
{ 8,0×00},
// reg[ 0][ 4] = 0x03 ; PLL_clkin = MCLK, codec_clkin = PLL_CLK, PLL on
{ 4,0×03},
// reg[ 0][ 12] = 0x88 ; MDAC = 8, divider powered on
{ 12,0×88},
// reg[ 0][ 13] = 0x00 ; DOSR = 32 (MSB)
{ 13,0×00},
// reg[ 0][ 14] = 0x20 ; DOSR = 32 (LSB)
{ 14,0×80},
// reg[ 0][ 18] = 0x02 ; NADC = 2, divider powered off
{ 18,0×02},
// reg[ 0][ 19] = 0x88 ; MADC = 8, divider powered on
{ 19,0×08},
// reg[ 0][ 20] = 0x20 ; AOSR = 32
{ 20,0×80},
// reg[ 0][ 11] = 0x82 ; NDAC = 2, divider powered on
{ 11,0×82},
// # reg[ 0][ 27] = 0x0C ; BCLK WCLK OUTPUT {27,0x0c},// # reg[ 0][ 30] = 0x81 ; BCLK OUTPUT DACCLK {30,0×81},
{27,0x4c},
{ 0,0×01},
// ADC POWER TUNE //# reg[ 1][ 61] = 0xff ; PTM_R1 {61,0xFF}, // LEFT DAC POWER TUNE //# reg[ 1][ 03] = 0x08 ; PTM_P1 {03,0×08}, // RIGHT DAC POWER TUNE //# reg[ 1][ 04] = 0x08 ; PTM_P1 {04,0×08}, { 0,0×01},
// # reg[ 1][ 51] = 0x40 ; Mic Bias enabled, Source = Avdd, 1.25V
{ 51,0×40},
// # reg[ 1][ 52] = 0x44 ;input routing
{ 52,0×44},
// # reg[ 1][ 54] = 0x40 ;
{ 54,0×40},
// # reg[ 1][ 55] = 0x44 ;
{ 55,0×44},
// # reg[ 1][ 57] = 0x40 ;
{ 57,0×40},
// # reg[ 1][ 59] = 0x00 ; Enable MicPGA_L Gain Control, 30dB rage (0~0x5f)
{ 59,0×10},
// # reg[ 1][ 60] = 0x00 ; Enable MicPGA_R Gain Control, 30dB
{ 60,0×10},
{ 0,0×00},
// # reg[ 0][ 81] = 0xc0 ; Power up LADC/RADC
{ 81,0xC0},
// # reg[ 0][ 82] = 0x00 ; Unmute LADC/RADC
{ 82,0×00},
{ 0,0×01},
// # reg[ 1][ 20] = 0x25 ; De-pop: 5 time constants, 6k resistance
{ 20,0×25},
// # reg[ 1][ 12] = 0x08 ; Route LDAC to HPL
{ 12,0×08},
// # reg[ 1][ 13] = 0x08 ; Route RDAC to HPR
{ 13,0×08},
// # reg[ 1][ 14] = 0x08 ; Route LDAC to LOL
{ 14,0×08},
// # reg[ 1][ 15] = 0x08 ; Route LDAC to LOR
{ 15,0×08},
{ 0,0×00},
// # reg[ 0][ 63] = 0xd4 ; Power up LDAC/RDAC w/ soft stepping
{ 63,0xD4},
{64,0×00},
{65,0×00}, //DAC 24dB Gain
{66,0×00}, { 0,0×01},
// # reg[ 1][ 16] = 0x00 ; Unmute HPL driver, 0dB Gain
{ 16,0×00},
// # reg[ 1][ 17] = 0x00 ; Unmute HPR driver, 0dB Gain
{ 17,0×00},
// # reg[ 1][ 18] = 0x00 ; Unmute LOL driver, 0dB Gain
{ 18,0×00},
// # reg[ 1][ 19] = 0x00 ; Unmute LOR driver, 0dB Gain
{ 19,0×00},
// # reg[ 1][ 9] = 0x3c ; Power up HPL/HPR and LOL/LOR drivers
{ 9,0×30},
{ 0,0×00},
// # reg[ 0][ 64] = 0x00 ; Unmute LDAC/RDAC
{ 64,0×00},
// # reg[0][82] = 0
{ 82,0×00},
// # reg[0][83] = 0
{ 83,0×00},
// # reg[0][86] = 32
{ 86,0×20},
// # reg[0][87] = 254
{ 87,0xFE},
// # reg[0][88] = 0
{ 88,0×00},
// # reg[0][89] = 104
{ 89,0×68},
// # reg[0][90] = 168
{ 90,0xA8},
// # reg[0][91] = 6
{ 91,0×06},
// # reg[0][92] = 0
{ 92,0×00},
// # reg[0][84] = 0
{ 84,0×00},
// # reg[0][94] = 32
{ 94,0×20},
// # reg[0][95] = 254
{ 95,0xFE},
// # reg[0][96] = 0
{ 96,0×00},
// # reg[0][97] = 104
{ 97,0×68},
// # reg[0][98] = 168
{ 98,0xA8},
// # reg[0][99] = 6
{ 99,0×06},
// # reg[0][100] = 0
{100,0×00},
};
请问大神们,这个配置哪里有问题?为什么电流会有30多毫安?而且启动时间(由IIC写完初始化寄存器到出声音)需要1秒多?
Derek Xie:
你好:
{254,0A}并不是真正的写254寄存器写0A,而是一个延迟指令。
(255,0)也不是写255寄存器0,而是写MiniDSPA的配置。同理(255,01)是写MINIDSPD的数据。你用GDE生成的配置文件中会有写。
kang hao:
回复 Derek Xie:
Dear Derek Xie:
谢谢你,你说的这三个我知道,我也正确做了延时和写入相应的MINIDSP,现在的问题是,声音有出来,就是工作电流好大有30多mA, 然后就是从写完DSP初始化指令后到处声音也需要1秒多的是延时,这两个问题是哪里的错了?怎么能把电流减小,把延时减少?
Derek Xie:
回复 kang hao:
你好:
要减少等待时间只能增加你I2C的写的数据,比如多个Byte写。你的输出启动了耳放吗?并且接着负载?
kang hao:
回复 Derek Xie:
你好:
MINIDSP的数据我都是一次一页全写进去的,从开始到写完大概时间是500ms,然后再到有有声音出来又需要1秒多的时间,请问这个一秒多的时间是由什么引起的?怎么才能降下来?耳放我有用,就是那个HP Output Gain我有打开,在空载的状况下也是30多mA的电流。
我在想是不是因为我的PLL配置有问题,配置图如下
外部只提供一个11.2896MHz的MCLK,通过PLL倍频输出CODEC_CLKIN,采样率是44.1khhz,BCLK和WCLK都是输出
。是不是因为PLL倍频的这个过程引起的启动延时长和功耗大?
kang hao:
回复 kang hao:
你好:
我把HP OUTPUT Gain 和 LINE OUTPUT Gain 都Mute了,电流依然还是那么大。
Derek Xie:
回复 kang hao:
你好:
如果你的MCLK是11.2896M的话,可以不使用PLL的,这样功耗也能省点。
建议你复位下芯片,然后看电流是多大。
你的输出有延迟可能是AGC和DRC的作用,你做一个最简单的流程在测试下。
做一个简单的测试流程看看会不会延迟很大。
kang hao:
回复 Derek Xie:
你好:
PLL关掉之后,用您说的配置,试了一下,现象有以下几点:1. 电流减少到10mA左右,2.延时会稍微减少一点点 大概300ms左右,3噪音很大,在开发板上的现象是:可以听到声音,但是声音变高变大就会出现刺耳的噪音非常大,用我自己板子试一下只有噪音,而且噪音又大又刺耳。
DSP中用了您所画的流程之后,时间减少的只有一点点,用示波器测了一下,大概减少的是IIC写入3254的时间两次寄存器总量的差。另外我也测了这时的功耗,电流几乎没有变化,是一样的。
现在的问题是:1. 关掉PLL后,功耗是降下来了但是噪音极大,我自己的板子几乎全是噪音根本不能用。这个噪音怎么引起?要怎么消除?2.启动延时的主要部分还是3254的时间,就算减少寄存器的写入量,流程简单化,也解决不了延时问题,讲不到几百个毫秒级。
Derek Xie:
回复 kang hao:
你好:
PLL关掉听到噪声的原因是因为你的配置有问题,你默认的配置CLOCK_IN是从PLL来的。而且你的Divider的分频系数也要改,并不是单使用PPS GDE就能配置好的。你的I2C的速率是多少的?可以尝试提高频率。还有就是你直接用PPS软件下载到开发板的时间和你的MCU写的方式的写入时间一致吗?
kang hao:
回复 Derek Xie:
你好,
1.关于clock 设置的问题,我是按您给的设置图在CS中设置,并用Command-line Interface 去记录寄存器(图1)设置在搬到我的头文件里的,如图2。不知道是哪里出了问题导致的噪音?
图1 CS中记录的clock 设置
图2 程序头文件中的 clock 设置端
2.在你上面说的最简流程下 开发板在PPSGDE从按下run按钮到output框出现done用了2.22S,我板子上的IIC写入时间是260ms。
3.当我启动听到声音后,再软件复位后的电流只有8mA,差不多是MCU的功耗。
4.如果我加大外部给的频率功耗和延时会不会减少?外部最大的频率支持到多少?我想用45.1584MHZ和90.3168MHZ试一试。
Derek Xie:
回复 kang hao:
你好:
你在哪里测试的?EVM板子?还是自己的板子?
w 30 00 00w 30 05 11w 30 00 00w 30 04 00w 30 00 00w 30 0B 81w 30 00 00w 30 0C 82w 30 00 00w 30 12 81w 30 00 00w 30 13 82
试下这个配置时钟。