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.

[参考译文] MSP430F5529:16位 SPI 组帧+ DMA 的任何技巧

Guru**** 2589245 points
Other Parts Discussed in Thread: MSP430F5529

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/623469/msp430f5529-any-tricks-for-16bit-spi-framing-dma

器件型号:MSP430F5529

您好!

我们需要驱动来自 MSP430F5529的16位 SPI DAC。 DAC 的关键在于、nCS 线路需要每2个字节进行一次去降级、以便 DAC 更新。

这个设计的问题是、我们需要使用 DMA SPI 传输来定时发送到 DAC 的数据、并且由于 MSP430F5529只支持8位传输、我们似乎遇到了困难。

我们已经尝试使用软件方法来支持 DAC 组帧要求、但是 DAC 输出的时序要求使得这一操作很难成功。

是否有任何人有一个解决方案或新颖的黑客攻击在这种情况下可能起作用?  

谢谢。

太棒了!

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

    我认为您不能使用4线 SPI 来控制此应用中的 CS 引脚、而必须使用3线模式并通过 GPIO 控制 CS。 您可以在触发一个 DMA 通道以传输两个字节之前手动设置 CS、然后在 DMA ISR 中重置 CS。 如果涉及的延迟过大、则可以使用第二个 DMA 通道、该通道从第一个 DMA 通道的完成触发、通过 PxOUT 控制自动复位 CS、 或者、您可以反向执行此操作(单个 DMA 传输可设置 CS 引脚、然后触发第二个 DMA 进行16位 SPI 传输、之后 DMA ISR 将 CS 复位)。 这三个通道的组合也可以考虑(总共3个 DMA 通道)、但我从未尝试过、因此讨论的所有内容都是理论的。

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

    非常感谢您的建议。

    我刚刚使用 DMA ISR 在两个字节后触发、并立即排队等待下一个传输。 这很好。

    此致、
    太棒了!