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.

[参考译文] MSP430G2131:SPI 通信

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/995405/msp430g2131-spi-communication

器件型号:MSP430G2131
主题中讨论的其他器件: DRV8838

您好!  

我们 正在尝试在 MSP430G2131 (从器件)和 CH341A (主器件)之间建立 SPI 以控制电位器。 目标是从 DRV8838 EVM 板读取电位器数据、并将其从器件传输到主器件。

为了验证 MSP430G2131芯片是否能作为从器件正常工作、我目前正在2个 MSP430G2131芯片之间建立 SPI 通信。

我有以下几个问题:

  • msp430x_2xx 用户指南(pdf)第403页提到

     

  1. 移位时钟和 SMCLK 之间是否有任何差异?
  2. 如果 USICNTx 递减并且 USISR 在上升时钟边沿上采样下一个位输入、那么为什么我们被赋予配置 USICKPH 和 USICKPL 的选项?

 

  • 我对 PxIN、PxOUT、PxDIR 和 PxSEL 寄存器之间的差异有点困惑。

例如、在示例代码中:

SPI 从器件配置

  1. 如何在 P1DIR 中配置‘P1.1作为输出 REST 输入’,然后在 P1OUT 中设置 P1.4? 这是否意味着两个引脚都用作输入?

 

SPI 主器件配置

  1. 如何使用 P1DIR 复位从器件?

 

DRV8838_CvertomerEVM_Default _Code

  1. 上述陈述的功能是什么?
  2. P1SEL 和 P1DIR 与 P1OUT 之间有何差异?

 

  • 我尝试将硬编码值从主器件发送到从器件、反之亦然。 在对 USISRL 寄存器的值进行硬编码后、我可以看到 P1.6引脚(MSP430G2131的)上的波形、但如果我将其硬编码到 P1OUT 寄存器中、则看不到波形。 USISRL 寄存器在传输数据之前是否将数据传输到 P1OUT 寄存器?

 

 

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

    您好!

    1:移位时钟和 SMCLK 的设置是完全不同的。 移位时钟 只在 USI 外设中使用。 但 SMCLK 是子系统时钟、它为大多数片上外设提供时钟资源。 请参阅图14.1 USI 方框图。

    控制位 USICKPL 选择 SPI 时钟的无效电平、而 USICKPH 选择 SDO 被更新和 SDI 被采样的时钟边沿。  基于 UG 14.2.3 SPI 模式

    3.您可以在 UG 章节8.2数字 I/O 操作中找到有关这些寄存器 PxIN、PxOUT、PxDIR 和 PxSEL 的有用信息。  

    您在这里使用的是哪个示例代码? 我发现有两个与 SPI 功能相关的示例代码。 这两种情况都与您所示的情况不同。

    e2e.ti.com/.../msp430g2x21_5F00_usi_5F00_05.c

    e2e.ti.com/.../msp430g2x21_5F00_usi_5F00_04.c

    此致、

    现金 Hao

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

    您好!  

    我们使用 msp430g2x21_5F00_USI_5F00_02.c 和 msp430g2x21_5F00_USI_5F00_03.c 在 2个 MSP430G2131芯片之间建立 SPI 通信。

    我们已在 UG 章第8.2节"数字 I/O 操作"中阅读了寄存器 PxIN、PxOUT、PxDIR 和 PxSEL。 但是、我们仍然不清楚它们的确切功能。 请告知您是否可以详细说明。  

    谢谢、  

    Piyusha  

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

    您好、Piyusha、

    1.您可以在此处分享您使用的代码吗? 我在 我们的网站上找不到它。

    2.您是否意味着 您需要以下表格来了解如何配置这些寄存器? 您可以在器件数据表中找到这些寄存器。

    此致、

    现金 Hao

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

    您好、现金、  

    以下是代码:  

    e2e.ti.com/.../7776.msp430g2x21_5F00_usi_5F00_02.c

    e2e.ti.com/.../msp430g2x21_5F00_usi_5F00_03.c

    我们正在混淆  PxIN、PxOUT、PxDIR 和 PxSEL 所扮演的角色。  

    1. SPI 主器件上的 P1IN 寄存器是否存储来自 SPI 从器件的位的值、或者是否读取并存储来自其中一个端口的值?  
    2. PxOUT 和 PxDIR 之间的区别是什么? 我们知道 Pdir 会设置每个位的方向 、但我们 在使用 P1OUT 时不太清楚。 SPI 主器件上的 P1OUT 寄存器是否存储需要输出到 SPI 从器件的值(在这种情况下、P1OUT 寄存器的内容是否在传输到 SPI 从器件之前被复制到主器件的 USISRL 寄存器中?  
    3. 如果我们假设 P1DIR = 0x01、这是否意味着只有位0能够更改 P1OUT 寄存器中的输出?  
    4. PxSEL 寄存器是否用于激活特定端口"x"?  

    谢谢、  

    Piyusha

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

    您好、Piyusha、

    1.不 如果您将该引脚设置为输入引脚、 然后、PxIN 将为您提供该引脚上的输入值。 如果您将此引脚设置为 SPI 功能、则它仅用作 SPI 功能。

    例如、使用我之前的答复中的数字、P1.6可以设置为总共5个函数。 但根据您的寄存器设置、它一次只能用于一个功能。

    2.当您将 PxDIR 设置为输出方向时、PxOUT 取决于您在该引脚上输出的值。 如果您将 PxOUT 设置为1、则该引脚输出高电压。 如果您将 PxOUT 设置为0、则引脚输出低电压。

    3.是的。 P1DIR 为0b00000000、每个位控制 P1.0至 P1.7的一个引脚。

    4.什么是特定端口"x"? 您是指该图中所示的"X"。 这意味着要注意为该寄存器设置的值。

    此致、

    现金 Hao

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

    您好、现金、  

    谢谢你。  

    Piyusha