ホーム フォーラム Texas Instruments マイコン MSP430 I2C Read/Write Bit設定について

このトピックには3件の返信が含まれ、2人の参加者がいます。1 年、 4 ヶ月前 UTM さんが最後の更新を行いました。

4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #20633 返信

    guest

    I2C Read/Write Bit設定について

    現在I2Cセンサを使用するソフトウェアの開発を行っています。

    I2Cを取り扱うのが初めてのため、基本的な質問で恐縮ですがRead/Write Bitについてお教えください。

    MSP430側をマスターとし、スレーブアドレス:0x28のセンサと通信を行います。

    通信の流れとして、スレーブアドレス0x28をUCB0I2CSAに渡すのが一番最初のステップになると思っています。

    この時、Read/Write Bitの設定はどのように行ったら良いのでしょうか。

    最初はスレーブアドレスを1Bitシフトし7Bit~1Bitでアドレス設定,0BitにRead/Writeを設定すれば良いのかと思い、UCB0I2CSAに8Bit渡すつもりでした。

    しかしユーザーガイドの38.4.9 UCBxI2CSA Registerにて9~7Bitは無視されるとの記載があり混乱しています。

    認識間違い等ございましたらご教授頂けますと幸いです。

    下記にI2Cレジスタの初期設定等を示します。

    今回割り込みを使用しない形での実装で進めています。

    void initGPIO()
    {
    // Disable Interrupts before altering Port Mapping registers
    __disable_interrupt();
    // Enable Write-access to modify port mapping registers
    PMAPPWD = 0x02D52;

    //I2C Pins
    P2SEL |= BIT1 | BIT2;
    P2MAP1 = PM_UCB0SCL;
    P2MAP2 = PM_UCB0SDA;
    // Disable Write-Access to modify port mapping registers
    PMAPPWD = 0;
    }

    void initI2C()
    {
    UCB0CTL1 |= UCSWRST;                      // Enable SW reset
    UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC;     // I2C Master, synchronous mode
    UCB0CTL1 = UCSSEL_2 + UCSWRST;            // Use SMCLK(20MHz), keep SW reset
    UCB0BR0 = 200;                            // fSCL = SMCLK/200 = ~100kHz
    UCB0BR1 = 0;
    UCB0I2CSA = 0x28;                                // Slave Address is 0x28
    UCB0CTL1 &= ~UCSWRST;                     // Clear SW reset, resume operation
    }

     

     

     

    #20634 解決済み提案を取消 | 返信

    UTM
    従業員

    guest様

    お問い合わせありがとうございます。

    TI社が公開しているResource Explorerの該当プログラムをご参考にして下さい。
    評価ボードをお使いの場合は評価ボード用のサンプルプログラムもございますのでそちらを参考にしていただければと思います。
    https://dev.ti.com/tirex/explore/node?node=A__AOv8Vt7oZp.nBB4cG8dfBg__msp430ware__IOGqZri__LATEST

    Read/Write Bitの設定はUCTRの記載内容をご参照下さい。
    The UCTR bit decides whether the R/W bit is high or low and should be determined when setting the UCTXSTT bit, as this command causes the MSP430 device to send the start sequence followed by the slave address and R/W bit automatically.
    https://www.ti.com/lit/pdf/slaa734

    またI2C通信の概要につきましては、
    ユーザーズガイドFigure 24-12. I2C Master Transmitter Modeをご参照下さい。
    https://www.ti.com/lit/ug/slau445i/slau445i.pdf

    #20652 返信

    guest

    ご担当者様

    お世話になります。

    各種リソースのご案内ありがとうございます。

    おかげさまで解決致しました。ありがとうございます。

    また何かありましたらよろしくお願い致します。

    以上です。

    #20653 返信

    UTM
    従業員

    guest様

    コメントありがとうございます。
    お役に立てたようで幸いでございます。
    こちらのスレッドは解決済みに変更させていただきます。

4件の投稿を表示中 - 1 - 4件目 (全4件中)