📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 94行目: | 94行目: | ||
また、USIPE5ビットはSPI等と共用している場合があるため、セットしてもよい。<br> | また、USIPE5ビットはSPI等と共用している場合があるため、セットしてもよい。<br> | ||
<br> | <br> | ||
==== SPI接続 ==== | ==== SPI接続 ==== | ||
MSP430F2013のUSIモジュールをSPIモードで使用する場合、以下のピンを使用する。<br> | MSP430F2013のUSIモジュールをSPIモードで使用する場合、以下のピンを使用する。<br> | ||
| 106行目: | 105行目: | ||
<br> | <br> | ||
USIモジュールのピン機能を有効化するには、USICTL0レジスタでUSIPE7、USIPE6、USIPE5ビットをセットする。<br> | USIモジュールのピン機能を有効化するには、USICTL0レジスタでUSIPE7、USIPE6、USIPE5ビットをセットする。<br> | ||
<br><br> | |||
== USI (Universal Serial Interface) == | |||
MSP430F2013のUSI (Universal Serial Interface) をSPIマスタとして使用する。<br> | |||
<br> | |||
==== SPIモード ==== | |||
SPIには4種類の動作モードが存在しており、以下に示す2つのパラメータで定義される。<br> | |||
<br> | |||
* CPOL (Clock POLarity) | |||
*: クロックのアイドル状態 | |||
* CPHA (Clock PHAse) | |||
*: データのサンプリングタイミング | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
! SPI Mode !! CPOL !! CPHA !! クロック待機状態 !! データ取得エッジ | |||
|- | |||
| Mode 0 || 0 || 0 || Low || 立上り | |||
|- | |||
| Mode 1 || 0 || 1 || Low || 立下り | |||
|- | |||
| Mode 2 || 1 || 0 || High || 立下り | |||
|- | |||
| Mode 3 || 1 || 1 || High || 立上り | |||
|} | |||
</center> | |||
<br> | |||
==== USICKPH / USICKPL と SPIモードの対応 ==== | |||
MSP430F2013のUSIでは、SPIモードは以下に示す2ビットで決定される。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
! USIビット !! 意味 | |||
|- | |||
| USICKPL || クロック極性 (CPOL) | |||
|- | |||
| USICKPH || クロック位相 (CPHA) | |||
|} | |||
</center> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ 対応表 | |||
! SPI Mode !! USICKPL !! USICKPH | |||
|- | |||
| Mode 0 || 0 || 0 | |||
|- | |||
| Mode 1 || 0 || 1 | |||
|- | |||
| Mode 2 || 1 || 0 | |||
|- | |||
| Mode 3 || 1 || 1 | |||
|} | |||
</center> | |||
<br> | |||
==== USIOE (USI Output Enable) ==== | |||
USIOE (USI Output Enable)は、USIがピンを出力として駆動するかどうかを制御するビットである。<br> | |||
<br> | |||
SPIマスタ動作時では、以下に示す信号をMSP430F2013側が生成する必要がある。<br> | |||
このため、SPIマスタでは <code>USIOE = 1</code> が必須となる。<br> | |||
* SCLK (クロック) | |||
*: 出力 | |||
* MOSI | |||
*: 出力 | |||
* MISO | |||
*: 入力 | |||
<br> | |||
仮に、<code>USIOE = 0</code> の場合、以下に示すようにSPI通信は成立しない。<br> | |||
* SCLKが出力されない。 | |||
* MOSIがハイインピーダンス (Hi-Z) となる。 | |||
<br> | |||
==== MOSI / MISOが方向切替されない理由 ==== | |||
SPI通信はフルデュプレックス通信であり、データ線の方向は固定である。<br> | |||
<br> | |||
USIが内部的に入出力方向を固定管理するため、P1DIRレジスタを直接操作する必要はない。<br> | |||
これは、1本の双方向データ線を使うI2C通信との大きな違いである。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
! 信号 !! 方向 | |||
|- | |||
| MOSI || マスター --> スレーブ | |||
|- | |||
| MISO || スレーブ --> マスター | |||
|} | |||
</center> | |||
<br><br> | <br><br> | ||