class SPI -- シリアルペリフェラルインタフェース バスプロトコル(マスタ側)

SPI はマスタによって駆動される同期シリアルプロトコルです。物理レベルにおいて、バスは SCK、MOSI、MISO 3本の線で構成されています。複数のデバイスが同じバスを共有できます。各デバイスには、通信を行うバス上の特定のデバイスを選択するための個別の4番目の信号 SS (Slave Select)が必要です。SSシグナルの管理はユーザーコードで(machine.Pin クラス経由で)行う必要があります。

コンストラクタ

class machine.SPI(id, ...)

与えたバス id で SPI オブジェクトを構築します。 id の値は特定のポートとそのハードウェアに依存します。値 0, 1 などは一般的に、ハードウェア SPI ブロック #0, #1 などを選択するために使われます。値 -1 は(ポートでサポートされている場合) SPI のビットバンギング(ソフトウェア)実装を選択するのに使えます。

追加のパラメータを指定しないと、SPI オブジェクトは作成されますが初期化されません(そのような場合、バスが過去に初期化されたことがあれば、その定が引き継がれます)。追加のパラメータが与えられると、バスは初期化されます。追加のパラメータについては init を参照してください。

メソッド

SPI.init(baudrate=1000000, *, polarity=0, phase=0, bits=8, firstbit=SPI.MSB, sck=None, mosi=None, miso=None, pins=(SCK, MOSI, MISO))

与えたパラメータで SPI バスを初期化します。

  • baudrate は SCK のクロックレートです。
  • polarity は 0 か 1 であり、アイドリング状態のときのクロックのレベルを指定します。
  • phase は 0 か 1 であり、それぞれ、1番目または2番目のクロックエッジでのデータ読取りを指定します。
  • bits は各転送のビット幅です。すべてのハードウェアでサポートされることが保証されているのは 8 だけです。
  • firstbit は SPI.MSB か SPI.LSB です。
  • sck, mosi, miso はバス信号に使用するピン(machine.Pin)オブジェクトです。ほとんどのハードウェア SPI ブロック(コンストラクタのパラメータ id で指定)では、ピンが固定されていて変更できません。場合によっては、ハードウェアブロックが、1つのハードウェアSPIブロックに対して2~3の代替ピンセットを許しています。任意のピン割り当ては、ビットバンギング SPI ドライバ(id = -1)に対してのみ可能です。
  • pins - WiPy ポートには sck, mosi, miso 引数がありません。その代わり pins パラメータでタプルとしてそれらを指定できます。

ハードウェア SPI の場合、実際のクロック周波数は要求されたボーレートより低いかもしれません。これはプラットフォームのハードウェアに依存します。実際のレートは SPI オブジェクトを print 関数で表示することにより判ります。

SPI.deinit()

SPI バスをオフにします。

SPI.read(nbytes, write=0x00)

write で指定した1バイトを連続で書き込みながら、 nbytes で指定したバイト数を読み込みます。読み込んだデータを持つ bytes オブジェクトを返します。

SPI.readinto(buf, write=0x00)

write で指定した1バイトを連続で書き込みながら、 buf に指定したバッファに読み込みます。 None を返します

注記: WiPy では読み込んだバイト数を返します。

SPI.write(buf)

buf に含まれるバイト列を書き込みます。 None を返します。

注記: WiPy では書き込んだバイト数を返します。

SPI.write_readinto(write_buf, read_buf)

read_buf に読込みながら write_buf のバイト列を書き込みます。両バッファは同じでも異なっていてもかまいませんが、同じ長さでなければなりません。 None を返します。

注記: WiPy では書き込んだバイト数を返します。

定数

SPI.MASTER

SPI バスをマスタに初期化するためのものです。これは WiPy のみで使います。

SPI.MSB

最初のビットを最上位ビットに設定します

SPI.LSB

最初のビットを最下位ビットに設定します