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.

[参考译文] CC2640R2F:I2S 集成-从 BLE V2移植到 BLE V3

Guru**** 2595805 points
Other Parts Discussed in Thread: CC2640R2F, CC2640

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/606625/cc2640r2f-i2s-integration---porting-from-ble-v2-to-ble-v3

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

我正在开发 CC2640F128、并通过从 ble-example-2.2中获得灵感来实现扬声器驱动器。 在该示例中、我使用 I2SCC26XX.c 和 I2SCC26XX.h 驱动程序来使用 I2S。 现在、我将 IC 切换到 CC2640R2F、因此我也将我的 BLE 堆栈更改为 V3。 在 GitHub ( )中  ,simple_central audio_receiver 示例在 ble_example-3.0中不存在,而在 ble_example-2.2中存在。 我想知道我是否可以使用相同的示例和相同的驱动程序文件通过新的 BLE 堆栈来驱动扬声器? 我可以像使用 ble_example-3.0时一样使用 I2SCC26XX 文件吗?

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

    您可以使用相同的 I2SCC26XX 文件、但您必须更新板级配置文件并遵循移植指南、以确保一切正常。 我们正在针对 ble3开发 simple_central audio_receiver 和 simple_peripheral_audio_transmitter、如果您不想自己进行移植、我们将很快发布。

    此致、

    Klas
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复 Klas。 您是否有一个投影(或猜测)、该示例将在何时发布?

    在等待您的发布时、我正在自行执行移植。 在添加 I2SCC26XX 后、我将收到两个"g_ControlTable"和"i2sPostNote"的多个声明错误、这两个错误都存在于 I2SCC26XX.c 和"simple_peripheral_cc2640r2lp_app"的 PDMCC26XX_util.c 中。 我应该如何克服该误差?

    我还想提一下、我需要在不久的将来使用 I2S 通道来驱动麦克风和扬声器。 麦克风需要使用 PDM 驱动程序进行驱动、但我需要在之前的实施方案(采用 CC2640F128)中为扬声器使用 I2SCC26XX。 我没有将麦克风实现与前一版本的扬声器合并。 现在、当我添加 I2SCC26XX 源代码和标头时、我遇到了上述错误。 是否有任何方法可以同时使用麦克风和扬声器的 I2S 驱动程序? 我看到我与原来的问题有点偏离、但我认为这也与移植有关、因为 ble3目前正在开发中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kivanc、您好!

    我无法提供任何相关信息、但可能在2018年之前、请关注 GitHub。

    您在哪个文件中包含 PDMCC26XX_util.h?

    此外、不要使用与我在上一篇文章中所述相同的 I2SCC26XX 驱动程序、而是尝试包含 ti/blestack/drivers/I2S/中的 I2SCC26XX.h。

    此致、

    Klas

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

    感谢您的回复。 我将检查 GitHub。

    如前所述、我们将在 CC2640R2F 上同时使用麦克风和扬声器。 麦克风需要 PDM 驱动程序、因此使用了 PDMCC26XX。 在 PDMCC26XX.c 中、PDMCC26XX_util.h 包含在驱动程序中。 除驱动程序外、PCMCC26XX_util.h 不包含在其他任何位置。

    我在您提到的路径(ti/blestack/drivers/I2S)中找不到 I2SCC26XX.h。 我检查了 GitHub 和本地安装目录。 在/ti/blestack/drivers 上没有名为 I2S 的文件夹。 我可能遗漏了一些东西、因此您能否说明在哪里可以找到 I2SCC26XX.c 和 I2SCC26XX.h (或链接)?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kivanc、您好!

    很抱歉让人感到困惑、我刚才意识到我们针对移植项目的解决方案是从项目中删除 PDMCC26XX_util 文件、并将该驱动程序中所需的部件移入 I2SCC26XX 文件中。 解决方法、即获取您所讨论的这些错误。  

    我还更新了上面有关 I2S 驱动程序的帖子、即您可以使用与现有项目中相同的驱动程序。

    此致、

    Klas

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

    您好 Klas、

    在等待您的回复时、我已经使用了您提到的源文件。 为了解决冲突、我排除了我们使用 PDM 的麦克风应用程序、因此避免了 PDM 链接。 我成功使用扬声器应用程序编译了 I2SCC26XX、但遇到了问题。 我调试该问题,然后将我引导至 I2SCC26XX_initHw()函数,该函数在 I2SCC26XX_startStream()中调用。 问题是 I2SCC26XX_initHw()函数不会返回、并导致 Hwi 触发停止。 我无法诊断错误原因、但 I2SCC26XX 源文件可用于 CC2640F128 IC。 请帮我解决此错误。 如何诊断一个 Hwi、或者触发该 Hwi 的原因?

    此致、

    Kivanc

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

    我关注了一个调试 Wiki、以前没有注意到。 我在"cc2640_R2_csdk.cfg 文件中修改了一些变量、我认为我成功地监控了 Hwi 原因。 当我运行程序并在一段时间后停止它时、我在 Error.c 文件中的无限循环中找到它。 当我使用 RTOS 对象视图诊断错误时、在 BIOS 选项卡中、我得到以下错误:

    硬故障:强制:BUSFAULT:PRECISERR.Data Access 错误。 地址= 0x40021070

    我相信该寄存器是从"I2SIntDisable (hwAttrs->baseAddr、I2S_INT_ALL);"调用的、该寄存器是从 I2SCC26XX_startStream()-> I2SCC26XX_initHw()-> I2SIntDisable()调用的。 此错误的原因可能是什么?

    第二,我想提及的是,我的一位同事成功地与 PDMLCC26XX (没有 I2SCC26XX)合作,后者也在内部使用 I2S 源。 我想强调的是、I2S 可通过 PDM 驱动程序进行配置组合。 因此、我认为 I2SCC26XX 驱动程序存在配置不匹配。

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

    我很高兴听到您解决了 Hwi 错误。

    您能否记录 UART 输出并查看打印的(可能)错误消息?

    此外、您是否将高速缓存用作 RAM? 如果不是、我建议您按照此应用手册进行操作: www.ti.com/.../swra537.pdf

    此致、

    Klas