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.

[参考译文] MSP430FR5994:在 SPI 中无法获得恒定速度

Guru**** 2391155 points
Other Parts Discussed in Thread: LMK04832, MSP430FR5994

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1011051/msp430fr5994-not-getting-constant-speed-in-spi

器件型号:MSP430FR5994
主题中讨论的其他器件:LMK04832

大家好、

我使用 SPI 协议与 LMK04832器件通信。 我有三个问题。

1.如何确定我应该为器件(我的器件是 LMK04832)设置的时钟速度?

2.如何获得用于通信的恒准时钟?

3.从器件读取时、是否需要在地址之后发送虚拟数据才能读取数据?

谢谢、此致。

Madhav

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

    1)根据数据表(SNAS688C)第6.6节、最大 SPI 速度为5MHz。 EUSCI 仅提供一个整数预分频器(BRW)、因此根据您的 SMCLK 速度、您可能会恰好达到或不会达到5MHz。

    2) 2)一个字节内的位时钟将是恒定的。 字节之间可能存在间隙、具体取决于填充 TXBUF 的速度。 对于此类非常小的交易、这一点很少见。

    3)根据数据表第6.7节(图表)、您需要在地址之后发送一个虚拟字节以接收数据。 您使用3线或4线模式吗?

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

    我将3线模式用于 SPI。

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

    您获得了什么结果?

    对于3线制模式、我希望您需要设置/清除字节之间 MOSI 的 PSEL 位:

    https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1005190/msp430f1101a-3-wire-spi-cs-sck-mosi-miso

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

    实际上、我的从器件是 LMK04832、主器件是 MSP430FR5994。

    首先、我将传输两个字节的地址、一个字节的数据。 因此、当我传输两个字节的地址和数据时、我能够在示波器上看到波形、但无法获得所需的输出。

    因此、我想确认我是否在提供所需的时钟。 还有其他我不知道的问题吗?

    我是第一次通过 MSP 微控制器将 SPI 连接到任何从设备。

    感谢您以前的重播。    

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

    我正在使用 MSP430FR5994中的 MOSI、MISO、CLK 和 CS 线路

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

    另一个线程的重点是、当使用3线制模式(即 MISO 和连接到 SDIO 的 MOSI)时、您应该预计总线冲突会(至少)使您的读取数据变乱。 有一个建议的避免这种情况的程序。

    到目前为止、您有哪些代码? 您有哪种类型的电路板?

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

    您好、Bruce、

    我有一个困惑:当我使用 MISO、MOSI、CLK 和 CS 时、我是否需要将 eUSCI SPI 模块配置为3线模式或4线模式?

    因为根据用户指南、我得出结论、当有多主器件时、使用4线制模式。 但在这里、我仅使用单个主器件。

    那么、我必须使用3线或4线模式吗?

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

    e2e.ti.com/.../7384.main.c

    e2e.ti.com/.../lmk04832.h

    lmk04832.h 头文件包含寄存器地址(前16位0xXXXX)和数据(后8位0xxx)。

    主代码中的 Si 我屏蔽了这些值、并且正在传输到 lmk 器件。

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

    MSP430 3引脚模式(SCK、MISO、MOSI)与 LMK0832  3线模式(CS、SCK、MISO + MOSI)不同。  MSP430 EUSCI 不知道 LMK0832的3线模式、但您可以使用它的3引脚模式(具有单独的(GPIO)芯片选择)。

    但是、MISO 和 MOSI 连接到 LMK0832的 SDIO 这一事实是一种电气冲突、您需要在代码中加以处理。 对于读取、您需要通过 MOSI 发送两个字节、然后断开 MOSI (使用其 PSEL)、以便您可以从 MISO 读取。

    根据 LMK0832数据表 [参考第8.6.2.1.1节]、您可以使用4线模式来避免电气冲突、但需要不同的接线。 您能否发布电路板原理图、或至少描述 MSP430如何连接到 LMK0832?  

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

    实际上、我在 MSP430到 LMK04832的 CS 中使用了单独的 GPIO (P4.7)。

    下面是我在 MSP430和 LMK04832之间使用的接线连接。

    MSP430      LMK08432

    --------     --------

    P5.0 (MOSI)>>引脚20 (SDIO)

    P5.1 (MISO)>>引脚58 (当前 CLKIN_SEL0配置为 MISO)

    P5.2 (CLK)>>引脚19 (CLK)

    P4.2 (CS)>>引脚18 (CS)

    使用 LMK04832中的侧4线制模式分别使用 MISO 和 MOSI 以及 MSP430FR5994中的3线制模式。

    我观察到的另一件事是、当 CS 线路为低电平时、我会收到异常毛刺脉冲或非常小的脉冲。

    出现干扰的原因可能是什么?如何应对?

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

    您好、Bruce、

    现在、每个东西都可以正常读取和写入。

    这是一个接线问题、因为我在 CS 线路上遇到毛刺脉冲、导致从器件读取错误数据。

    感谢您的支持。