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.

[参考译文] AM3358:McASP I2S 主控模式串行数据输出

Guru**** 2574125 points
Other Parts Discussed in Thread: AM3358

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/628829/am3358-mcasp-i2s-master-mode-serial-data-out

器件型号:AM3358

您好!

我正在使用音频串行端口、并且我的 AHCLKX、ACLKX 和 AFSX 都在 ASP0 (通道0)上工作。 我似乎无法弄清楚我的
数据引脚 AXR0不工作。 我已正确设置 Pdir 和 PFUNC。 在低3位中、Pdir 设置为0x1、对于、PFUNC 设置为0x0
整个寄存器。 我认为可能有一个总线宽度字段用于将数据总线宽度设置为1 (而不是4位)、但我不能
查找任何内容。 可以帮帮你吗?

谢谢。

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

    您使用的是什么软件? 您是否已检查 AXR0的引脚多路复用器配置?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是指嵌入式应用还是 PC 端应用? 除了我们使用的软件之外、我没有使用任何特定的软件
    在修改的 BeagleBone BSP 上使用 QNX RTOS。 进行了修改、因为它是我们的板、而不是 BeagleBone。
    是的,我已经将 McASP0_AXR0 (十六进制地址 (0x44E10000+0x0998))的 pinmux 寄存器设置为0。

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

    我不熟悉 QNX RTOS、因此我将尝试仅为 AM335x McASP 模块寄存器设置提供帮助。 如果您可以切换到 AM335x TI PSDK v4、我们可以提供更好的帮助。

    请确保在期望数据在 AXR0引脚上输出时设置了传输缓冲器 XBUF 已满和数据就绪标志。 确保按照 AM335x TRM 22.3.12设置和初始化部分中的说明进行操作。

    您还可以提供完整的 McASP0寄存器转储以供查看。

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你。 我将查看这些寄存器配置。 另外、请注意、我使用的软件将 EDMA3与 McASP 结合使用。 如果使用 EDMA3、需要重新配置什么? 我会将您的笔记与现有源代码进行比较。

    SRCTL0至5寄存器的问题。 TRM 表示每个 McASP 具有多达16个串行器寄存器、但寄存器部分只有6个。 这是因为特定的 AM3358吗? 此外、SRCTL5和 SRCTL6对应于哪些引脚(AXRn)、或者这些寄存器是否已被弃用? 是否已弃用 XBUF4、XBUF5、RBUF4、RBUF5?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引述 USER="Daniel Brown">另外、请注意、我使用的软件将 EDMA3与 McASP 结合使用。 如果使用 EDMA3、需要重新配置哪些内容?[/QUERT]

    您需要在 McASP 寄存器中启用 DMA 支持并对 EDMA 寄存器进行编程。 PSDK 中的 McASP Linux 驱动程序附带默认启用的 DMA 支持、您可以将源代码和寄存器设置用作参考。

    我建议您从轮询模式开始(无中断、无 DMA)、因此您可以更轻松地隔离问题。 一旦您使用轮询模式、您就可以切换到 DMA 模式。

    [引用用户="Daniel Brown">有关 SRCTL0至5寄存器的问题。 TRM 表示每个 McASP 具有多达16个串行器寄存器、但寄存器部分只有6个。 这是因为 特定的 AM3358吗? 此外、SRCTL5和 SRCTL6对应于哪些引脚(AXRn)、或者这些寄存器是否已被弃用? 是否已弃用 XBUF4、XBUF5、RBUF4、RBUF5?

    TRM 是通用的、您应该查看特定的数据表。 AM3358 "每个 McASP 端口具有多达四个串行数据引脚"- axr0、axr1、axr2、axr3。 McASP 模块有4个串行器、因此您可以使用 SRCTL0至3和 RBUF/XBUF_0至 RBUF/XBUF_3寄存器、其余的不可用。 对于 axr0、应使用 SRCTL0和 RBUF/XBUF0。