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/MSP430G2553:MSP430G2553_I2C

Guru**** 2555640 points
Other Parts Discussed in Thread: MSP430G2553, DAC8571

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/596409/ccs-msp430g2553-msp430g2553_i2c

器件型号:MSP430G2553
主题中讨论的其他器件: DAC8571

工具/软件:Code Composer Studio

可以帮助获取 C 代码、从而将 MSP430g2553的 I2C 接口用作主器件。 在这里、我希望使用 MSP430写入 I2C 从设备。谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 MSP430G2553网页上、点击"Tools & software"、然后点击"Code Examples"。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢你的帮助。 我得到了示例。
    但在这里、我遇到了一个不寻常的问题:当我在 MSP430G2553上运行代码时、它会显示"集线器端口上的电源浪涌"、因为它超出了其功率限制。
    您能不能评论我所犯的错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可能在某个地方发生了短路。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢电路板正常、现在这是我的问题。
    但我仍然没有在 I2C 引脚(P1.6、P1.7)上获得任何信号。 我从示例中运行"msp430g2xx3_uscib0_i2c_03.c"代码(如下所示)、但现在没有任何从器件。 只需观察 CRO 上的至少任何数据位即可。 但没有得到。
    plz。 请帮帮我。。 谢谢。

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    MSP430G2xx3演示-连接到 DAC8571的 USCI_B0 I2C 主接口、写入
    //
    //说明:使用 UCB0TXIE、一个连续正弦波被输出到
    //使用16点查找表的外部 DAC。 只有一个启动条件
    //被执行。 数据由 ISR 处理、CPU 通常位于 LPM0中。
    // ACLK = n/a、MCLK = SMCLK = BRCLK =默认 DCO =~1.2MHz
    //
    // MSP430G2xx3. DAC8571
    // ---------- ------
    // -|XIN P1.7/UCB0SDA|---------------- >|SDA |
    // | P1.6/UCB.S.|-------- |SCL I2C |
    // -|XOUT | |从器件|
    // | I2C 主设备| GND|A0 |
    //
    //
    // DAC8571 I2C 地址= 0x4C (A0 = GND)
    //
    // D. Dang
    // Texas Instruments Inc.
    // 2011年2月
    //使用 CCS 版本4.2.0和 IAR Embedded Workbench 版本:5.10构建
    //
    #include

    const unsigned char sine_tab[]= // 16点16位正弦表

    0xFF、 // MSB 字0
    0xFF、 // LSB
    0xF6、 // MSB 字1
    0x40、 // LSB
    0xDA、 // MSB 字2
    0x81、 // LSB
    0xB0、 // MSB 字3
    0xFA、 // LSB
    0x7f、 // MSB 字4
    0xFF、 // LSB
    0x4F、 // MSB 字5
    0x03、 // LSB
    0x25、 // MSB 字6
    0x7C、 // LSB
    0x09、 // MSB 字7
    0xBD、 // LSB
    0x00、 // MSB 字8
    0x00、 // LSB
    0x09、 // MSB 字9
    0xBD、 // LSB
    0x25、 // MSB 字10
    0x7C、 // LSB
    0x4F、 // MSB 字11
    0x03、 // LSB
    0x7f、 // MSB 字12
    0xFE、 // LSB
    0xB0、 // MSB 字13
    0xFA、 // LSB
    0xDA、 // MSB 字14
    0x81、 // LSB
    0xF6、 // MSB 字15
    0x40 // LSB
    };

    int main (空)

    WDTCTL = WDTPW + WDTHOLD; //停止看门狗计时器
    P1SEL |= BIT6 + BIT7; //将 I2C 引脚分配给 USCI_B0
    P1SEL2|= BIT6 + BIT7; //将 I2C 引脚分配给 USCI_B0
    UCB0CTL1 |= UCSWRST; //启用 SW 复位
    UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC; // I2C 主设备,同步模式
    UCB0CTL1 = UCSSEL_2 + UCSWRST; //使用 SMCLK、保持软件复位
    UCB0BR0 = 12; // fSCL = SMCLK/12 =~100kHz
    UCB0BR1 = 0;
    UCB0I2CSA = 0x4c; //设置从器件地址
    UCB0CTL1 &=~UCSWRST; //清除 SW 复位,恢复操作
    IE2 |= UCB0TXIE; //启用 TX 就绪中断
    UCB0CTL1 |= UCTR + UCTXSTT; // I2C TX、启动条件
    UCB0TXBUF = 0x010; //写入 DAC 控制字节
    _bis_SR_register (CPUOFF + GIE); //输入带中断的 LPM0


    // USCI_B0数据 ISR
    #if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
    #pragma vector = USCIAB0TX_vector
    _interrupt void USCIAB0TX_ISR (void)
    #Elif defined (_GNU_)
    void __attribute__((interrupt (USCIAB0TX_vector)) USCIAB0TX_ISR (void)
    其他
    错误编译器不受支持!
    #endif

    静态无符号字符 ByteCtr;

    UCB0TXBUF = sine_Tab[ByteCTR++]; //发送数据字节
    ByteCtr &= 0x1f; //不要超过表

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    I²C 在没有从器件的情况下不起作用。