最終更新日:2023/3/24
※2023年3月24日 I2CLCD1602 lcd駆動用のボードは問題があることが判りました。
IO Expanderの定義ですが、
広義ではコンピュータの1つのポートに複数のデバイスを接続できるようにするコンピュータハードウェアです。
東芝のChip:TC35894などは、I2Cのポート1つで、GPIOだけでなくキーパッド、LED制御、タイマーの機能拡張を実現します。しかしここでは、
狭義として、I2C乃至はSPIでGPIOを拡張する
ものを対象としたいと思います。マイコンは限られたGPIOを有していますが、LCDやLEDarrayをドライブする場合は相当数のGPIOが必要になったりします。幸いに表示器ユニットとして外部IOはI2CやSPI或いは専用のポートとしてまとまっていますが。
PLCのIOとしてはまとまったIO点数が必要です。その意味で今回のIO Expanderの調査は意味があると考えています。
I2Cの場合、同じバス上にIDの異なるchip/moduleを増設可能です。IDは100ぐらいは用意出来るので可成りの拡張性はありますが、バスが100kHzが基本なのでデータ転送にネックが出るかもしれません。
SPIの場合はChipSelectpinがchip/module数分必要です。そのためマイコンに増設するとなると精々数個が限度となるかと思います。ただ、データ転送速度はそこそこ高速化が出来ます。10MHz程度のクロックが可能なモデルも多々あります。
ここでは現状入手可能なchipの調査及びmoduleの調査をして置きます。今回の調査をModbusTCPボードに組み入れたいと考えています。
bus | Model | メーカ | 参考価格 | IO数 | 備考 |
I2C | PCA9535HFHP | NXP Semiconductors | \204.2 | 16 | MAX400kHz、0.8〜3.6V |
TCA9534DWR | Texas Instruments | \138.0 | 8 | MAX400kHz、1.65〜5.5V | |
TCA6408AQPWRQ1 | Texas Instruments | \185.6 | 8 | MAX400kHz、1.65〜3.6V | |
TCA9535MRGER | Texas Instruments | \161.2 | 16 | MAX400kHz、1.65〜5.0V | |
PCAL6524EVJ | NXP Semiconductors | \250.6 | 24 | MAX1MHz、0.8〜3.6V | |
PI4IOE5V9554ALEX | Diodes Incorporated | \150.8 | 8 | MAX400kHz、2.3〜5.5V | |
KTS1620EWA-TR | Kinetic Technologies | \324.8 | 24 | MAX1MHz、1.65〜5.5V | |
MCP23017T-E/SS | Microchip Technology | \146.2 | 16 | MAX10 MHz、1.8〜5.5V | |
SX1509BIULTRT | Semtech | \273.8 | 16 | MAX2 MHz、3.6V | |
PCA9535ECDTR2G | ON Semiconductor | \239.0 | 16 | MAX1MHz、1.65〜5.5V | |
MAX7310AUE+ | Maxim Integrated | \430.4 | 8 | MAX400kHz、2.3〜5.5V | |
SPI | MCP23S17T-E/SS | Microchip Technology | \153.1 | 16 | MAX10 MHz、1.8〜5.5V |
XRA1402IG16TR-F | MaxLinear | \204.2 | 8 | MAX26MHz、1.65〜3.6V | |
20-668-0030 | DIGI | \580 | 8 | MAX40MHz、3〜3.6V |
16ioのモデルがリーズナブルです。I2Cではデータレートがちょっと気になりますが、拡張のし易さは在処と思います。
Microchip社のモデルにはDIPタイプがありますが、SMDが一般です。BGAのモデルもありますが、扱いが大変です。Chipのままでは使用感を求めるのは難しいため、実際に購入できるmoduleをリストアップして置きます。
現実問題として入手出来るIO ExpandBoardは少ないと思います。
ただ、LCD用のドライブボードは容易に入手出来ます。
写真 | コメント | |
@ |
![]() |
electronics-lab社のC042というボードです。使用chipはMCP23S17です。 SPI接続のモジュールボードは可成り珍しいです。 価格不明 |
A |
![]() |
ks0108 i2cで検索するとヒットする Lcd 12864 アダプタモジュールです。 使用しているチップはMCP23017です。 |
B |
![]() |
高価なボードですが確実に入手出来ます。 使用しているチップはMCP23017です。 |
C |
![]() |
amazonでも扱っているようです。 使用しているチップはMCP23017です。 |
D |
![]() |
CJMCU-2317として入手可能なボードです。 使用しているチップはMCP23017ですが、基板自体はchipがMCP23S17ならSPI接続出来るようです。 |
E |
![]() |
スイッチサイエンスからでも入手出来ます。 ただ、使いにくそう 使用しているチップはSX1589です。 |
F |
![]() |
スイッチサイエンス社のオリジナルボードで入手性は良いかと思います。 NXP社のPCAL9555APWを搭載しています。 |
G |
![]() |
スイッチサイエンス社のオリジナルボードで入手性は良いかと思います。 MCP23017を搭載しています。 ラズベリーパイ用に設計されており独特な使い方を想定しているみたいです。 |
H |
![]() |
CJMCU-8575というボードです。入手性は?です。 |
I |
![]() |
搭載しているchipはPCF-8574です。 IDをDPSWで変更出来るようにしているため勝手は良さそうです。 |
J |
![]() |
LCD1602 lcd駆動用に専用化されたPCF8574搭載のボード とても安価に販売されているようです。50円以下 |
K |
![]() |
LCD1602とLCD1604をこの一枚のドライバボードでカバーできます。また、単にMCP23017を採用したExpandBoardとして安価で入手しやすいボードとなっています。 |
2023年3月24日 I2CLCD1602 lcd駆動用のボードは問題があることが判りました。
I2CLCD1602 lcd駆動用のボードの回路図を先人が起こしていました。これによると単純なExpander Moduleでは無い物が存在することが判りました。
これによるとPCF8574のP3が直接外部端子に出ているわけでは無いという事が判りました。
XC3706 I2C Port Expander Module for LCDsとして提供されているManualのPinアサインを鵜呑みにしていました。安価なモジュールの流用は難しいですね。もっと情報公開して欲しいです。
LCD1604用の I2C Port Expander ModuleのPinアサインがボードの裏側に書かれていました。
PA0ポートが外部に出ていないことが判りました。PB0..7は使えそうですが。専用化されているので致し方無しですね。
免責事項
本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。
商標・登録商標
Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。