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.

[参考译文] USB2ANY:USB2ANY 接口适配器

Guru**** 2589820 points
Other Parts Discussed in Thread: MSP430FR5994, USB2ANY, UNIFLASH

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1278530/usb2any-usb2any-interface-adapter

器件型号:USB2ANY
主题中讨论的其他器件:MSP430FR5994、、 UNIFLASH

大家好、

我使用 USB2ANY 接口适配器通过 I2C 接口读取 MSP430FR5994 MCU 的寄存器。 但是、我无法读取寄存器。 附件是供您参考的快照。 您能帮我解决这个问题吗?

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

    我看到 USB2ANY 适配器正在与 USB2ANY Explorer 程序通信、因此我认为 链的这一部分可能正在工作。 您可能需要使用示波器探测 I2C 线路、并确认 USB2ANY 在预期线路上发送正确的信号-需要连接 I2C 线路和 GND 线路、才能实现通信。

    如果您可以探测总线并展示您确信应该处理的事务、那么我认为问题与 MSP430FR5994配置有关-这不是我的专业领域、但我可以让 MSP430支持团队的一些人来看看。

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

    谢谢 Payne 的回复。 您能否添加 MSP430FR5994专业知识并帮助我们解决该问题?  

    我们使用的是 MSP‑EXP430FR5994 EVK。 我已经 使用 CCS 工具将 msp430fr59xx_eusci_i2c_standard_slave.c 转换为.out、并使用 Uniflash 软件对 EVK 进行编程。 现在、我尝试使用 USB2ANY 适配器读取 MSP430FR5994的寄存器、但它无法正常工作。  

    那么、您能帮助我调试这个问题吗?

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

    我已经将这个信息传递给了 MSP430、有人应该马上与您联系。

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

    尊敬的 Swaroop:

    您使用的代码包括一些应用级协议、您可以首先尝试使用以下代码进行测试:

    https://dev.ti.com/tirex/explore/node?node=A__AIxMqO6Wsyyga7bdYuWczg__msp430ware__IOGqZri__LATEST

    谢谢!

    此致

    约翰逊

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

    尊敬的 Johnson:

    我尝试了这段代码、但它不起作用。

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

    尊敬的 Swaroop:

    您是否尝试过复位 MCU、然后通过 USB2ANY 运行通信?

    我们应该测试通过这些示例代码。

    硬件连接是否正确?

    您是否可以进行一些逻辑分析来捕获此处的波形?

    如果您仍然无法成功通信、我可以尝试在我身边进行一些测试。

    谢谢!

    此致

    约翰逊

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

    尊敬的 Johnson:

    我已验证 USB2ANY 适配器是否提供具有所需频率的时钟。 我附上了这张快照供您参考。

    但是、在使用跳线(SCL、SDA 和 GND)时钟将 USB2ANY EVK 连接到 MSP430FR5994 EVK 后、将不再发生。 时钟被 MSP430 EVK 保持在低电平...

    如果我在不连接到 USB2ANY 适配器的情况下探测 MSP430的时钟和数据信号、则会如预期的那样显示始终为高电平(3V3)。

    那么、能否帮助我如何继续进行下一步?

    此致、

    斯瓦罗普有限公司

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

    你好、Swaroop。

    如果断开 MSP430、I2C 时钟信号看起来是正确的、但如果连接 MSP430、电压将始终保持低电平。

    我可能需要检查硬件连接、可能存在一些错误。

    如果您可以共享您使用的硬件连接、我可以帮助您进行检查、并可能进行一些测试。

    谢谢!

    此致

    约翰逊

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

    尊敬的 Johnson:

    请在下面找到硬件连接。

    * USB2ANY 的 J4.1到 MSP430的 P7.0。

    USB2ANY 的 J4.2至 MSP430的 P7.1  

    * USB2ANY 的 J4.5连接到 MSP430的 GND 引脚...

    如果您需要任何其他详细信息、请告诉我。

    此致、

    斯瓦罗普有限公司

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

    尊敬的 Swaroop:

    我查看了这个示例并在我这边进行了一些测试、缺省示例只有读取功能、如果你从 USB2ANY 发送一些数据、你将遇到一些问题(也许是超时)。

    我添加了一些代码(启用 RX 中断并读取 RXBUF 数据)、现在您可以尝试以下代码、这应该能够读取和写入 I2C 数据:

    #include <msp430.h>
    
    volatile unsigned char TXData;
    volatile unsigned char RXData;
    
    int main(void)
    {
        WDTCTL = WDTPW | WDTHOLD;
    
        // Configure GPIO
        P7SEL0 |= BIT0 | BIT1;
        P7SEL1 &= ~(BIT0 | BIT1);
    
        // Disable the GPIO power-on default high-impedance mode to activate
        // previously configured port settings
        PM5CTL0 &= ~LOCKLPM5;
    
        // Configure USCI_B2 for I2C mode
        UCB2CTLW0 = UCSWRST;                    // Software reset enabled
        UCB2CTLW0 |= UCMODE_3 | UCSYNC;         // I2C mode, sync mode
        UCB2I2COA0 = 0x48 | UCOAEN;             // own address is 0x48 + enable
        UCB2CTLW0 &= ~UCSWRST;                  // clear reset register
        UCB2IE |= UCRXIE0 | UCTXIE0 | UCSTPIE;            // transmit,stop interrupt enable
    
        __bis_SR_register(LPM0_bits | GIE);     // Enter LPM0 w/ interrupts
        __no_operation();
    }
    
    #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
    #pragma vector = EUSCI_B2_VECTOR
    __interrupt void USCI_B2_ISR(void)
    #elif defined(__GNUC__)
    void __attribute__ ((interrupt(EUSCI_B2_VECTOR))) USCI_B2_ISR (void)
    #else
    #error Compiler not supported!
    #endif
    {
        switch(__even_in_range(UCB2IV, USCI_I2C_UCBIT9IFG))
        {
            case USCI_NONE:          break;     // Vector 0: No interrupts
            case USCI_I2C_UCALIFG:   break;     // Vector 2: ALIFG
            case USCI_I2C_UCNACKIFG: break;     // Vector 4: NACKIFG
            case USCI_I2C_UCSTTIFG:  break;     // Vector 6: STTIFG
            case USCI_I2C_UCSTPIFG:             // Vector 8: STPIFG
                TXData = 0;
                UCB2IFG &= ~UCSTPIFG;           // Clear stop condition int flag
                break;
            case USCI_I2C_UCRXIFG3:  break;     // Vector 10: RXIFG3
            case USCI_I2C_UCTXIFG3:  break;     // Vector 12: TXIFG3
            case USCI_I2C_UCRXIFG2:  break;     // Vector 14: RXIFG2
            case USCI_I2C_UCTXIFG2:  break;     // Vector 16: TXIFG2
            case USCI_I2C_UCRXIFG1:  break;     // Vector 18: RXIFG1
            case USCI_I2C_UCTXIFG1:  break;     // Vector 20: TXIFG1
            case USCI_I2C_UCRXIFG0:
                RXData = UCB2RXBUF;
                break;     // Vector 22: RXIFG0
            case USCI_I2C_UCTXIFG0:             // Vector 24: TXIFG0
                UCB2TXBUF = TXData++;
                break;
            case USCI_I2C_UCBCNTIFG: break;     // Vector 26: BCNTIFG
            case USCI_I2C_UCCLTOIFG: break;     // Vector 28: clock low timeout
            case USCI_I2C_UCBIT9IFG: break;     // Vector 30: 9th bit
            default: break;
        }
    }
    

    更改了以下代码项:

    我还在我身边做了一些测试、看起来交流成功:

    硬件连接与您相同:

    谢谢!

    此致

    约翰逊