|
这个芯片不接外部功放应该能驱动喇叭,但是驱动不论怎么改,喇叭的声音都很小,要贴在耳边才能听到。
看采样数据,都不是很小声音的数据,不知道原因出在哪?
高手说说;
void Mic1_I2Sin_SpkMixer(void)
{
UINT8 i=0;
ALC5621_Write_1_Word(RT5621_PWR_MANAG_ADD1,0x8800); //I2S Digital Interface Enable
RegData=ALC5621_Read_1_Word(0x3a);
Prints("REG3A:",0);
PrintUART0Hex(RegData);
PrintUART0Hex(RegData>>8);
ALC5621_Write_1_Word(RT5621_PWR_MANAG_ADD2,0xA0C3+0x0008); //--Vref of all analog Circuits/L(R)ADC Record Mixer Enable/...
RegData=ALC5621_Read_1_Word(0x3c);
Prints("REG3C:",0);
PrintUART0Hex(RegData);
PrintUART0Hex(RegData>>8);
ALC5621_Write_1_Word(RT5621_PWR_MANAG_ADD3,0x8002); //--Main Bias Analog Circuit Enable
ALC5621_Write_1_Word(RT5621_ADC_REC_MIXER,0x3d3d); //--ADC MIXER L/R MUTE CONTROL
// ALC5621_Write_1_Word(0x12,0xFC99-0xc000);//ADC Record Gain
ALC5621_Write_1_Word(RT5621_MIC_ROUTING_CTRL,0xB0F0); // 0x0080);
ALC5621_Write_1_Word(RT5621_MICROPHONE_CTRL,0x0402); //--MIC1 boost control +20dB(0X0102)?+30dB(0x0202) MICBIAS=0.75 avdd!
ALC5621_Write_1_Word(RT5621_MIC_VOL,MICVOC); //--0x1e00
ALC5621_Write_1_Word(RT5621_OUTPUT_MIXER_CTRL,0xC800); //spk
//ALC5621_Write_1_Word(RT5621_HP_OUT_VOL,0x1010); //0x1f1f);//HP Headphone output Volume 注意,这里的值是衰减的幅度,也就是说值越大声音越小!!!
ALC5621_Write_1_Word(RT5621_SPK_OUT_VOL,SPKVOC); //0x1f1f);//spk output Volume 0x0101
ALC5621_Write_1_Word(RT5621_PWR_MANAG_ADD3,0x900A); //MIC1 SPK
//RegData=ALC5621_Read_1_Word(0x3e);
//Prints("REG3E:",0);
//PrintUART0Hex(RegData);
//PrintUART0Hex(RegData>>8);
ALC5621_Write_1_Word(RT5621_PWR_MANAG_ADD1,0x8800); //HP
//ALC5621_Write_1_Word(0x10,0xE0E0);//HP Mute Mic2
ALC5621_Write_1_Word(RT5621_ADC_REC_GAIN,0x3232); //0xF912);//HP Mute ADC L/R Record Gain
ALC5621_Write_1_Word(RT5621_STEREO_DAC_VOL,0xA202); //0x6808);//DAC M & DAC Volume----注意,对应的【12:8】【4:0】值越大,音量越小
//RegData=ALC5621_Read_1_Word(0x0C);
//Prints("REG0C:",0);
//PrintUART0Hex(RegData);
//PrintUART0Hex(RegData>>8);
ALC5621_Write_1_Word(RT5621_ADD_CTRL_REG,0x4310);
//RegData=ALC5621_Read_1_Word(0x40);
//Prints("REG40:",0);
//PrintUART0Hex(RegData);
//PrintUART0Hex(RegData>>8);
ALC5621_Write_1_Word(RT5621_PWR_MANAG_ADD2,0xA7C8);
//ALC5621_Write_1_Word(0x62,0x8800);//EQ?
//RegData=ALC5621_Read_1_Word(0x62);
//Prints("REG62:",0);
//PrintUART0Hex(RegData);
//PrintUART0Hex(RegData>>8);
ALC5621_Write_1_Word(RT5621_HID_CTRL_INDEX,0x46);
RegData=ALC5621_Read_1_Word(RT5621_HID_CTRL_DATA);
Prints("IndexREG46:",0);
PrintUART0Hex(RegData);
PrintUART0Hex(RegData>>8);
Prints(" ",1);
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|