您好!
SPI 时序有疑问。
在填充 FIFO (例如一个字)以启动发送后、SPI CLK 何时可以具有第一个脉冲输出? 我们发现、它在不同的波特率下是不同的。
SPI 用于连接具有严格延迟请求的从器件。
非常感谢。
BR、Jordan
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.
您好!
SPI 时序有疑问。
在填充 FIFO (例如一个字)以启动发送后、SPI CLK 何时可以具有第一个脉冲输出? 我们发现、它在不同的波特率下是不同的。
SPI 用于连接具有严格延迟请求的从器件。
非常感谢。
BR、Jordan
Manoj、
当 n = 0/1/2/3时、结果相同。 我们想知道原因。
下面是详细信息。 或者、您可以跳过前两张图片、直接转到第三张图片。
硬件连接如下:
P1是 SPI 模块、P2是一个芯片、它可以选择 Tx 和 Rx 之间的哪个芯片可以通过 CS_RT 连接到 Data+和 Data-、P3是编码器。
在我们的程序中、首先我们需要将一个 Get 位置顺序传输到编码器、然后通过将 CLK 传输到编码器来接收位置数据。 由于 P1是主器件、P3是从器件、因此 CLK 始终由 SPI 生成。
我们使用了 FIFO 模式。
操作顺序如下:
编码器中的数据只存在几次、因此我们想知道将0x55写入 TxBuffer 和产生第一个时钟信号之间的时间(作为时间 TN)。
然后、我们发现 DELAY_us (n)在 n = 0/1/2/3时无效、TN 是一个常量值、仅当 n=4、TN 被更改时才有效。 SPI 波特率为200kHz。
我们对此感到困惑、以下是我们的测试结果:
当 n = 0/1/2/3时、结果相同。 为什么?
当 n = 4时、结果与 n = 0/1/2/3时不同
BR、Jordan