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/MSP430F5529:如何将 DMA (0-2)通道分配给 USCI 外设

Guru**** 2533780 points
Other Parts Discussed in Thread: MSP430F5529, MSP430F5259

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/697271/rtos-msp430f5529-how-to-allocate-dma-0-2-channels-to-usci-peripheral

器件型号:MSP430F5529
主题中讨论的其他器件: MSP430F5259

工具/软件:TI-RTOS

大家好

    我了解到 MSP430F5529目前只有三个 DMA (0-2)通道。  但在 TI-RTOS 下、SPI 模块库默认使用 DMA。

    现在 、我配置了两个 SPI、一个用于主器件、另一个用于从器件。  当 spiA1和 spiB1都使用 dma_channel_1 (RX)和  dma_channel_1 (TX)。  当我在 两个任务中使用 SPI_TRANSF()函数发送和接收时,我发现它们相互干扰,导致数据混乱。  这个问题。 这是链接 ()   

    现在 、我将两个 SPI 配置为使用不同的 DMA 通道、但我只有三个 DMA 通道、两个 SPI 共享至少一个 DMA 通道、这不考虑使用 ADC 和其他外设来使用 DMA。  我可以采取什么措施来避免这个问题? 使用信标? 还是 SPI 不使用 DMA?  谁可以提供一些建议或示例?  因为接下来我将在 MSP430F5259上使用4个 SPI 和10个 ADC。

此致

XC.mo

请参阅



我的 SPI 配置示例


 

 

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

    您应始终锁定共享资源。
    信标很适合执行它。


    我不知道您的应用。
    在您的情况下、MSP430F5529可能无法达到足够的范围。


    SPI 主设备是共享 DMA 通道的理想选择、因为您可以控制何时发送和等待数据。
    如果 DMA 数量太小、则将 DMA 分配给"最快"的 I/O 以最大程度地减轻 MCU 负载。