ページの作成:「== 概要 == I2C通信を行う場合、各レジスタを適切に設定して、必要に応じて割り込み処理を実装することにより、MSP430G2553マイコンでI2C通信を行うことができる。<br> <br> 各レジスタの設定は、通信モード、クロック周波数、スレーブアドレス等、アプリケーションの要件に応じて行う。<br> <br><br> == UCB0CTL1レジスタ == USCI_B0 (Universal Serial Communication Interf…」
 
73行目: 73行目:


== UCB0CTL0 : USCI_B0制御レジスタ0 ==
== UCB0CTL0 : USCI_B0制御レジスタ0 ==
* I2Cモードの選択(UCSYNC、UCMODE)
==== UCSYNC : 同期モード有効ビット (I2Cモードの選択) ====
* マスター/スレーブモードの選択(UCMST)
* 0
* 応答確認の有効化(UCTR)
*: 非同期モード (UART通信)
* 1
*: 同期モード (I2C、SPI通信)
<br>
==== UCMODE : モード選択ビット (I2Cモードの選択) ====
* 00
*: 3線式SPI (UCxSIMO、UCxSOMI、UCxCLK)
* 01
*: 4線式SPI (UCxSIMO、UCxSOMI、UCxCLK、UCxSTE)
* 10
*: I2Cモード
* 11
*: 予約済み
<br>
==== UCMST : マスター / スレーブモード選択ビット ====
* 0
*: スレーブモード
* 1
*: マスターモード
<br>
==== UCTR : 送信 / 受信モード選択ビット (I2Cモードでのみ使用) ====
応答確認の有効化を行うビットである。<br>
* 0
*: 受信モード
* 1
*: 送信モード
<br><br>
 
== UCB0BR0, UCB0BR1 : USCI_B0ボーレートレジスタ ==
<code>UCB0CLK</code>レジスタ、<code>UCB0BR0</code>レジスタ、<code>UCB0BR1</code>の3つのレジスタを組み合わせて、I2Cの通信速度を設定する。<br>
<math>\mbox{ 通 信 速 度 } = \dfrac{\mbox{UCB0CLK}}{(\mbox{UCB0BR0} + \mbox{UCB0BR1} \times 256)}</math><br>
<br><br>
 
== UCB0I2CSA : USCI_B0 I2Cスレーブアドレスレジスタ ==
スレーブモードでは、自身のスレーブアドレスを設定する。<br>
マスターモードでは、通信するスレーブデバイスのアドレスを設定する。<br>
<br><br>
 
== UCB0TXBUF : USCI_B0送信バッファレジスタ ==
送信するデータを書き込むレジスタである。<br>
<br>
このレジスタにデータを書き込むと、自動的に送信が開始される。<br>
<br><br>
 
== UCB0RXBUF : USCI_B0受信バッファレジスタ ==
受信したデータを読み出すレジスタである。<br>
<br>
新しいデータを受信すると、<code>UCB0RXIFG</code>フラグがセットされる。<br>
<br><br>
 
== E2 : 割り込み有効化レジスタ2 ==
==== UCB0TXIE : USCI_B0送信割り込み有効ビット ====
* 0
*: 割り込み無効
* 1
*: 割り込み有効
<br>
==== UCB0RXIE : USCI_B0受信割り込み有効ビット ====
* 0
*: 割り込み無効
* 1
*: 割り込み有効
<br><br>
 
== IFG2 : 割り込みフラグレジスタ2 ==
==== UCB0TXIFG : USCI_B0送信割り込みフラグ ====
* 0
*: 割り込みなし
* 1
*: 送信バッファが空になり、新しいデータを書き込み可能
<br>
==== UCB0RXIFG : USCI_B0受信割り込みフラグ ====
* 0
*: 割り込みなし
* 1
*: 新しいデータが受信バッファに到着
<br><br>
<br><br>