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 では書き込んだバイト数を返します。