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.

[参考译文] RTOS/AM5728:使用 McASP 中断的32通道 TDMA

Guru**** 2563620 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/626638/rtos-am5728-32-channel-tdma-using-mcasp-interrupt

器件型号:AM5728
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

我正在尝试使用不带 DMA 的 TiRTOS 开发具有32通道(McASP)的 TDMA、其中时钟和帧同步是外部的。

我已经相应地配置了 McASP,并且能够在 while (1)中看到池模式上的数据转换,然后调用 BIOS_start()。

一旦我配置中断并调用 BIOS_start(),McASP 就会变得疯狂,并且在请求时不会获得中断。 我已经检查了它是否到达中断。

我已经为帧同步、数据就绪和最后一个时隙配置了中断。

我想开发一个使用中断将32通道 TDMA 上的数据交换到其他节点的系统。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请分享您使用的是哪个 RTOS 版本? 此外、串行控制台或 CCS 控制台的任何调试日志。

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

    您是否考虑使用 Processor SDK RTOS 中的 MCASP 驱动程序而不是开发自己的软件驱动程序。
    processors.wiki.ti.com/.../Processor_SDK_RTOS_MCASP

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

    感谢您的回复、我使用的是 CCS-7.2.0.00013和 ti-processor-sdk-rtos-am57xx-EVM-03.03.00.04。

    我之前没有使用 DMA、但现在看到了使用 DMA 的示例代码后。 具有1个时隙和 RX 的示例代码在 TX 上环回。 但我需要32个插槽(每个16位)、并且需要存储与 MCASP 数据之间的数据、以便稍后可以创建一个 UDP 帧。

    我已尝试配置示例代码以供使用、我正在使用 McASP7外设并将其配置为16位32通道 TDM 模式。 目前、我已配置为主器件并生成 CLK 和 SYNC 帧、并尝试仅发送虚拟数据。 因此、为了符合我的要求、在"Audio_echo_Task"中、我禁用了 RX 通道、并在调用"semaphore_pend (semT、BIOS_wait_forever)"后一直等待。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。 我尝试根据我的要求配置音频示例代码、即32通道(每个16位)、仅使用虚拟数据的 TX、但我遇到以下错误:
    [C66xx_DSP1] ti.sysbios.KNL.semaphore:第289行:断言失败:a_badContext:调用上下文错误。 必须从任务调用。
    xdc.runtime.Error.raise:终止执行

    Semaphore_pend ()在主音频任务下调用、而 Semaphore_post ()在 McASP 事务结束时在 mcaspAppCallback ()下调用。