TDA7419调试记录(2)——2015/04/17

来源:互联网 发布:淘宝销售额排行榜 编辑:程序博客网 时间:2024/06/06 08:50

问题:TDA7419初始化后出现杂音?


有杂音:

/******************************************************************************                  Copyright (C), 2015-2030, ALONG ******************************************************************************  FileName   : audio_7419.c  Version    :  v0.1  Author     : Lawrence  Create Date    : 2015/04/16  Recent Modify  :  Func instruction   : audio_7419 function implementions  Function list  :  Modify History   :  1.DateTime   : 2015/04/16    Author   : Lawrence    Modify what   : Create file******************************************************************************/#include "audio_7419.h"#include "tda7419.h"/*----------------------------------------------* * extern var instruction                       * *----------------------------------------------*//*----------------------------------------------* * extern func prototype instruction            * *----------------------------------------------*//*----------------------------------------------* * func prototype instruction                   * *----------------------------------------------*/static void TDA7419_send( uint8 addr, uint8 *buf, int len);static void TDA7419_volume_calc( uint8 type );/*----------------------------------------------* * General var statement                        * *----------------------------------------------*//*----------------------------------------------* * Const var define                             * *----------------------------------------------*/#define UP 1#define DOWN-1//val to Volume Addr Register[0x03]static const unsigned char VolTable[]={0x7F, // mute// 00x5F, // -79dB0x5E, // -78dB0x5D, // -77dB0x5C, // -76dB0x5B, // -75dB0x5A, // -74dB0x59, // -73dB0x58, // -72dB0x57, // -71dB0x56, // -70dB// 100x55, // -69dB0x54, // -68dB0x53, // -67dB0x52, // -66dB0x51, // -65dB0x50, // -64dB0x4F, // -63dB0x4E, // -62dB0x4D, // -61dB0x4C, // -60dB// 200x4B, // -59dB0x4A, // -58dB0x49, // -57dB0x48, // -56dB0x47, // -55dB0x46, // -54dB0x45, // -53dB0x44, // -52dB0x43, // -51dB0x42, // -50dB// 300x41, // -49dB0x40, // -48dB0x3F, // -47dB0x3E, // -46dB0x3D, // -45dB0x3C, // -44dB0x3B, // -43dB0x3A, // -42dB0x39, // -41dB0x38, // -40dB// 400x37, // -39dB0x36, // -38dB0x35, // -37dB0x34, // -36dB0x33, // -35dB0x32, // -34dB0x31, // -33dB0x30, // -32dB0x2F, // -31dB0x2E, // -30dB// 500x2D, // -29dB0x2C, // -28dB0x2B, // -27dB0x2A, // -26dB0x29, // -25dB0x28, // -24dB0x27, // -23dB0x26, // -22dB0x25, // -21dB0x24, // -20dB// 600x23, // -19dB0x22, // -18dB0x21, // -17dB0x20, // -16dB0x1F, // -15dB0x1E, // -14dB0x1D, // -13dB0x1C, // -12dB0x1B, // -11dB0x1A, // -10dB// 700x19, // -9dB0x18, // -8dB0x17, // -7dB0x16, // -6dB0x15, // -5dB0x14, // -4dB0x13, // -3dB0x12, // -2dB0x11, // -1dB0x00, // +0dB// 800x01, // +1dB0x02, // +2dB0x03, // +3dB0x04, // +4dB0x05, // +5dB0x06, // +6dB0x07, // +7dB0x08, // +8dB0x09, // +9dB0x0A, // +10dB// 900x0B, // +11dB0x0C, // +12dB0x0D, // +13dB0x0E, // +14dB0x0F // +15dB};//index of VolTablestatic const unsigned char VolChangeTable[]={0,6,11,16,20,24,26,28,30,32,34,36,38,40,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,68,69,70,71,72,73,74,75,76,77,78,79,80};static const unsigned char SourceTable[]={0x62,// y01100010;   Radio, input se2, gain = 12 dB0,1,          // y00000001; SEL1, gain = 0dB3,          // y00000011; SEL3, gain = 0dB6           // y00000110; MUTE, gain = 0dB};static const unsigned char LoudTable[]={0x00, // +0dB//0x01, // +1dB//0x02, // +2dB//0x03, // +3dB/*0x04, // +4dB0x05, // +5dB*/0x06, // +6dB//low/*0x07, // +7dB0x08, // +8dB0x09, // +9dB*/0x0A, // +10dB//mid/*0x0B, // +11dB0x0C, // +12dB0x0D, // +13dB0x0E, // +14dB*/0x0F // +15dB//high};static const unsigned char SubwTable[]={0x00, // +0dB0x01, // +1dB0x02, // +2dB0x03, // +3dB0x04, // +4dB0x05, // +5dB0x06, // +6dB0x07, // +7dB0x08, // +8dB0x09, // +9dB//0x0A, // +10dB0x0B, // +11dB//0x0C, // +12dB0x0D, // +13dB//0x0E, // +14dB0x0F, // +15dB0x7F // mute};static const unsigned char BasTreTable[]={//0x0F, // -15dB//0x0E, // -14dB//0x0D, // -13dB0x0C, // -12dB//0x0B, // -11dB0x0A, // -10dB//0x09, // -9dB0x08, // -8dB//0x07, // -7dB0x06, // -6dB//0x05, // -5dB0x04, // -4dB//0x03, // -3dB0x02, // -2dB//0x01, // -1dB0x10, // +0dB//0x11, // +1dB0x12, // +2dB//0x13, // +3dB0x14, // +4dB//0x15, // +5dB0x16, // +6dB//0x17, // +7dB0x18, // +8dB//0x19, // +9dB0x1A, // +10dB//0x1B, // +11dB0x1C//,  +12dB//0x1D, // +13dB//0x1E, // +14dB//0x1F, // +15dB};static const unsigned char BalFadTable[]={0x00, // +0dB0x13, // -3dB0x15, // -5dB0x18, // -8dB0x1A, // -10dB0x1D, // -13dB0x1F, // -15dB0x22, // -18dB0x24, // -20dB0x27, // -23dB0x29, // -25dB0x2C, // -28dB0x7F // mute};static const unsigned char EQTable[]={// Bass, Treble10,10,//Classic10,12, //Pop12,12,//Rock};.../*----------------------------------------------* * Module var                                   * *----------------------------------------------*/ //buffer store TDA7419 registers value#define REGISTER_COUNT  (18)uint8 TDA7419_register_buf[REGISTER_COUNT] = {0};//TDA7419 registers description and statestruct TDA7419_desc gTDA7419_desc_val;extern TDES_T *tdesp;/*----------------------------------------------* * Function Define                              * *----------------------------------------------*//***************************************************************************** Func Name  : TDA7419_init Funciont   : init TDA7419 register In para    : void Out para   : Return val : void CB func    : Be CB func : Modify History :  1.DateTime    : 2015/04/16    Author      : Lawrence    Modification: New func*****************************************************************************/void TDA7419_init( void ){    TDA7419_register_buf[0]    = Bit00110000;         //Main selector: gain 6dB    TDA7419_register_buf[1]    = Bit11100000;         //Main selector: gain 6dB    TDA7419_register_buf[2]    = Bit00000111;         //Main selector: gain 6dB    TDA7419_register_buf[3]    = Bit00000000;         //Main selector: gain 6dB    TDA7419_register_buf[4]    = Bit00000000;         //Main selector: gain 6dB    TDA7419_register_buf[5]    = Bit00000000;         //Main selector: gain 6dB    TDA7419_register_buf[6]    = Bit00000000;         //Main selector: gain 6dB    TDA7419_register_buf[7]    = Bit00110000;         //Main selector: gain 6dB    TDA7419_register_buf[8]    = Bit01000000;         //Main selector: gain 6dB    TDA7419_register_buf[9]    = Bit11110111;         //Main selector: gain 6dB    TDA7419_register_buf[10]   = Bit00000000;        //Main selector: gain 6dB    TDA7419_register_buf[11]   = Bit00000000;        //Main selector: gain 6dB    TDA7419_register_buf[12]   = Bit00000000;        //Main selector: gain 6dB    TDA7419_register_buf[13]   = Bit00000000;        //Main selector: gain 6dB    TDA7419_register_buf[14]   = Bit10000000;        //Main selector: gain 6dB    TDA7419_register_buf[15]   = Bit10000000;        //Main selector: gain 6dB    TDA7419_register_buf[16]   = Bit00010111;        //Main selector: gain 6dB    TDA7419_register_buf[17]   = Bit00000000;        //Main selector: gain 6dB    gTDA7419_desc_val.audio_vol    = 22;    gTDA7419_desc_val.audio_main_vol    = 22;    gTDA7419_desc_val.audio_sec_vol     = 22;    gTDA7419_desc_val.audio_main_source = AUDIO_INPUT_SYS;    gTDA7419_desc_val.audio_sec_source  = AUDIO_INPUT_SYS;    gTDA7419_desc_val.audio_work_mode   = AUDIO_MODE_IDLE;    gTDA7419_desc_val.audio_eq_mode     = EQ_MODE_OFF;    TDA7419_volume_calc(AUDIO_ALL_VAL);int i;for(i = 0; i < REGISTER_COUNT; i++){TDA7419_send(i, TDA7419_register_buf + i, 1);}    }/***************************************************************************** Func Name  : TDA7419_volume_calc Funciont   : calculate the volume depend on parameters from various aspects In para    : void Out para   : Return val : void CB func    : Be CB func : Modify History :  1.DateTime    : 2015/04/17    Author      : Lawrence    Modification: New func*****************************************************************************/static void TDA7419_volume_calc( uint8 type ){#if 0    TDA7419_register_buf[6]=(TDA7419_register_buf[6] & 0xE0)+BasTreTable[AudioBas];TDA7419_register_buf[8]=(TDA7419_register_buf[8] & 0xCF)+(AudioBasFre<<4);TDA7419_register_buf[6]=(TDA7419_register_buf[6] & 0x9F)+(AudioBasQ<<5);TDA7419_register_buf[4]=(TDA7419_register_buf[4] & 0xE0)+BasTreTable[AudioTre];TDA7419_register_buf[4]=(TDA7419_register_buf[4] & 0x9F)+(AudioTreFre<<5);TDA7419_register_buf[5]=(TDA7419_register_buf[5] & 0xE0)+BasTreTable[AudioMid];TDA7419_register_buf[8]=(TDA7419_register_buf[8] & 0xF3)+(AudioMidFre<<2);TDA7419_register_buf[5]=(TDA7419_register_buf[5] & 0x9F)+(AudioMidQ<<5);TDA7419_register_buf[1]=(TDA7419_register_buf[1] & 0xF0)+GetRealLoudTable(AudioIXBass);//LoudTable[AudioIXBass];TDA7419_register_buf[1]=(TDA7419_register_buf[1] & 0xCF)+(AudioIXBassFre<<4);TDA7419_register_buf[15] = SubwTable[AudioSubw];TDA7419_register_buf[8]=(TDA7419_register_buf[8] & 0xFC)+AudioSubwFre;#else    //choose source channel    TDA7419_register_buf[0] = (TDA7419_register_buf[0] & 0xF8) + 1 ;    TDA7419_register_buf[1]=(TDA7419_register_buf[1] & 0xF0) + 0;TDA7419_register_buf[1]=(TDA7419_register_buf[1] & 0xCF) + 0;    //TDA7419_register_buf[3]= ;    TDA7419_register_buf[4]=(TDA7419_register_buf[4] & 0xE0) + 0;TDA7419_register_buf[4]=(TDA7419_register_buf[4] & 0x9F) + 0;    TDA7419_register_buf[5]=(TDA7419_register_buf[5] & 0xE0) + 0;    TDA7419_register_buf[5]=(TDA7419_register_buf[5] & 0x9F) + 0;    TDA7419_register_buf[6]=(TDA7419_register_buf[6] & 0xE0) + 0;TDA7419_register_buf[6]=(TDA7419_register_buf[6] & 0x9F) + 0;    TDA7419_register_buf[8]=(TDA7419_register_buf[8] & 0xCF) + 0;TDA7419_register_buf[8]=(TDA7419_register_buf[8] & 0xF3) + 0;    TDA7419_register_buf[8]=(TDA7419_register_buf[8] & 0xFC) + 0;TDA7419_register_buf[15] = SubwTable[10];    TDA7419_register_buf[10] = 0x00;    TDA7419_register_buf[11] = 0x00;    TDA7419_register_buf[12] = 0x00;    TDA7419_register_buf[13] = 0x00;    TDA7419_register_buf[16] &= 0x7F;    TDA7419_register_buf[2] |= 0x01;#endif}/***************************************************************************** Func Name  : TDA7419_send Funciont   : send register values to tda7419 In para    : void Out para   : Return val : void CB func    : Be CB func : Modify History :  1.DateTime    : 2015/04/17    Author      : Lawrence    Modification: New func*****************************************************************************/static void TDA7419_send( uint8 addr, uint8 *buf, int len){//I2C send: addr, send_buf; len, send_bytes;tdesp->i2c_write(tdesp->client, addr, buf, len);}









没有杂音:

/******************************************************************************                  Copyright (C), 2015-2030, ALONG ******************************************************************************  FileName   : audio_7419.c  Version    :  v0.1  Author     : Lawrence  Create Date    : 2015/04/16  Recent Modify  :  Func instruction   : audio_7419 function implementions  Function list  :  Modify History   :  1.DateTime   : 2015/04/16    Author   : Lawrence    Modify what   : Create file******************************************************************************/#include "audio_7419.h"#include "tda7419.h"/*----------------------------------------------* * extern var instruction                       * *----------------------------------------------*//*----------------------------------------------* * extern func prototype instruction            * *----------------------------------------------*//*----------------------------------------------* * func prototype instruction                   * *----------------------------------------------*/static int TDA7419_send( uint8 addr, uint8 *buf, int len);static void TDA7419_volume_calc( uint8 type );/*----------------------------------------------* * General var statement                        * *----------------------------------------------*//*----------------------------------------------* * Const var define                             * *----------------------------------------------*/#define UP 1#define DOWN-1//val to Volume Addr Register[0x03]static const unsigned char VolTable[]={0x7F, // mute// 00x5F, // -79dB0x5E, // -78dB0x5D, // -77dB0x5C, // -76dB0x5B, // -75dB0x5A, // -74dB0x59, // -73dB0x58, // -72dB0x57, // -71dB0x56, // -70dB// 100x55, // -69dB0x54, // -68dB0x53, // -67dB0x52, // -66dB0x51, // -65dB0x50, // -64dB0x4F, // -63dB0x4E, // -62dB0x4D, // -61dB0x4C, // -60dB// 200x4B, // -59dB0x4A, // -58dB0x49, // -57dB0x48, // -56dB0x47, // -55dB0x46, // -54dB0x45, // -53dB0x44, // -52dB0x43, // -51dB0x42, // -50dB// 300x41, // -49dB0x40, // -48dB0x3F, // -47dB0x3E, // -46dB0x3D, // -45dB0x3C, // -44dB0x3B, // -43dB0x3A, // -42dB0x39, // -41dB0x38, // -40dB// 400x37, // -39dB0x36, // -38dB0x35, // -37dB0x34, // -36dB0x33, // -35dB0x32, // -34dB0x31, // -33dB0x30, // -32dB0x2F, // -31dB0x2E, // -30dB// 500x2D, // -29dB0x2C, // -28dB0x2B, // -27dB0x2A, // -26dB0x29, // -25dB0x28, // -24dB0x27, // -23dB0x26, // -22dB0x25, // -21dB0x24, // -20dB// 600x23, // -19dB0x22, // -18dB0x21, // -17dB0x20, // -16dB0x1F, // -15dB0x1E, // -14dB0x1D, // -13dB0x1C, // -12dB0x1B, // -11dB0x1A, // -10dB// 700x19, // -9dB0x18, // -8dB0x17, // -7dB0x16, // -6dB0x15, // -5dB0x14, // -4dB0x13, // -3dB0x12, // -2dB0x11, // -1dB0x00, // +0dB// 800x01, // +1dB0x02, // +2dB0x03, // +3dB0x04, // +4dB0x05, // +5dB0x06, // +6dB0x07, // +7dB0x08, // +8dB0x09, // +9dB0x0A, // +10dB// 900x0B, // +11dB0x0C, // +12dB0x0D, // +13dB0x0E, // +14dB0x0F // +15dB};//index of VolTablestatic const unsigned char VolChangeTable[]={0,6,11,16,20,24,26,28,30,32,34,36,38,40,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,68,69,70,71,72,73,74,75,76,77,78,79,80};static const unsigned char SourceTable[]={0x62,// y01100010;   Radio, input se2, gain = 12 dB0,1,          // y00000001; SEL1, gain = 0dB3,          // y00000011; SEL3, gain = 0dB6           // y00000110; MUTE, gain = 0dB};static const unsigned char LoudTable[]={0x00, // +0dB//0x01, // +1dB//0x02, // +2dB//0x03, // +3dB/*0x04, // +4dB0x05, // +5dB*/0x06, // +6dB//low/*0x07, // +7dB0x08, // +8dB0x09, // +9dB*/0x0A, // +10dB//mid/*0x0B, // +11dB0x0C, // +12dB0x0D, // +13dB0x0E, // +14dB*/0x0F // +15dB//high};static const unsigned char SubwTable[]={0x00, // +0dB0x01, // +1dB0x02, // +2dB0x03, // +3dB0x04, // +4dB0x05, // +5dB0x06, // +6dB0x07, // +7dB0x08, // +8dB0x09, // +9dB//0x0A, // +10dB0x0B, // +11dB//0x0C, // +12dB0x0D, // +13dB//0x0E, // +14dB0x0F, // +15dB0x7F // mute};static const unsigned char BasTreTable[]={//0x0F, // -15dB//0x0E, // -14dB//0x0D, // -13dB0x0C, // -12dB//0x0B, // -11dB0x0A, // -10dB//0x09, // -9dB0x08, // -8dB//0x07, // -7dB0x06, // -6dB//0x05, // -5dB0x04, // -4dB//0x03, // -3dB0x02, // -2dB//0x01, // -1dB0x10, // +0dB//0x11, // +1dB0x12, // +2dB//0x13, // +3dB0x14, // +4dB//0x15, // +5dB0x16, // +6dB//0x17, // +7dB0x18, // +8dB//0x19, // +9dB0x1A, // +10dB//0x1B, // +11dB0x1C//,  +12dB//0x1D, // +13dB//0x1E, // +14dB//0x1F, // +15dB};static const unsigned char BalFadTable[]={0x00, // +0dB0x13, // -3dB0x15, // -5dB0x18, // -8dB0x1A, // -10dB0x1D, // -13dB0x1F, // -15dB0x22, // -18dB0x24, // -20dB0x27, // -23dB0x29, // -25dB0x2C, // -28dB0x7F // mute};static const unsigned char EQTable[]={// Bass, Treble10,10,//Classic10,12, //Pop12,12,//Rock};/*----------------------------------------------* * Module var                                   * *----------------------------------------------*/ //buffer store TDA7419 registers value#define REGISTER_COUNT  (18)uint8 TDA7419_register_buf[REGISTER_COUNT] = {0};//TDA7419 registers description and statestruct TDA7419_desc gTDA7419_desc_val;extern TDES_T *tdesp;/*----------------------------------------------* * Function Define                              * *----------------------------------------------*//***************************************************************************** Func Name  : TDA7419_init Funciont   : init TDA7419 register In para    : void Out para   : Return val : void CB func    : Be CB func : Modify History :  1.DateTime    : 2015/04/16    Author      : Lawrence    Modification: New func*****************************************************************************/void TDA7419_init( void ){    TDA7419_register_buf[0]    = Bit10000000;         //Main selector: gain 6dB //Bit10000011   //bug 1    TDA7419_register_buf[1]    = Bit11100000;         //Main selector: gain 6dB    TDA7419_register_buf[2]    = Bit10000111;         //Main selector: gain 6dB<span style="white-space:pre"></span>//debug already    TDA7419_register_buf[3]    = Bit00000000;         //Main selector: gain 6dB    TDA7419_register_buf[4]    = Bit00000000;         //Main selector: gain 6dB    TDA7419_register_buf[5]    = Bit00000000;         //Main selector: gain 6dB    TDA7419_register_buf[6]    = Bit00000000;         //Main selector: gain 6dB    TDA7419_register_buf[7]    = Bit00110000;         //Main selector: gain 6dB    TDA7419_register_buf[8]    = Bit01000000;         //Main selector: gain 6dB    TDA7419_register_buf[9]    = Bit11111111;         //Main selector: gain 6dB<span style="white-space:pre"></span>//bug2    TDA7419_register_buf[10]   = Bit00000000;        //Main selector: gain 6dB    TDA7419_register_buf[11]   = Bit00000000;        //Main selector: gain 6dB    TDA7419_register_buf[12]   = Bit00000000;        //Main selector: gain 6dB    TDA7419_register_buf[13]   = Bit00000000;        //Main selector: gain 6dB    TDA7419_register_buf[14]   = Bit10000000;        //Main selector: gain 6dB    TDA7419_register_buf[15]   = Bit10000000;        //Main selector: gain 6dB    TDA7419_register_buf[16]   = Bit00010111;        //Main selector: gain 6dB    TDA7419_register_buf[17]   = Bit00000000;        //Main selector: gain 6dB#if 0    gTDA7419_desc_val.audio_vol    = 22;    gTDA7419_desc_val.audio_main_vol    = 22;    gTDA7419_desc_val.audio_sec_vol     = 22;    gTDA7419_desc_val.audio_main_source = AUDIO_INPUT_SYS;    gTDA7419_desc_val.audio_sec_source  = AUDIO_INPUT_SYS;    gTDA7419_desc_val.audio_work_mode   = AUDIO_MODE_IDLE;    gTDA7419_desc_val.audio_eq_mode     = EQ_MODE_OFF;    TDA7419_volume_calc(AUDIO_ALL_VAL);#endifint i;for(i = 0; i < REGISTER_COUNT; i++){TDA7419_send(i, TDA7419_register_buf + i, 1);}    }/***************************************************************************** Func Name  : TDA7419_volume_calc Funciont   : calculate the volume depend on parameters from various aspects In para    : void Out para   : Return val : void CB func    : Be CB func : Modify History :  1.DateTime    : 2015/04/17    Author      : Lawrence    Modification: New func*****************************************************************************/static void TDA7419_volume_calc( uint8 type ){#if 0    TDA7419_register_buf[6]=(TDA7419_register_buf[6] & 0xE0)+BasTreTable[AudioBas];TDA7419_register_buf[8]=(TDA7419_register_buf[8] & 0xCF)+(AudioBasFre<<4);TDA7419_register_buf[6]=(TDA7419_register_buf[6] & 0x9F)+(AudioBasQ<<5);TDA7419_register_buf[4]=(TDA7419_register_buf[4] & 0xE0)+BasTreTable[AudioTre];TDA7419_register_buf[4]=(TDA7419_register_buf[4] & 0x9F)+(AudioTreFre<<5);TDA7419_register_buf[5]=(TDA7419_register_buf[5] & 0xE0)+BasTreTable[AudioMid];TDA7419_register_buf[8]=(TDA7419_register_buf[8] & 0xF3)+(AudioMidFre<<2);TDA7419_register_buf[5]=(TDA7419_register_buf[5] & 0x9F)+(AudioMidQ<<5);TDA7419_register_buf[1]=(TDA7419_register_buf[1] & 0xF0)+GetRealLoudTable(AudioIXBass);//LoudTable[AudioIXBass];TDA7419_register_buf[1]=(TDA7419_register_buf[1] & 0xCF)+(AudioIXBassFre<<4);TDA7419_register_buf[15] = SubwTable[AudioSubw];TDA7419_register_buf[8]=(TDA7419_register_buf[8] & 0xFC)+AudioSubwFre;#else    //choose source channel    TDA7419_register_buf[0] = (TDA7419_register_buf[0] & 0xF8) + 3 ;    TDA7419_register_buf[1]=(TDA7419_register_buf[1] & 0xF0) + 0;TDA7419_register_buf[1]=(TDA7419_register_buf[1] & 0xCF) + 0;    //TDA7419_register_buf[3]= ;    TDA7419_register_buf[4]=(TDA7419_register_buf[4] & 0xE0) + 0;TDA7419_register_buf[4]=(TDA7419_register_buf[4] & 0x9F) + 0;    TDA7419_register_buf[5]=(TDA7419_register_buf[5] & 0xE0) + 0;    TDA7419_register_buf[5]=(TDA7419_register_buf[5] & 0x9F) + 0;    TDA7419_register_buf[6]=(TDA7419_register_buf[6] & 0xE0) + 0;TDA7419_register_buf[6]=(TDA7419_register_buf[6] & 0x9F) + 0;    TDA7419_register_buf[8]=(TDA7419_register_buf[8] & 0xCF) + 0;TDA7419_register_buf[8]=(TDA7419_register_buf[8] & 0xF3) + 0;    TDA7419_register_buf[8]=(TDA7419_register_buf[8] & 0xFC) + 0;TDA7419_register_buf[15] = SubwTable[10];    TDA7419_register_buf[10] = 0x00;    TDA7419_register_buf[11] = 0x00;    TDA7419_register_buf[12] = 0x00;    TDA7419_register_buf[13] = 0x00;    TDA7419_register_buf[16] &= 0x7F;    TDA7419_register_buf[2] |= 0x01;#endif}/***************************************************************************** Func Name  : TDA7419_send Funciont   : send register values to tda7419 In para    : void Out para   : Return val : void CB func    : Be CB func : Modify History :  1.DateTime    : 2015/04/17    Author      : Lawrence    Modification: New func*****************************************************************************/static int TDA7419_send( uint8 addr, uint8 *buf, int len){//I2C send: addr, send_buf; len, send_bytes;TPRINT("TDA7419_send reg_addr = 0x%x; data = %d\n", addr, *buf);return tdesp->i2c_write(tdesp->client, addr, buf, len);}


最终DEBUG结果:

TDA7419的28Pin有In/Out,在混音使能情况下是输入,不会有问题。但是如果混音被禁能了,就变成输出,这时Subwoof的音频直接又回环输入到SEL3_L Pin(线路:TDA7419的28Pin 和 SEL3_L相连),所以产生爆音。



0 0
原创粉丝点击