ホーム › フォーラム › Texas Instruments › マイコン › MSP430 › I2C Read/Write Bit設定について
このトピックには3件の返信が含まれ、2人の参加者がいます。1 年、 4 ヶ月前に UTM さんが最後の更新を行いました。
-
投稿者投稿
-
guestI2C 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
}guest様
お問い合わせありがとうございます。
TI社が公開しているResource Explorerの該当プログラムをご参考にして下さい。
評価ボードをお使いの場合は評価ボード用のサンプルプログラムもございますのでそちらを参考にしていただければと思います。
https://dev.ti.com/tirex/explore/node?node=A__AOv8Vt7oZp.nBB4cG8dfBg__msp430ware__IOGqZri__LATESTRead/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
guestご担当者様
お世話になります。
各種リソースのご案内ありがとうございます。
おかげさまで解決致しました。ありがとうございます。
また何かありましたらよろしくお願い致します。
以上です。
guest様
コメントありがとうございます。
お役に立てたようで幸いでございます。
こちらのスレッドは解決済みに変更させていただきます。 -
投稿者投稿