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.

[参考译文] MSP430FR5969-SP:运行 SPI 总线-查看8位写入之间的较大延迟

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1506413/msp430fr5969-sp-running-spi-bus---seeing-big-delay-between-8-bit-writes

器件型号:MSP430FR5969-SP
主题中讨论的其他器件:MSP430FR5969

工具/软件:

您好、

我在电路板上运行 MSP430FR5969器件。 我尝试以在示波器上观察到的速度运行 SPI 事务。

首先,这里是我的代码片段:

在这种情况下、我正在使用 P1OUT 位3作为我的芯片选择、并尝试尽快发送3) 8位字。

这是我在示波器上观察到的情况。

如您所见、8位写入之间存在较大的延迟(6us)。

根据上面的代码、我想知道这是否有意义、如果可能、我可以做些什么来加快速度?

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

    我无法分辨示波器显示的内容:时钟或数据。

    此外、MCLK 和 SPI 时钟之间的关系非常重要。 通常、MCLK 远大于 SPI 时钟、因此 CPU 可以轻松跟上时间。 因此时钟配置很重要、但您没有展示。

    哦、如果确实如此、清除 CS 可能会失败、因为它不会等待数据按时钟输出。

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

    示波器显示时钟。

    我刚刚进行了检查并注意到、当 SPI 时钟为2MHz 时、MCLK = 1MHz -这可能是问题的一部分。 THX

    感谢 CS、我想我很幸运、因为延迟...

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

    我想不出有什么好的理由让 DIVM 是8。

    也就是说、想想硬件正在做什么。 它开始空闲、然后将数据写入 TXBUF。 这将快速传输到输出移位寄存器中、并再次设置 TXIFG。 这意味着您可以从对 TXBUF 进行两次盲写入开始。 等待 TXIFG 执行第三个。 例如(大致):

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    TXBUF = data;
    TXBUF = data;
    while(!(UCB0IFG & TXIFG))
    ;
    TXBUF = data;
    while(UCB0STAT & UCBUSY)
    ;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX