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.
大家好、
我正在使用 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 时钟(正/负一些差异)。 此计时是固定的、无法更改。