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:SPI 外设在 MOSI 上输出数据、但无时钟

Guru**** 2604225 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/649496/msp432p401r-spi-peripheral-outputs-data-on-mosi-but-no-clock

器件型号:MSP432P401R

我将其中一个 EUSCI_A 模块配置为主 SPI 接口。 在我的带 MSP432的定制板推出之前、我购买了 MSP432 LaunchPad 并开始在开发板上开发代码。 现在、我要将我的开发代码移到我的定制板上。 我的开发代码成功地将 EUSCI_B 模块配置为用作主 SPI、并使用逻辑分析仪进行验证。 我的定制板尝试使用 EUSCI_A

当我将同一代码移动到我的定制板时、请更改 EUSCI、因为定制板连接了不同的引脚、并尝试运行 SPI 外设我在 MOSI 引脚上获得输出、但没有 CLK 或 CS。 我可以通过轮询或使用中断在 MOSI 引脚上获取数据。 我已经三重检查了如何为所需引脚配置 SEL0和 SEL1寄存器。 引脚的 DIR 应由外设处理。 我还进行了测量、以确保我的 CLK 引脚未以某种方式接地。

不确定接下来要进行哪些故障排除。

感谢您的帮助!

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

    您是否可以首先共享您的代码? 如果不是全部、至少是您用于设置 SPI CLK 源的代码段、器件的时钟配置以及您希望使用的 EUSCI 设置和所需的端口/引脚编号?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    下面是初始化:

    以下是加载并运行代码后的寄存器视图:

    我能够将相同的初始化代码应用到定制 PCB 上的 EUSCI_B、并使其按预期工作、因此我相信这是 EUSCI_A SPI 与 EUSCI_B SPI 的特别之处。 此外、EUSCI_A1使用端口2、该端口将端口映射作为选项。 我的理解是、将端口2引脚用于 EUSCI 是默认的端口映射、我不必特意重新配置任何内容? 但以防万一、这里是 PMAP 寄存器:

    为了测试 SPI 外设、我只需在计时器中断时将0xAA 放入发送缓冲区。

    如果您有任何其他问题、请告诉我。 感谢您的帮助!

    James

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

    MSE、

    根据您提供的信息、我认为最好使用 eUSCI A1为您创建一个工作代码示例、其中 SMCLK 作为源、使用 DCO 以12MHz 的频率馈送 MLCK=SMCLK。 我也使用了您的 BRW 0x0018。 结果是一个代码示例、其 BRW CLK 为500kHz、可以有效地与从器件通信。 主器件发送一个字节、从器件回送该字节。 主器件接收、检查接收到的字节以查看其是否准确。 如果不准确、LaunchPad (P1.0)上的红色 LED 会变为高电平。

    我的设置是两个红色 LaunchPad、它们运行 Rev C 器件、将 P2.0用于 STE/CS、将 P2.1用作 A1CLK、将 P2.2用作 SOMI、将 P2.3用作 MISO。 请参阅随附的。

    e2e.ti.com/.../msp432p401x_5F00_euscia1_5F00_spi_5F00_slave.c

    e2e.ti.com/.../msp432p401x_5F00_euscia1_5F00_spi_5F00_master.c

    如果您有任何其他问题、请告诉我。 我建议查看此内容、看看您是否可以让它在 LaunchPad 上工作、然后移至您的定制板。 这样、您就可以确定它是您的电路板、还是您编写的代码。  

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

    谢谢 Evan、

    我只有一个 LaunchPad、但我可以使用逻辑分析仪/示波器来验证我是否至少获得了时钟和数据。  

    为了进行记录、我在定制板上使用了一个48MHz 晶体作为振荡器。 我已经尝试使用 DCO 和48MHz 外部振荡器来驱动具有相同结果的外设。

    我目前正在对电路板上的电源进行负载测试、但这将在今天下午完成。 同时、我可以在 LaunchPad 上测试您的代码。

    谢谢!

    James

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    听起来不错! 如果您发现使用我的代码在 launchpad 上进行测试、下一步是查看您的 HFXT 设置、以确保它正确地入门并为 eUSCI A1采购 SMCLK。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的帮助、Evan!

    您的示例代码使所有内容都启动并运行。 现在、我要谈谈我的外部晶体的问题、但我认为这是另一个线程。

    谢谢!

    James