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/MSP430F6659:msp430f6659

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/721049/ccs-msp430f6659-msp430f6659

器件型号:MSP430F6659

工具/软件:Code Composer Studio

您好!

我将 msp430f6659控制器用作主控制器、将 PCA9505用作通信协议之间的从控制器是具有400K 速率的 I2C。  我正在 对从器件执行写入操作和读取操作。 从从从器件读取数据后、有时我收到的数据是错误的、而我以前写入的数据是错误的。 如何解决问题、请帮助我。

此致、

P M Manoj Kumar。  

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

    您好、Manoj、

    让我在这里快速回顾一下您的问题:

    从从从器件(PCA9505)读取数据后、主器件(MSP430F6659)不会显示您之前发送的数据、而是显示错误的数据。 是这样吗?

    首先、您可以查看我们为 MSP430器件提供的 I2C 软件示例。 您可以在 CCS 或 其在线版本中使用 TI Resource Explorer 、浏览到您的器件并查看 I2C 的软件示例。 这可能会为您提供指导。

    另请查看 MSP430 MCU 上常见 eUSCI 和 USCI 串行通信问题的解决方案。

    如果没有这些帮助、请向我提供有关实施的详细信息、以帮助您。

    谢谢、此致、

    Britta

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Britta、
    完全正确从从器件(PCA9505)读取数据后、主器件(MSP430F6659)不会显示您之前发送的数据、而是显示错误的数据。 我将看到 MSP430上的串行通信问题以及 MSP430器件的 I@C 示例。 如果问题无法解决、我将发送 I2C 代码。 感谢您的支持。

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

    您是否有时间查看 I2C 示例? 它是否解决了您的问题?
    如果不是、请分享有关实施和您看到的错误案例的更多详细信息。

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

    您好、Britta、

    我尝试过、但仍然遇到相同的问题。 我将向您发送 I2C 模块初始化和从器件读取代码。

    此致、

    P M Manoj Kumar。

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

    您好、Britta、

    在这里、我将发送 I2C 初始化和从从器件代码读取。

    1)

    void I2Cinit (void)
    
    {
    
    UCD0CTL1 |= UCSWRST;//启用软件复位
    
    UCD0CTL0 |= UCMST | UCSYNC | UCMODE_3;//I2C 同步和主模式选择
    
    UCD0CTL1 |= UCSSEL_1;//使用 ACLK
    
    UCBBR0 = 25;
    
    UCB0CTL1
    
    
    
    = UCB0 ~UCBUSCI;UCB0CTL1 = UCB0CTL1;//初始化状态 

    2)

    unsigned char ReadFromI2CPort (unsigned char SlaveAddr、unsigned char OpRegAddr)
    
    {
    
    
    
    unsigned char ReadData = 0;
    
    while (UCB0CTL1 & UCTXSTP);
    
    UCB12CSA = SlaveAddr;
    
    UCBCTL1 |= UCTR | UCTXSTT;
    
    while (! (UCB0IFG & UCTXIFG);
    
    UCB0TXBUF = OpRegAddr;
    
    while (! (UCB0IFG & UCTXIFG);
    
    UCB0CTL1 &=~UCTR;
    
    UCBCTL1 |= UCTXSTT;
    
    while (! (UCB0IFG & UCRXIFG);
    
    ReadData = UCB0RXBUF;
    
    UCBCTL1 |= UCTXSTP;
    
    返回 ReadData;
    
    } 

    此致、

    P M Manoj Kumar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您正在读取/写入哪些寄存器? 如何设置 IOC 位?

    是否有任何器件连接到 PCA9505引脚? (可能是上拉电阻器已经接管。)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Manoj、

    您是否了解过 Bruce 提出的问题?
    我们已经有一段时间没有回答、因此请回复。 否则、假设问题已解决、我将继续并关闭此主题。

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

    您好、Bruce、

    PCA9505配置为输出、PCA9505 GPIO 连接到继电器开关。 和读取/写入输出端口寄存器。

    此致、

    P M Manoj Kumar。

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

    您是否检查了与示波器的通信?
    SDA/SCL 上的上拉电阻大小是多少?
    您是否有较长的布线会在 SDA/SCL 上增加电容、从而产生圆波形?
    您是否检查过较低的通信速度?

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

    我将研究上述考虑,然后我将作回覆。

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

    是否有此问题的更新? 我假设问题已经解决、因为您不再回复此主题。
    请验证给定的答案、并告诉我是否可以关闭此主题。

    谢谢、此致、
    Britta