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/MSP-TS430DA38:MSP430F2252

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/759310/ccs-msp-ts430da38-msp430f2252

器件型号:MSP-TS430DA38
主题中讨论的其他器件:MSP430F2252MSP430WAREPCF8574

工具/软件:Code Composer Studio

HELO 先生、

   我在 msp430f2252中工作。我从您的网站获取代码并获得输出、如//ti 资源管理器/msp430f2252/software/msp430ware/device/msp430f2252/peripheral_example/Register_level/USCI_B0 I2C 主站 TX 多个字节到 MSP430从 -OK

//ti 资源管理器/msp430f2252/software/msp430ware/device/msp430f2252/peripheral_example/Register_level/USCI_B0 I2C 主设备 RX 来自 MSP430从设备的多个字节 -不工作

在这里、我将 bpth 地址加倍、应为0x48、因此我们写入地址0x48 (第8位模式、如 WRITE = 0)和读取地址0x49 (第8位模式、如 READ = 1)。

 

那么、我很困惑您能否解释一下这些细节。

谢谢你

Siru

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    读/写位不是 I2C 从地址的一部分、因此 I2CSA (主器件)和 I2COA (从器件)应该是相同的:在这种情况下为0x48。

    我在 Web Resource Explorer 中看不到示例的确切名称。 您是否使用了"i2c_standard_master"和"i2c _standard_slave"? 它到底是什么不起作用的?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    I2C 事务的第一个字节包含7位地址和 R/W 位。

    在 MSP 上、地址寄存器仅包含地址、UCTR 位控制 R/W 位。 (硬件会自动将它们组合在一起。)

    当使用地址0x48时、I2C 字节将为0x90或0x91。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的问题是无法从  代码 USCI_B0 I2C 主器件从 MSP430从器 件接收多个字节、在 void __attribute__((interrupt (USCIAB0TX_vector)) USCIAB0TX_ISR (void)上跳转中断。但是中断部分在该代码中正确地被示例、例如 USCI_B0 I2C 主器件 TX 多个字节到 MSP430从器件。

    您能提供任何解决方案吗?

    我使用 PCF8574写入操作正常、但读取操作无法获得结果。

    解释这两者之间的区别。  

     _bis_SR_register (CPUOFF + GIE);    

     _BIC_SR_REGISTER_ON_EXIT (CPUOFF);   

    谢谢

    Siru

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    克莱明、
    我正在使用 PCF8574、我进行了写操作并获得了结果。 但读取结果无法为我提供示例代码或想法。



    西鲁
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    PCF8674始终是从器件、因此 MSP 必须是主器件。

    读取还是写入与作为主器件或从器件无关。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    PCF8574从器件地址为0x20+n、其中 n 取决于 A0-A2的连接方式(n=0是一个很好的初步猜测)。 [参考数据表(SCPS068J)图16。]

    如果您使用不同的地址(例如0x48)、您将得到一个 NACK。 乍一看、示例 msp430x22x4_USCI_i2c_standard_master.c 似乎无法很好地处理 nack。

    >_bis_SR_register (CPUOFF + GIE);
    >_BIC_SR_REGISTER_ON_EXIT (CPUOFF);
    第一个将 CPU 置于(已启用)睡眠模式。 第二个(来自 ISR)将其从睡眠模式中退出。 [参考用户指南(SLAU144J)第 2.3.1.示例是在汇编语言中、但重点就在此处。]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Bruce。

     感谢您的帮助...

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

    器件型号:MSP-TS430DA38

    工具/软件:Code Composer Studio

    我使用的是 PCF8574、我没有读取和写入此 USCI_B0 I2C 主接口到 PCF8574的示例代码、读/写。我的连接是(A0+A1+A2)=GND、sda 和 SCL 都是连接的10k 电阻器。但此示例代码无法通过链接 msp430f2252.pl在我的芯片上进行修改。

    谢谢你

    Siru

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

    您好 Siranjevi、

    我已经将您的最新主题与这个主题合并、因为这两个主题看起来是相同的。 有关此主题的进一步讨论、请继续到此主题。

    另请参阅以下应用手册以帮助解决您的 I2C 通信问题。

    http://www.ti.com/lit/slaa734

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

    谢谢 Jace、

      我得到了 PCF8574的结果。这个问题是器件地址为0x38、而读操作为 PCF8574提供输入。 更改任何引脚值'1s'或'0s'。。。请务必考虑此区域中的 A0+A1+A2=GND。

    感谢大家帮助完成这项任务。

    Siru