This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2564MODA:与我的手机共享的音频文件中存在金属问题以及配对问题

Guru**** 2564565 points
Other Parts Discussed in Thread: TAS2505, TLV320ADC3101, CC2564MODA, CC2564

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/583232/cc2564moda-metallic-troubles-in-the-audio-files-shared-with-my-phone-and-problems-with-pairing

部件号:CC2564MODA
主题中讨论的其他部件:TLV320ADC3101,TAS2505 CC2564

您好,  

围绕CC2564MODACMOG,TLV320ADC3101和MSP430F5224IRGZ部件进行的设计存在2个问题。  

我的第一个问题是有时我的音频信号会混合金属噪音。 我无法解释其来源。 不幸的是,我无法发布我的信号,因为我的客户不允许我这样做。  

信号正常,有些传输正常。 我不知道要往哪个方向检查。  

我的另一个问题是配对。 使用智能手机时,配对过程不稳定。 在第一个配对步骤中,没有问题,产品直接与电话配对。 不幸的是,当我尝试重新配对产品时,我总是收到错误消息。 我必须重新启动整个产品,并将其忘在电话参数中才能进行配对。  

我注意到上一款Android 7的模块有不稳定性。 双重数据通信(音频+数据)在以前的(Android 6)版本上工作,但现在,在Android 7上,我只是音频流,而不再是数据传输。 您是否对此点有任何经验反馈?  

感谢您的帮助,我的客户很匆忙,在这一步中,我显然被这些不同的点所束缚。 我会随时为您提供任何补充信息,但我不能在保密协议论坛上直接分享我的原理图,布局和音频文件。  

谨致问候,  

Nicolas  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Nicolas,

    这可能是由于I2S管路配置不当造成的。

    您能否分享您在CC2564MODA和TLV320ADC3101侧使用的I2S/PCM参数?

    此致,
    Vihang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Vihang

    关于这些参数,它们的配置如下:


    对于TLV320ADC3101:



    静态无效配置CodecTLV (无效)

    /* TLV320ADC3101接口设置开始*/
    /* AUD_nReset,I2C */
    // TLV320ADC3101 AUD_n重置- WFP 1.7
    P1DIR |= BIT7; // WFP 1.7 =输出
    P1OUT &=~BIT7; // WFP 1.7 = Low (TLV320ADC3101关闭)
    // TLV320ADC3101 I2C IOS - MSP_SDA WFP 3.0 ,MSP_SCL WFP 3.1
    P3SEL ||(BIT0 + BIT1); // WFP 3.0 ,1 = USI_B0模式,SDA和SCL
    // TLV320ADC3101 I2C模块- USI_B0
    UCB0CTL1 |= UCSWRST; //将模块保持在重置状态
    UCB0CTL0 = UCMST + UCMODE_3 + UCSNC;// I2C主中继器,7位地址,同步模式
    UCB0CTL1 = UCSSEL_2 + UCSSWRST; // SMCLK源,保持SW重置
    UCB0BR0 = 19; // fSCL = SMCLK/20 = 400kHz
    UCB0BR1 = 0; // fSCL = 8MHz/20 = 400kHz
    UCB0I2CSA = 0x18; //从属地址为018 -> 1.1万
    UCB0CTL1 &=~UCSWRST; //启用模块
    UCB0IE |= UCTXIE; //启用USI_B0 TX中断
    UCB0IE |= UCRXIE; //启用USI_B0 RX中断
    /* TLV320ADC3101接口设置结束 */

    //打开TLV320ADC3101设备
    __DELAY周期(80万); //旋转TLV320ADC3101前等待100毫秒
    P1OUT || BIT7; // WFP 1.7 = High (TAS2505 ON)
    }






    对于蓝牙,这是我的主线(HFP通信):

    静态空MainThread (空)

    内部 结果;
    BTPS_初始化_t BTPS_初始化;
    HCI_DriverInformation_t HCI_DriverInformation;
    HCI_HCIL配置_t HBILLConfig;
    HCI_Driver_Reconfigure_Data_t DriverReconfigureData;

    /*表示当前未启用睡眠。 */
    SleepEnabled =假;

    /*配置UART参数。 */
    HCI_DRIVER_SET_COMM_information (&HCI_DriverInformation,111.52万,cpHCILL_RTS_CTS);
    HCI_DriverInformation.DriverInformation.COMMDriverInformation.InitializationDelay = 100;

    /*设置应用程序回调。 */
    BTPS_Initialization.GetTickCountCallback = GetTickCallback;
    BTPS_Initialization.MessageOutputCallback = DisplayCallback;

    /*初始化应用程序。 */
    IF ((Result = InitializeApplication(&HCI_DriverInformation,&BTPS_Initialization))> 0)

    /*保存蓝牙堆栈ID。 */
    BluetoothStackID =(无符号int)结果;

    /*如果使用HCLL模式,请注册睡眠模式回调。 */
    IF ((HCI_DriverInformation.DriverInformation.COMMDriverInformation.Protocol == cpHCILL)||(HCI_DriverInformation.DriverInformation.COMMDriverInformation.Protocol == cpHCILL_RTS_CTS))

    HBILLConfig.SleepCallbackFunction = HCI_SLEE_Ballback;
    HBILLConfig.SleepCallbackParameter = 0;
    DriverReconfigureData.ReconfigureCommand = HCI_COMM_DRIVER_RECONFIG_DATA_COMMAND_CHANGE_HCILL_PARAMETERS;
    DriverReconfigureData.ReconfigureData =(void *)&HCLConfig;

    /*注册睡眠模式回调。 请注意,如果是这样 */
    /*函数返回大于0的值,则表示休眠为当前值 */
    /*已启用。 */
    结果= HCI_RECONFIG_Driver (BluetoothStackID,FALSE,&DriverReconfigureData);
    如果(结果> 0)

    /*表示已启用睡眠模式。 */
    SleepEnabled =真;
    }
    }

    HAL_SetLedState(BT_WAY_T);

    /*添加空闲功能(确定是否可以输入LPM3)*/
    /*到计划程序。 */
    IF (BTPS_AddFunctionToScheduler (IdleFunction,NULL,0))

    BTPS_AddFunctionToScheduler(StateFunction, NULL, 100);
    /*永远循环并执行调度程序。 */
    同时(1)

    BTPS_ExecuteScheduler();

    }
    }
    }
    }


    你还需要什么吗? (如果未发布,我可以根据需要将我的whle项目发送给您)

    谨致问候,

    N.Vandeputte
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Nicolas,

    以上代码不包括对HCI_VS_Codec_Config命令的调用,该命令配置CC2564的I2S接口。

    此外,上面的ConfigureCodecTLV()函数只是配置MSP430的I2C接口以控制TLV320ADC3101。 TLV320ADC3101使用什么I2S参数?

    我在e2e门户网站上向您发送了连接请求。 您可以从此处私下共享您的项目。

    此外,您能否执行PCM环回测试以检查噪音是否仍然存在?


    此致,
    Vihang

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Vihang

    我想将我的整个项目发送给您,但没有找到"私下共享我的项目"的方法。 我看不到您在E2E门户上的请求。 请告诉我如何准确地操作?

    谢谢!

    谨致问候,

    Nicolas
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Nicolas,

    查看源代码后,您似乎已对TLV320ADC3101一侧的I2S接口进行了初始化设置,但没有调用VS_PCM_Codec_Config()来配置CC2564MODA的I2S/PCM接口。 您需要在使用时使用正确的参数调用此API

    1. Openstack()和HAL_ConfigureCodec()调用之间的初始化。
    2.每次在WBS和NBS之间切换时。 您只需在回调中调用VS_EnableWBS()和VS_DisableWBS(),即可调用VS_PCM_Codec_Config()。

    这很可能是您听到金属噪音的原因。 请告诉我情况如何。

    此致,
    Vihang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的Vihang:  

    感谢您的提议,

    我将测试并查看现在是否改进了该行为,就像仅在"某些时候"发生的情况一样。  

    谨致问候,  

    N.Vandeputte