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.

[参考译文] CCS/DRV2667EVM-CT:I2C通信

Guru**** 2614265 points
Other Parts Discussed in Thread: DRV2667, DRV2667EVM-CT

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/665420/ccs-drv2667evm-ct-i2c-communication

部件号:DRV2667EVM-CT
主题中讨论的其他部件:DRV2667

工具/软件:Code Composer Studio

您好,

现在,我想在 MSP430g2553 (Launchpad)和 具有 I2C的DRV2667之间开始通信。

 我想在按下按钮作为输入信号后使用一个压电作为触点反馈(例如:打开LED)。 真正需要的只是一个波形。

我真的不知道怎么开始。 在EVM- DRV2667的文档中 ,我找到了数据"sloc342",其中包含主代码TX/RX,但我不知道我的小项目真正需要哪些部件(以及我可以轻松剪切的部件)。

在此之前,我曾讲过MSP430 I2C示例代码,但现在我真的不知道这些示例代码是否对我有很大帮助。 我´s“Master TX multiple bytes”和“Slave RX multiple bytes”代码,但对DRV267的Master TX/RX代码的逐步说明对我真的很有帮助,因为这是我将来使用它所必须了解的。

此致

Patrick

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

    我将您的帖子移至MSP论坛。 它们可以帮助您使用/配置启动板以与其他设备连接。

    此致,
    Ivan Salazar
    应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Patrick:

    您能否详细说明您需要解释的内容? MSP430端的I2C通信可以通过使用您提到的示例代码以及参阅器件系列的用户指南来完成。 您将需要依赖DRV2667EVM-CT和DRV2667的文档了解任何细节。 另请注意,提供的MSP430代码应包括与某些特定器件通信的示例。 如果不包括DRV2667,则只需根据该设备的说明文件进行一些修改。

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

    这是我´m的第一个项目,我不是真的习惯微控制器。 所以当我看到“sloc342”中的示例代码时,我真的不知道可以剪切什么以及可以使用什么。 I2C代码对我来说非常复杂,我不知道为什么大多数操作都会发生。
    例如,我认为我理解初始化:

    void TI_USI_I2C_receiveinit(unsigned char slaver_address,
    unsigned char prescale){
    P1SEL || SDA_PIN + SCL_PIN; //将I2C引脚分配给USI_B0
    P1SEL2 |= SDA_PIN + SCL_PIN; //将I2C引脚分配给USI_B0
    UCB0CTL1 = UCSWRST; //启用软件重置
    UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC; // I2C主控
    UCB0CTL1 = UCSSEL_2 + UCSSWRST; //使用SMCLK,保持软件重置
    UCB0BR0 = 12; //预分页; //设置预缩放器???
    UCB0BR1 = 0;
    UCB0I2CSA = 0x59;//slaver_address; //设置从属地址
    UCB0CTL1 &=~UCSWRST; //清除软件重置,恢复操作
    UCB0I2CIE = UCNACKIE;
    IE2 = UCB0RXIE; //启用RX中断
    }

    在其他程序中,我使用UCB0BR0 =12;来获得my100kHz。 为什么现在要进行预分?
    与"slaver_address"相同。
    静态无符号char slaveAddr = 0x59;
    Slaver_adress (从属地址)。 我看不到连接。 或者我错过了什么?

    我不知道如何编程。 我只需要一个按钮,如果按下该按钮,我只需要一个来自压电式触感增强器的波形。
    我感到有点失落和绝望。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Patrick:

    对于您所发布的代码的具体问题,我不确定如果不使用函数参数,为什么会包含这些参数。 但是从属地址特定于您要与其通信的设备,UCB0BR0值是预分值。 您之前使用了12,这是您的售前价值。

    总的来说,您可能不能仅复制和粘贴部分代码,因为该代码是为其他目的而设计的。 您将需要并了解MSP430的实际工作原理,以便能够设计您所描述的程序,即使从最终角度看它相当简单。 同样,请参阅所用MSP430系列器件的用户指南。 这将有助于描述GPIO,I2C和其他模块以及您需要如何使用它们。 产品页上的MSP430代码示例也将帮助您入门,我仍然会将sloc342代码用作指南,因为它特定于您正在使用的EVM。

    如果您对您尝试实施的功能有任何具体问题,请告诉我并详细说明问题,以便我尝试提供帮助。

    此致,
    Nathan