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.

[参考译文] TMS320F28379D:如何缩短 CS 脉冲与 SPI 通信中 CLK 开始之间的时间

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/983395/tms320f28379d-how-to-reduce-the-time-beetween-the-cs-pulse-and-the-beginning-of-the-clk-on-spi-communication

器件型号:TMS320F28379D
主题中讨论的其他器件:ADS8684ADS8684A

大家好、

我正在使用 F28379D 进行一个项目、我有一个具有我需要的所有外设(PWM、ADC...)的项目 我目前正在设计使用外部 ADC (ADS8684)的 SPI 通信。

我设计了我所需的所有功能、我的 SPI 看起来不错(我还没有 ADS8684A、所以我只使用示波器查看 SPI 总线的信号)。

为了优化我的代码、我想查看程序中时间计算的宽松位置。 我做了一些测试、事实是我的 SPI 花费了很多时间...

这是我的问题:

我不明白为什么我的指令 GPIO_WRITE (32、0)和 SPI_writeData 之间的时间超过500ns ...

下面是我的振荡器的捕捉(D0是 SPIA 的 CLK 信号;D1是 GPIO 32;D3是 SPIA 的 CS 信号)

以下是我的说明:

下面是 SPIA 的配置:

我再次精确地确定、我的 SPI 暂时未连接任何设备、我认为这不是问题、但我精确地说...

提前感谢您的回答!

纪尧姆

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

    纪尧姆

    您可以使用 CCS 中的反汇编窗口来透视用于 GPIO 和 SPI 写入函数的汇编指令。 您可以从此处确定要执行的函数所需的预期 CPU 周期数。 您可以编写自己的更高效的函数。  

    但是、与 GPIO 引脚相比、您不能直接使用 SPI 的 CS 信号吗? 我快速浏览了 ADS8684的 SPI 时序图、它看起来是可行的。 您是否有多个 ADC 连接到 SPI 总线?

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

    您好、Gus、

    首先、感谢您的回答、我从未使用反汇编窗口、因此我将在周一尝试对此进行调查。

    我使用的"SPI_writeDataBlockingFIFI8bits "函数似乎已经管理了 CS... 我添加的 GPIO 用于测量函数的时间。

    我只有一个 ADC。

    纪尧姆

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

    好的、我误解了您的问题。 CS 引脚变为低电平到第一个 SPICLK 脉冲之间的延迟时间在器件数据表中给出、请参阅"SPI 主控模式开关特性(时钟相位= 1)"、时序23 ("延迟时间、SPISTE 有效至 SPICLK")。 它看起来大约为2个 SPI 时钟(正/负一些差异)。 此计时是固定的、无法更改。