您好!
在具有特定 SMCLK 设置的 SPI (eUSCI)受控模式中、UCxCLK 输入的最大可能时钟频率是多少?
我在数据表和用户指南中都找不到此信息。
此致、
奥巴
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.
您好!
在具有特定 SMCLK 设置的 SPI (eUSCI)受控模式中、UCxCLK 输入的最大可能时钟频率是多少?
我在数据表和用户指南中都找不到此信息。
此致、
奥巴
嗨、Oba、
我认为它在频率方面的定义不太明确、它更多地定义为总线上主器件和从器件的设置时间。
在这个图中、你可以看到 f_UCxCLK 是 T_low/高电平时间周期中的两个。
在第8.12.7.5节 SPI 从表的注释中、如果指定了如何计算 F_UCxCLK
为了便于参考、这里是关于 SPI 主器件的同一表。
因此、使用每侧的 MSP430FR2673、两侧均以3V 电压供电、这是计算方法、我们需要使用最慢的计算方法。
主器件输出-从器 件输入:t_valid、M0 (主器件)+ t_su、si (从器件)= 20ns + 6ns = 26ns
从器件输出、主器件输入: t_su、mi (主器件)+ T_VALID、s0 (从器件)= 42ns + 40ns = 82ns
82ns * 2 = 164ns。
1/164ns =~ 6MHz
如图所示、它确实取决于每一侧的器件。 因此、从您正在查看的主器件中获取这些数字、以计算其速度是否更快或更慢。
谢谢。
JD
您好、Oba:
我想我误解了您的问题。 我正在讨论 "SPI 从器件的最大可能速度是多少?" 但我想您基本上会问"使用1MHz SPI 时钟时、哪个 SMCLK 是最慢的?"
这对我来说不是很清楚。 从 TRM 来看、我的理解是、在从/目标模式下、SPI 总线时钟实际上是时钟输入/输出来自 TX/RX 移位寄存器的数据。 SMCLK 只会在读取和加载这些寄存器或处理中断时起作用。
SPI 目标进行时钟延展并且告知 SPI 主器件它需要更多时间、因此它需要跟上 RX 缓冲区的读取并加载 TX 缓冲区的进度。
时间方面、您将拥有1 MHz / 8位、但您必须读出接收到的数据并在这段时间内加载下一个数据、这将需要一些时钟来获取和存储等。 根据应用程序代码、可能会定义所需的确切时钟数量、但正如您提到的、以.5MHz 运行(每个事务仅4个时钟周期)似乎不够。
我估计至少绝对需要8-10个时钟才能读取和加载数据、但是如果使用中断、可能是其中的几个。
希望这对您有所帮助。
JD