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.

[参考译文] MSP430F1611:I2C

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/832837/msp430f1611-i2c

器件型号:MSP430F1611

您好,

 我正在尝试一个简单的主器件发送代码、如下所示。 我无法在逻辑分析仪上看到时钟信号。 有人能告诉我代码有什么问题吗?


#include "io430.h"

无符号字符 TxData = 0x5A;
int main( void )

//停止看门狗计时器以防止超时复位
WDTCTL = WDTPW + WDTHOLD;

// P6.0输出、检查电路板上电和 P5.5上的 smlck
P6DIR |= 0x01;
P6OUT |= 0x00;
P5DIR |= BIT5;
P5SEL |= BIT5;

//端口设置,端口3 sda-pin1和 scl-pin3
P3SEL |= 0x0A;

//强制初始化
U0CTL |= I2C + SYNC;
U0CTL &=~I2CEN;

//主配置

I2CNDAT = 0x01;
I2CSA = 0x0048;

//时钟设置
I2CTCTL |= I2CSSEL_2;
I2CPSC = 0x03;//  
I2CSCLH = 0x03;
I2CSCLL = 0x03;

//中断设置
I2CIE |= TXRDYIE;


U0CTL |= I2CEN;

U0CTL |= MST;
I2CTCTL |= I2CSTT + I2CSTP + I2CTRx;
_enable_interrupt ();


#pragma vector=USART0TX_vector
_interrupt void I2C_ISR (void)

开关(I2CIV)

情况0:中断;//无中断
案例2:中断;//仲裁丢失
情况4:中断;//无应答
案例6:中断;//自有地址
案例8:中断;//寄存器访问就绪
案例10:中断;//接收就绪
情况12:
I2CDRB = TxData;// TX 数据
中断;//发送就绪
案例14:中断;//常规调用
案例16:中断;//开始条件

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

    您好、Divya、

    我看了一下您的代码、它看起来是正确的。

    SDA 和 SCL 引脚上是否有上拉电阻器?

    能否在 ISR 中的行(I2CDRb=TxDATA)上设置断点以查看是否正在生成 TX 中断?

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

    尊敬的 Dennis:

    我已经设置了一个断点、正如您提到的、并且已经观察到 TX 中断是生成的。

    关于上拉电阻器、我将发布以下屏幕截图:

    是否仍应连接一个外部上拉电阻器以使代码正常工作、因为 SDA 和 SCL 线路在线路和3.3V 电源之间已经有一个电阻器?

    此致

    Divya Sheshadrikumar

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

    100K 相当弱。 通常的建议是1k-5k、但我已经用10k 走了。 也就是说、症状是 SCL 上升沿较慢、而根本没有(下降) SCL 沿。

    原理图显示了 SCL 线上的一根焊锡跳线、该跳线看起来是开路的(两种方式)。 这是如何在您的电路板上配置的?

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

    [引用 USER="Bruce McKenney47378]]原理图显示了 SCL 导线上似乎是开路的焊接跳线(两种方式)。 您的电路板上是如何配置的?[/报价]从原理图中我认为电路板是 Olimex MSP430-P1611

    我认为焊接跳线需要位于 SCL_1xx 位置、以便将 UEXT 连接器上的 SCL 连接到   MSP430F1611上的 P3.3/UCLK0/SCL。

    [相同的 PCB 用于在不同引脚上具有 SCL 的 MSP430F1xxx 和 MSP430F2xxx 系列器件]。

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

    Bruce、您好!

    添加一个外部1k 上拉电阻器可解决该问题。 谢谢你。