
您好!
我们将使用 DAC 通过 EDMA 和 RAM 中的样本表合成一个10kHz 正弦波来实现软件旋转变压器(我们已在 TI SDK 中参考了 DAC_SINE_DMA 示例)。 我们还需要使用 EDMA 通过 QSPI 与外部闪存进行通信。 这会与正弦波发生器进行交互、从而在输出端产生如图所示的干扰。
是否有办法在将 EDMA 用于其他目的的同时连续生成正弦波?
提前感谢。
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.

您好!
我们将使用 DAC 通过 EDMA 和 RAM 中的样本表合成一个10kHz 正弦波来实现软件旋转变压器(我们已在 TI SDK 中参考了 DAC_SINE_DMA 示例)。 我们还需要使用 EDMA 通过 QSPI 与外部闪存进行通信。 这会与正弦波发生器进行交互、从而在输出端产生如图所示的干扰。
是否有办法在将 EDMA 用于其他目的的同时连续生成正弦波?
提前感谢。
尊敬的 Orazio Taglialatela Scafati:
您是否在 DAC 和 QSPI 接口之间共享 EDMA 通道?
此致、
Aakash
尊敬的 Aakash Kedia:
我们将使用两个不同的通道:0表示 QSPI、1表示 DAC。 它们在启动时使用 EDMA_allocDmaChannel()函数进行配置。
此致。
奥拉齐奥
您好、 Fleenor、
感谢您的答复。
您建议切换到手动方法、以便在触发 QSPI 事务时立即定期加载 DAC。 为了实现这一点、我想我们需要知道要访问哪个寄存器来确定上次通过 EDMA 传输的样本。 我们找不到关于这方面的任何适当资料。
另外、 我们不清楚的是 EDMA 架构包含2个 TPTC、根据数据表、它们可以在 L3_MAIN 互连上生成并发流量。 顺便说一下, 尽管 cslr_tptc.h 文件包含在 EDMA.h 中,但在 SDK 中的任何位置都不使用 EDMA_TC_*寄存器。
非常感谢任何支持/澄清。
谢谢你。
此致。
Orazio.
大家好、 Aakash Kedia
QSPI 使用通道0和 DAC 通道1。
我们已经尝试过反过来设置通道:通过使用 DAC 0和 QSPI 1、我们可以实现连续正弦波、但根本没有 QSPI 通信。
此致
尊敬的 Orazio Taglialatela Scafati:
抱歉、我犯了一个错误。 我建议您使用两个不同的 TPTC、因为 EDMA 可以并行运行这些 TPTC。 只有触发信号可能被优先化、因为 TPCC 正好是一个触发信号。
在提到的函数 EDMA_configureChannelRegion 中:

最后一个参数、即队列编号、您可以选择对 ADC 使用队列0、对 QSPI 使用队列1。 这将在没有任何 延迟的情况下使用不同的 TPTC。 我希望这对您有所帮助。
此致、
Aakash
大家好、 Aakash Kedia
感谢您的支持。
这看起来实际上已经解决了我的问题。
我被 EDMA_TEST_EVT_Queue_no 符号欺骗,以为队列没有被使用,但后来我意识到_no 后缀实际上意味着"number"(我认为)。
此致。
奥拉齐奥