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.
工具与软件:
使用 MSp430F5171使用 SPI 总线从 AD 转换器连续采集数据、我已经看到、当器件连接到同一 SPI 时、中断此过程以进行服务时、数据可能会出现一些问题。
TMS320F28035有2个 SPI 通道。 这个微型服务一个 SPI 在一个独立的方式从另一个? 换句话说、基于 SPI A 的 AD 的采集过程不会受到来自其他器件的中断以任何方式干扰、而是请求另一条 SPI B 总线?
Enzo - Dolang 意大利
尊敬的 Enzo:
对于延迟、我们深表歉意。 请给我留出另一天的时间来审核此查询。 感谢您的耐心!
此致、
Allison
尊敬的 Enzo:
CPU 一次只能处理一个中断(按照下面的说明、从器件 TRM 向 CPU 馈入一条线路)。 如果你不嵌套中断(缺省情况下不允许嵌套)、那么正在进行中的中断将不会被另外一个新进入的中断所打断。 第一个中断将在进入下一个中断之前完成。
如果您具体说您不需要 SPI A 将被 SPI 屏蔽的中断 B 中断、那么您只需确保 SPIA 具有比 SPIB 更高的优先级中断、以便 SPIA 中断始终优先于 SPIB。 在 TRM 中也可以看到这种情况(SPIA 为 INT6.1和 INT6.2;SPIB 为 INT6.3和 INT6.4):
但是、如果您询问两个 SPI 模块是否可以完全独立(按中断)运行、如果 SPIA 和 SPIB 中断同时发生、则中断架构不支持两个同时发生的中断、除非您使用具有不同 CPU 的器件。
此致、
Allison
感谢您的答复。
我的意思是、如果 SPI A 正在工作(发送或接收)、并且中断例程与 SPI B 同时工作、那么 SPI 的 SIMO、SOMI、CLK 线路是否受干扰?
尊敬的 Enzo:
两个独立 SPI 模块上的 SPI 模块操作(发送和接收)可以同时发生、而不会干扰数据传输-它们是独立运行的。 两个 SPI 模块之间唯一的干扰是您是否/何时有中断服务例程来读取数据。 在这种情况下、CPU 一次只能处理一个中断、所以您需要注意中断的时序。 但是、举例来说、如果由于某些原因其它中断延迟了用来读取数据的中断、你可以在 FIFO 中执行 FIFO 模式、以便数据累加。
此致、
Allison