Raspberry Piから75のデジタル出力信号を出力できるようにしたいと思います。ただし、GPIOピンは26個しかありません。1秒以内であれば、正確なタイミングは重要ではありません。すべての信号を同時にオンまたはオフにする必要があるため、チャーリープレックスは機能しません。
USBで接続された別のモジュールでこのようなことが可能になると思いますが、既存のハードウェアを使用してこれを行う簡単な方法があるかどうか疑問に思っていましたか?
Raspberry Piから75のデジタル出力信号を出力できるようにしたいと思います。ただし、GPIOピンは26個しかありません。1秒以内であれば、正確なタイミングは重要ではありません。すべての信号を同時にオンまたはオフにする必要があるため、チャーリープレックスは機能しません。
USBで接続された別のモジュールでこのようなことが可能になると思いますが、既存のハードウェアを使用してこれを行う簡単な方法があるかどうか疑問に思っていましたか?
回答:
I2Cインターフェイスを介して接続されたいくつかのMCP23008チップを使用して、最大64個の追加のGPIOポートを拡張できます。それぞれ8つのGPIOが追加され、最大8つがI2Cを介して接続できます。75が必要なので、16個のGPIOポートを備えたMCP23008の兄貴であるMCP23017を使用すると思います。アドレスが重複しているため、I2Cバスの8の制限が両方に適用されるため、両方を混在させて128を超えることはできません。
I2C-Busに簡単にアクセスするには、Quick2WireのI2C-Python-APIを使用できます。Quick2Wireには、チップに関する投稿もあります。
Raspberry Piの「コンピュートモジュール」が利用可能になり、BCM2835のGPIOピンを120個すべて提供します(自分で作業を簡単にしたい場合は対応する開発ボード)。しかし、それを使用したいかどうかに影響を与える可能性のある他のものはありません...
私はこれが非常に古い投稿であることを知っていますが、複数のgpioピンにアクセスする方法を検索するときにGoogleで最初に見つけるものです...そして結果には最も簡単なオプションである可能性のある新しい機能が含まれていません:
他の検索者にとって、この新しいソフトウェアはあなたが探しているものかもしれません:
sudo apt install usbbootgui
(https://www.raspberrypi.org/blog/gpio-expander/で詳細に説明されています)
USB経由で複数のパイのGPIOにアクセスできます。使用しているUSBポートの数に制限があると思います。
私はそれを使用して、古いゲームカートリッジをダンプするepromリーダーを作成します。(これが私がこれを探していた理由です)
シフトレジスタを使用します。https://www.sparkfun.com/products/10680安価であり、好きなだけ直列に配置できます。出力イネーブル/ラッチメカニズムを備えているものもあります。これにより、トライステートに移行し、同時にレベルをシフトできます。