SPI - SPIマスター
SPI - SPIマスター
Information
本ページは私家版のため、誤り等あればご指摘ください。
最新の情報は公式のドキュメントをご参照ください。
http://mbed.org/handbook/SPI
SPI (Serial Peripheral Interface)
初期化
SPI name(mosi, miso, sclk);
name: 名前
mosi: 出力ピン名(p5, p11)
miso: 入力ピン名(p6, p12)
sclk: クロックピン名(p7, p13)
通信形式
name.format(bits, mode);
bits: データフレームのビット数(4~16)
mode: 信号形式(下記)
mode | POL | PHA |
---|---|---|
0 | 立ち上がり先行 | ラッチ先行 |
1 | 立ち上がり先行 | シフト先行 |
2 | 立ち下がり先行 | ラッチ先行 |
3 | 立ち下がり先行 | シフト先行 |
モード 0, 2 は1ワード転送ごとにCSをいったんHighにしなければならない。 モード 1,3 は複数ワード転送の間CSをLowのままにできる。
クロックレート
name.frequency(hz);
hz: クロック周波数(デフォルト 1000000Hz=1MHz)
送受信
データを送信し、同時に受信されたデータを返す。
val = name.write(data);
data: 送信データ
val: 受信データ
例
加速度センサーLIS302のWHOAMIレジスタを読み込む
#include "mbed.h" SPI spi(p5, p6, p7); // mosi, miso, sclk DigitalOut cs(p8); Serial pc(USBTX, USBRX); // tx, rx int main() { // Setup the spi for 8 bit data, high steady state clock, // second edge capture, with a 1MHz clock rate spi.format(8,3); spi.frequency(1000000); // Select the device by seting chip select low cs = 0; // Send 0x8f, the command to read the WHOAMI register spi.write(0x8F); // Send a dummy byte to receive the contents of the WHOAMI register int whoami = spi.write(0x00); pc.printf("WHOAMI register = 0x%X\n", whoami); // Deselect the device cs = 1; }
Please log in to post comments.