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.

[参考译文] MSP432P401R:中断问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/670371/msp432p401r-interrupt-problem

器件型号:MSP432P401R

您好社区。

我有两个"MSP432P401R SimpleLinkTm微控制器 LaunchPadTm开发套件(MSP‑EXP432P401R)板。 它们通过三线制 SPI 进行通信。

一个是从器件-一个是主器件。 两者都使用外设散聚 DMA 传输。 如果从机先启动而不是主机,则从机主板中接收到的数据不正常。 如果主机先启动、从机第二次接收数据正常。  在这种情况下,我假设,如果从机首先启动并进入侦听:主机稍后启动,主板期间的一些回收位开始进入“接收移位寄存器”,然后所有后续位都被重新配置为与此 Paar 回收位有关。 这种情况下、我需要在 从板上"修复"并重新启动 SPI 部件。 这种情况下工作正常,在“重新启动”SPI 部件后,来自主设备的下一个数据正确无误。

对于从板 首先启动、主板其次启动的情况(坏情况): 我有一些问题。 在我的从机监听主机期间,他需要中断来知道主机是否将数据发送给他,以便分析这个数据。

如果我在从代码中有一些制动点:它工作正常。 DMA 中断通信正常。 从机获取 中断并在接收到的数据中查找。 但是、如果从器件代码中没有制动点-没有 DMA 中断或间歇性的。

另一方面,如果主板首先启动,从板启动(良好情况)第二次启动 DMA 中断,则一切正常:在“正确的位置”建议常规。

有人能解释一下:为什么 SPI 从板在"正确位置"的代码中获得带有制动点的中断、而不是没有制动点(坏情况)? 我如何 才能做到、在"坏情况"下、规范中的 DMA 中断在代码中没有唤醒点的情况下进行通信?

提前感谢。

Alex

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

    Aleksander、

     断点似乎会影响从器件 SPI 读取的时序、这可能是基于 CPU 的中断/读取中的预期值。 但是、我希望 DMA 不会以这种方式受到影响。 但是、由于从器件和主器件的启动顺序不同、实际探测似乎是您接收到的损坏数据。 使其更强大的一些选项:

    1:使用从机和主机之间的握手(即从主机发送到从机、然后从机发送到主机的特殊令牌)来指示它们是否正常运行。

    2.分离握手信号(GPIO)-引脚浪费、但操作简单。  

    2A。 有一个独立的 GPIO 指示从器件到主器件"准备读取"、并让主器件等待直到该引脚升起、然后再尝试发送。

    2b. 或者、您可以先将 MISO 引脚编程为主器件和从器件上的 GPIO、然后在执行握手后将其切换回 SPI MISO。  

    我不清楚您的帖子中的以下段落中描述的情况:

    对于从板 首先启动、主板其次启动的情况(坏情况): 我有一些问题。 在我的从机监听主机期间,他需要中断来知道主机是否将数据发送给他,以便分析这个数据

    由此、您是指主设备正在侦听从设备响应、还是指从设备正在侦听主设备数据? 如果是从机等待主机数据的情况、您可以使用上述握手方法来避免启动问题。

    希望这对您有所帮助。

    -Bob L.

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

    所有这些都已完成。 但是、我为什么获得带有 brecrpoint 的中断而不没有这个问题没有得到回答。

    这很遗憾。

    此致

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

    如何验证在没有断点时没有收到中断? 您是否有一个 ISR 来切换 LED (或类似的 LED)以提供您在 ISR 例程中的证据?

    接下来我将尝试在2个 LaunchPad 上使用以下示例对:

    1. SPI_3Wire_Incrementing_data-master
    2. SPI_3Wire_Incrementing_data-slave

    -Bob L.

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

    是 Bob。 你是对的。 但不是使用 LED、我做了针对 oszilloskope 的脉冲。 我使用12MHz!!! SPI 时钟。 在3MHz 下没有问题。

    Alex