ページ

2022/01/15

Raspberry PiのSPI通信による7セグメントLED制御

 お次はこれ。

青色7セグメントLEDシリアルドライバモジュール 完成品
データシート

7セグLEDをシリアル通信(SPI通信)で点灯してみたい。

Raspberry Piで秋月の7セグLEDシリアルドライバを使用する

このページを参考にした。5V接続。

サンプルコードコピペしただけでいとも簡単に動いた。しかも表示がラッチされる(プログラムを終了しても点灯状態が維持される)。素晴らしい。そしてモジュールってすごい楽。しかし楽な反面、SPI通信の仕組みについてはあまり勉強にならなかった。

Raspberry Pi GPIOを使用したSPI通信(温度センサ)

SPI通信の標準モード接続はこれ。ここによると、ラズパイのピン数だと2スレーブまでしか制御できないことになる。しかし、デイジーチェーン接続を使うと、より多くのデバイスを接続できる。

SPIデバイスのデイジーチェーン接続

と思いきや、このデイジーチェーン接続は、ところてんの様に各スレーブ間でデータが押し出されていく形式。つまり、各スレーブを完全に独自に制御できるわけではないということ。各スレーブから順々にデータを取り出していくことや、順々にデータを渡していく方式に使えそう。それ以外の複数デバイス制御には、任意のアドレスを指定できるためSPI通信ではなくI2C通信のほうが適していそうだ。

ちなみにこれ、表示がラッチされるが、GPIO1ピン16mAの電流制限はよいのだろうか。データシート上は45mAとなっているが。。と、いうことは、ナマの7セグモジュールをつなげてはだめで、電流制限抵抗が必要だったかもしれない。あるいはGPIOとは別の5V電源を用意するか。ラズパイはUSBから電流を供給されているのだから、GPIOピンの制限によらない電流供給も可能なように見えるが。それが1番ピンのことなのだろうか?

Raspberry PiのGPIOピンの電気的仕様

ここによると、3.3Vと5Vのピンは大きな電流を供給可能なようだ。よかった。

ラズパイとラズピコで分電盤センサを作成(14)

回路の実装図作成に取り掛かろうと思ったが、ここで一つ寄り道。 ADCへの入力前に交流電圧に対して直流バイアスをかける手段として、オペアンプを使う方法が出てきた。 アナデジ太郎の回路設計 というか、バイアスをかけたい場合、この方法の方がメジャー・・? と思ったのだが、オペアンプは以...