MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
MSP430G2553 - I2Cのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
MSP430G2553 - I2C
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == I2C通信を行う場合、各レジスタを適切に設定して、必要に応じて割り込み処理を実装することにより、MSP430G2553マイコンでI2C通信を行うことができる。<br> <br> 各レジスタの設定は、通信モード、クロック周波数、スレーブアドレス等、アプリケーションの要件に応じて行う。<br> <br><br> == UCB0CTL1レジスタ == ==== UCB0CTL1レジスタの概要 ==== USCI_B0 (Universal Serial Communication Interface, module B0) モジュールの制御レジスタの1つである。<br> このレジスタは、I2C通信やSPI通信等のシリアル通信プロトコルの設定や動作を制御するために使用される。<br> <br> 主な機能と設定は以下の通りである。<br> * クロック源の選択 (UCSSEL) *: <code>UCSSEL</code>ビットを使用して、USCI_B0モジュールのクロック源を選択する。 *: ACLK、SMCLK、または外部クロックから選択可能です。 *: <br> * 同期モード選択 (UCMODE) *: <code>UCMODE</code>ビットを使用して、同期式通信プロトコル (I2C、SPI) を選択する。 *: マスター / スレーブモード選択 (UCMST) *: <code>UCMST</code>ビットを使用して、USCI_B0モジュールをマスターまたはスレーブとして設定する。 *: <br> * データビット数の設定 (UC7BIT) *: <code>UC7BIT</code>ビットを使用して、データ長を7ビットまたは8ビットに設定する。 *: <br> * クロック位相とポラリティの設定 (UCCKPH, UCCKPL) *: <code>UCCKPH</code>ビットと<code>UCCKPL</code>ビットを使用して、SPIモードでのクロック位相とポラリティを設定する。 *: <br> * ソフトウェアリセット (UCSWRST) *: <code>UCSWRST</code>ビットを使用して、USCI_B0モジュールをリセットする。 <br> これらの設定を適切に行うことにより、目的のシリアル通信プロトコルを実装して、他のデバイスとの通信を確立することができる。<br> UCB0CTL1レジスタは、USCI_B0モジュールの動作を細かく制御するための重要なレジスタの1つである。<br> <br> UCB0CTL1レジスタは、I2C通信だけでなく、SPI通信でも使用される。<br> USCI_B0モジュールは、I2C通信とSPI通信の両方の通信プロトコルをサポートしているため、UCB0CTL1レジスタには両方のプロトコルに関連する設定が含まれている。<br> I2C通信に関連するビットは以下の通りである。<br> * UCTR * UCTXSTT * UCTXSTP <br> ==== UCB0CTL1レジスタの重要なビット ==== <code>UCB0CTL1</code>レジスタには、I2C通信モードで使用される3つの重要なビットがある。<br> <br> 以下に示すビットは、I2C通信におけるデータの送受信や、スタート・ストップコンディションの制御に使用される。<br> マスターモードでは、<code>UCTXSTP</code>ビット、および、<code>UCTXSTT</code>ビットを適切に設定することにより、I2C通信のタイミングを制御できる。<br> スレーブモードでは、<code>UCTR</code>ビットを設定することにより、データの送信または受信を指定できる。<br> <br> ==== UCTR (Transmit / Receive Mode) ==== このビットは、I2Cスレーブモードでのデータの送受信方向を制御する。<br> * 0 *: 受信モード (スレーブはマスターからデータを受信) * 1 *: 送信モード (スレーブはマスターにデータを送信) <br> ==== UCTXSTT (Transmit START Condition) ==== このビットを<code>1</code>に設定する場合と、マスターモードでI2Cバスにスタートコンディションを送信する。<br> <br> <u>スタートコンディションは、データ転送の開始を示すために使用する。</u><br> * 0 *: 影響なし * 1 *: I2Cバスにスタートコンディションを送信 <br> ==== UCTXSTP (Transmit STOP Condition) ==== このビットを<code>1</code>に設定する場合、マスターモードでI2Cバスにストップコンディションを送信する。<br> <br> <u>ストップコンディションは、データ転送の終了を示すために使用する。</u><br> * 0 *: 影響なし * 1 *: I2Cバスにストップコンディションを送信 <br><br> == UCB0CTL0 : USCI_B0制御レジスタ0 == ==== UCSYNC : 同期モード有効ビット (I2Cモードの選択) ==== * 0 *: 非同期モード (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> == UCB0BR0、UCB0BR1 : USCI_B0ボーレートレジスタ == * I2Cの通信速度(クロック周波数)を設定 <br><br> == UCB0I2CSA : USCI_B0 I2Cスレーブアドレスレジスタ == * スレーブモードで使用するデバイスの自身のアドレスを設定 * マスターモードでは、通信先のスレーブデバイスのアドレスを設定 <br><br> == UCB0TXBUF : USCI_B0送信バッファレジスタ == * 送信するデータを書き込む <br><br> == UCB0RXBUF : USCI_B0受信バッファレジスタ == * 受信したデータを読み出す <br><br> == IE2 : 割り込み有効化レジスタ2 == * UCB0TXIEビット *: 送信割り込みの有効化 * UCB0RXIEビット *: 受信割り込みの有効化 <br><br> == IFG2 : 割り込みフラグレジスタ2 == * UCB0TXIFGビット *: 送信割り込みフラグ * UCB0RXIFGビット *: 受信割り込みフラグ <br><br> __FORCETOC__ [[カテゴリ:MSP430]]
MSP430G2553 - I2C
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse