Virtual SPI interface library. SPI専用ピンを使わず、通常のIOピンを使用してSPI通信を偽装します。 使い方は通常のSPIと同じようなものですが、frequency(周波数)の設定があまり厳密ではないので実験用途でデバッグしたいとき等にご使用ください。 「SPI専用のピンが壊れているのではないのか?」というときの確認に便利です。 Implement the SPI communication in the "only general purpose IO pin" without a SPI pin.

Dependents:   VirtualSPI

Committer:
Yajirushi
Date:
Sat May 30 12:57:17 2015 +0000
Revision:
0:1d153d73d37d
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Yajirushi 0:1d153d73d37d 1 #include "mbed.h"
Yajirushi 0:1d153d73d37d 2
Yajirushi 0:1d153d73d37d 3 #ifndef VSPI_H
Yajirushi 0:1d153d73d37d 4 #define VSPI_H
Yajirushi 0:1d153d73d37d 5
Yajirushi 0:1d153d73d37d 6 class VSPI{
Yajirushi 0:1d153d73d37d 7 public:
Yajirushi 0:1d153d73d37d 8 VSPI(PinName mosi, PinName sclk);
Yajirushi 0:1d153d73d37d 9 VSPI(PinName mosi, PinName miso, PinName sclk);
Yajirushi 0:1d153d73d37d 10 VSPI(PinName mosi, PinName miso, PinName sclk, PinName csel);
Yajirushi 0:1d153d73d37d 11
Yajirushi 0:1d153d73d37d 12 private:
Yajirushi 0:1d153d73d37d 13 DigitalOut *mo;
Yajirushi 0:1d153d73d37d 14 DigitalIn *mi;
Yajirushi 0:1d153d73d37d 15 DigitalOut *cl;
Yajirushi 0:1d153d73d37d 16 DigitalOut *cs;
Yajirushi 0:1d153d73d37d 17
Yajirushi 0:1d153d73d37d 18 bool hasInput;
Yajirushi 0:1d153d73d37d 19 bool hasSelect;
Yajirushi 0:1d153d73d37d 20
Yajirushi 0:1d153d73d37d 21 unsigned int freq;
Yajirushi 0:1d153d73d37d 22 unsigned int w_us;
Yajirushi 0:1d153d73d37d 23 unsigned char mode;
Yajirushi 0:1d153d73d37d 24 unsigned char bits;
Yajirushi 0:1d153d73d37d 25
Yajirushi 0:1d153d73d37d 26 bool activeLow;
Yajirushi 0:1d153d73d37d 27 bool msbf;
Yajirushi 0:1d153d73d37d 28
Yajirushi 0:1d153d73d37d 29 bool isHigh;
Yajirushi 0:1d153d73d37d 30
Yajirushi 0:1d153d73d37d 31 public:
Yajirushi 0:1d153d73d37d 32 void format(unsigned char bits, unsigned char mode = 0);
Yajirushi 0:1d153d73d37d 33 void frequency(unsigned int hz = 1000000);
Yajirushi 0:1d153d73d37d 34 int write(int value);
Yajirushi 0:1d153d73d37d 35 int wwcs(int value);
Yajirushi 0:1d153d73d37d 36 int wwcs(int value, unsigned int waitMicros);
Yajirushi 0:1d153d73d37d 37 void setBitOrder(bool isMSBfirst = true);
Yajirushi 0:1d153d73d37d 38 void setCSmode(bool isActiveLow = true);
Yajirushi 0:1d153d73d37d 39 void setCS(bool H);
Yajirushi 0:1d153d73d37d 40 bool getCS();
Yajirushi 0:1d153d73d37d 41 bool csInvert();
Yajirushi 0:1d153d73d37d 42 };
Yajirushi 0:1d153d73d37d 43
Yajirushi 0:1d153d73d37d 44 #endif