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.

[参考译文] CC2640:I2S

Guru**** 2536510 points
Other Parts Discussed in Thread: CC2640, TLV320AIC3120

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/565074/cc2640-i2s

器件型号:CC2640
主题中讨论的其他器件: TLV320AIC3120

我找不到主器件对 I2S 读取模式的软件支持(i、e CC2640)。 请告诉我如何使用 I2S 协议从音频编解码器(i、e TLV320aic3120)读取数据。 我使用 BLE 栈2.2进行编程参考。

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

    您好!

    我们正在努力为您提供一个准确的示例。 我们的 GitHub 将为您准备就绪,需要几周时间:

    现在、您可以尝试在 TI-RTOS (PDMCC26XX_util.c)中使用我们的 PDM 驱动程序、然后将参数修改为您需要的任何参数。

    /*初始化 I2S 对象*/
    object->requestMode = params->requestMode;
    object->ui32requestTimeout = params->ui32requestTimeout;
    object->blocksize = params->blocksize;
    object->pvContBuffer = params->pvContBuffer;
    object->ui32conBufTotalSize = params->ui32conBufTotalSize;
    object->pvContMgtBuffer = params->pvContactBuffer;
    object->ui32conMgtBufTotalSize = params->ui32conMgtBufTotalSize;
    object->currentStream = params->currentStream;
    object->currentStream->status = PDMCC26XX_I2S_STREAME_IDLE;
    
    /*以下是适用于 PDM 的常量*/
    object->i32SampleRate =-1; /*如果为负、则使用用户配置的时钟分频*/
    object->audioClkCfg.wclkDiv = 16; /* I2S 字时钟分频器覆盖*/
    object->audioClkCfg.sampleOnPositiveEdge = PDMCC26XX_I2S_SampleEdge_positive;// I2S 样本边缘*/
    object->audioClkCfg.wclkPhase = PDMCC26XX_I2S_WordClockPhase_Dual; /* I2S 字时钟相位*/
    object->audioClkCfg.wclkInverted = PDMCC26XX_I2S_ClockSource_Normal; /* I2S 反转字时钟*/
    object->audioClkCfg.wclkSource = PDMCC26XX_I2S_WordClockSource_Int; /* I2S 字时钟源*/
    object->audioClkCfg.bclkDiv = 47; /* I2S 位时钟分频器覆盖*/
    object->audioClkCfg.reserved = 0;
    object->audioClkCfg.bclkSource = PDMCC26XX_I2S_BitClockSource_Int; /* I2S 位时钟源*/
    object->audioClkCfg.mclkDiv = 6; /* I2S 主时钟分频器覆盖*/
    
    object->audioPinCfg.bitfields.ad1用法= PDMCC26XX_I2S_ADUsageDisabled; /* I2S AD1用法(0:禁用、1:输入、2:输出)*/
    object->audioPinCfg.bitfields.enableMclkPin = PDMCC26XX_I2S_general_disabled;//引脚上的 I2S 使能主时钟输出*/
    object->audioPinCfg.bitfields.reserved = 0;
    object->audioPinCfg.bitfields.ad1NumOfChannels = 0; /* I2S AD1通道数(1-8)。 !必须匹配通道掩码*/
    object->audioPinCfg.bitfields.ad1ChannelMask = PDMCC26XX_I2S_disabled_mode;// I2S AD1通道掩码*/
    object->audioPinCfg.bitfields.ad0Usage = PDMCC26XX_I2S_ADUsageInput; /* I2S AD0用法(0:禁用、1:输入、2:输出)*/
    object->audioPinCfg.bitfields.enableWclkPin = PDMCC26XX_I2S_general_disabled;//引脚上的 I2S 使能字时钟输出*/
    object->audioPinCfg.bitfields.enableBclkPin = PDMCC26XX_I2S_general_enabled;//引脚上的 I2S 使能位时钟输出*
    object->audioPinCfg.bitfields.ad0NumOfChannels = 2; /* I2S AD0通道数(1-8)。 !必须与通道掩码匹配。 sa PDM_NUM_OF_CHANNELS *
    object->audioPinCfg.bitfields.ad0ChannelMask = PDMCC26XX_I2S_立体声_mode;// I2S AD0通道掩码*/
    
    object->audioFmtCfg.wordcLength = PDMCC26XX_I2S_WordLength16; /*每个字的位数(8-24)。 精确于单相、最大为双相*/
    object->audioFmtCfg.sampleEdge = PDMCC26XX_I2S_PositiveEdge; /*数据和字时钟是在 BCLK 的反向边沿上进行采样和时钟输出*/
    object->audioFmtCfg.dualPhase = PDMCC26XX_I2S_SinglePhase; /*选择双相或单相格式(0:单相、1:双相)*/
    object->audioFmtCfg.memLen = PDMCC26XX_I2S_MemLen16位; /*存储到存储器或从存储器加载的每个字的大小(0:16、1:24)*/
    object->audioFmtCfg.dataDelay = PDMCC26XX_I2S_FormatLJF; /* WCLK 边沿和相位中第一个字 MSB 之间的 BCLK 周期数*/ 

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

    尊敬的 Christin Lee:

    我也在做同样的工作、但我 DIN 知道如何配置和使用 Github 中提供的代码、您能在这方面提供帮助吗?  

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

    您好,Christin,

    能否使用 PDM 驱动程序从 CC2640的主器件 i、e 生成时钟? 我不理解。 我无法生成主时钟和字时钟。 请帮帮我。 我可以说我不熟悉 I2S。 请帮助我为初学者提供帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    只要您初始化驱动程序、驱动程序就会处理时钟设置并将器件配置为生成 clk。
    我不确定您的意思是什么、无法生成主时钟等
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢克里斯特利的回应,抱歉我的理解出错了。 从编解码器获取 BLCK、DOUT 输出。 我在 CRO .I 中观察到、计划从 CC2640捕获数据、让我看看这些驱动程序如何帮助我。 如果需要帮助,我将详细介绍,并将对您执行 ping 操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Christin:

        有关上述主题的任何更新,我们是否可以获取含氧量的 I2S 驱动器?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    GitHub 示例应在一两周内可用。 我们正在等待该版本的批准。
    然后、您只需查看示例即可了解如何使用 I2S。
    我们目前没有 I2S doxygen。