■ PCF8574 I2Cバス 8ビット 双方向 I/Oエキスパンダ ■


 I2Cバスの2本の信号線を使用して、8つのI/Oポートを拡張するICです。
 2.5V〜6Vで動作し、入力には100μAのプルアップも搭載されているので、マイコンのポートピンが足りないときや、外部にスイッチやLEDを増設する際に重宝します。
 ポートを出力に設定すると、[H]出力では100μAのドライブ能力しかありませんが、[L](シンク)電流はポートあたり25mAあるので、LEDを直接駆動できます。
 デバイスの設計がうまくできていて、ポートの入出力を切り替えるためのコマンドが必要ないため、入力も出力も簡単なI2C通信で行えます。 (詳細は日本語データ・シートを参照)
 スレーブ・アドレスを8つから選択できるので、同じI2Cバスに8個のPCF8574を接続できます。

  ○ 動作電源電圧2.5V〜6V。
  ○ 低スタンバイ電流。(標準 2.5μA)
  ○ 80mAの総パッケージ引き込み(シンク)能力。
  ○ 100kHzのI2Cバス・インターフェース。
  ○ オープン・ドレインの割り込み出力(/INT)。
  ○ 3つのアドレスピンで、8つのスレーブ・アドレスを選択可能。


PCF8574の日本語データ・シートが見つからないので、私的に翻訳してあります。
NXP_PCF8574_日本語データ・シート 原本 PCF8574/74A
 
個人で使用するために翻訳した物を掲載しておりますので、翻訳間違いや誤字による、
いかなる損害にも責任を負いません。



外部スイッチの増設テスト
 
・以前に設計製作した展示用のゲーム装置に仕様追加の依頼があり、押しボタンスイッチの増設が
 必要になったので、PCF8574を使用したスイッチボックスを製作しました。

・ゲーム装置本体の大幅な改造を無くすため、本体に付けてある2つのスイッチのポートをI2Cの
 SCLとSDAに割り当てて、USBコネクターとUSBケーブルを流用して4つのスイッチを増設します。

・以下は、事前にテストするために、AVR & BASCOM-AVR トレーニング・ボードに接続して
 制御した情報です。

回 路 図  PDF版 PCF8574_Ext_SW_Cir.pdf
部品配置図  PDF版 PCF8574_Ext_SW_Pcb.pdf
 
   注意! この図面を使用した、いかなる損害にも責任を負いません。

 
・PCF8574との通信は、書き込みと読み出しの短いサブルーチンを呼び出すだけです。
・PCF8574の割り込み出力(/INT)を使用すると入力処理が簡単になりますが、今回はUSBケーブルを
 流用したため、ポートを常時スキャンする仕様です。

・ポートの情報がバイナリー値でLCDに表示され、外部スイッチが押されるとスイッチの情報が
 表示されます。
・今回の回路にはLEDを付けてありませんが、テスト・プログラムではスイッチが押された上位ビットの
 LEDを点灯するようになっています。

プログラム  テキスト形式 ソースファイル  PCF8574_Ext_SW01.TXT
 BASCOM-AVR用 ソースファイル  PCF8574_Ext_SW01.bas
  
注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。
       (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)




TAKACHI
TWN11-5-22W






PCF8574搭載モジュールのテスト
 
Amazonや中国通販(AliExpress)で入手できる、PCF8574 I/O拡張モジュール(完成基板)の
 テストです。

・I2Cバスのプルアップ抵抗器やスレーブアドレス選択用ジャンパーピンも搭載されているので、
 電源とマイコンから2つのポートを接続するだけで、8個のI/Oポートが簡単に拡張できます。
・[INT]ピンも使用できます。 ([INT]ピンのプルアップはマイコン側で行う必要があります)
・このモジュールには電源やI2C信号の出力も付いているので、同じモジュールを連結して
 ポートを増やすこともできます。
 (スレーブアドレスのA0,A1,A2は、それぞれ選択を変えて下さい)

・このテスト回路では、4つのスイッチと4個のLEDを接続して動作のテストを行っています。
・テストは当ページに記載のAVR & BASCOM-AVR トレーニング・ボードを使用しています。

回 路 図  PDF版 PCF8574_Module_Cir.pdf
 
   注意! この図面を使用した、いかなる損害にも責任を負いません。

 
・上記の「外部スイッチの増設テスト」では、I2C通信のみでPCF8574を制御しています。
 このモジュールでも同じプログラムが使用できます。
・さらに、下記のプログラムでは、[/INT]ピンを使用してスイッチの状態を検出しています。

・PCF8574との通信は、書き込みと読み出しの短いサブルーチンを呼び出すだけです。
・スレーブアドレスを変更したり、モジュールを増やしてアドレスを割り振る場合は、サブルーチンを
 呼び出す前に下記の行でスレーブアドレスを指定してから呼び出して下さい。
 Const Pcf8574adr = &H40  'PCF8574のスレーブ・アドレスを選択。
  (&H40, &H42, &H44, &H46, &H48, &H4A, &H4C, &H4E)

・スイッチが押されると、ポートの情報をバイナリー値でLCDに表示し、押されたスイッチの
 情報がLCDに表示されて対応するLEDが点灯します。

プログラム  テキスト形式 ソースファイル  PCF8574_Module01.TXT
 BASCOM-AVR用 ソースファイル  PCF8574_Module01.bas
  
注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。
       (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)










PCF8574 I2C LCD アダプターのテスト
 
Amazonや中国通販(AliExpress)で入手できる、PCF8574 I2C LCD アダプター(完成基板)の
 テストです。

・秋月電子のACM1602K-NLW-BBW等の、16ピンで横1列のLCDモジュールの裏面に、直接
 ハンダ付けで実装できます。
・20文字4行のACM2004D-NLW-BBW等も接続できます。
 (ワイヤー配線を行えば、14ピンで2列のLCDモジュールにも接続できます)

・I2Cバスのプルアップ抵抗器やスレーブアドレス選択用のハンダ・ジャンパーも搭載されているので、
 電源とマイコンから2つのポートを接続するだけで、LCDの表示が可能です。

・アダプターのI2CアドレスA0,A1,A2を変えることで、同じI2Cバス上に8台までLCDを接続することも
 可能です。
 (スレーブアドレスのA0,A1,A2は、それぞれのアダプターで選択を変えて下さい)
 (並列接続した際に、ボード上のI2Cバスのプルアップ抵抗値が、2KΩ程度より低くならないように
  注意して下さい)
・LCDによってバックライトLEDの電流制限抵抗器が必要な場合は、LEDのジャンパーピンを外して
 抵抗器を取り付けます。

・テストはArduinoボードを使用していますが、各種AVRマイコン回路に接続できます。

回 路 図  PDF版 PCF8574_I2C_LCD_Cir.pdf
 
   注意! この図面を使用した、いかなる損害にも責任を負いません。

 
・接続するLCDが1台の場合は、 「PCF8574 I2C LCD アダプターの設定」ルーチンをそのまま
 使用可能です。

・2台以上のLCDを使用する場合や、スレーブアドレスが他のI2Cデバイスと重複する場合は、
 「Pcf8574_lcd = &H4E」行でアドレスを指定して下さい。
  (&H40, &H42, &H44, &H46, &H48, &H4A, &H4C, &H4E)
・同時に、それぞれのスレーブアドレスで「Initlcd」の初期化を実行して下さい。
・各LCDの表示命令の前に「Pcf8574_lcd = &H4E」行でアドレスを指定して、表示するLCDを
 選択して下さい。

・I2Cバスは、ポートピンを自由に選択できるソフトウェアI2Cと、AVRの専用ピンを使用する
 ハードウェアTWIが選択できます。
・「Const I2c_select = 1」行で、0:ソフトウェアI2C と 1:TWI で指定します。
・ソフトウェアI2Cの場合は、使用するSCLとSDAピンを指定して下さい。
・ハードウェアTWIの場合は、各AVRの専用ピン名を記述して下さい。

・LCDは、16文字2行でも20文字4行でも同じ設定で可能です。

・バックライトを制御する場合は、変数「Backlight = 1」で(0:消灯, 1:点灯)を指定した後に、
 「Locate 1 , 1」などのダミーの命令を実行して下さい。

・ATtinyチップに搭載されているUSIを使用する場合は、別途USI用のプログラムを参照して下さい。
・XMEGA・XTINYチップを使用する場合は、別途XMEGA・XTINY用のプログラムを参照して下さい。

・[LCD_I2C_PCF8574.lib] ライブラリを、
 C:\Program Files\MCS Electronics\BASCOM-AVR\LIB\ に保存してからコンパイルして下さい。


プログラム  テキスト形式 ソースファイル  PCF8574_Adapter_Test.TXT
 BASCOM-AVR用 ソースファイル  PCF8574_Adapter_Test.bas
 複数LCDのテスト。
プログラム  テキスト形式 ソースファイル  PCF8574_Adapter_Multi.TXT
 BASCOM-AVR用 ソースファイル  PCF8574_Adapter_Multi.bas
 USIのテスト。
プログラム  テキスト形式 ソースファイル  PCF8574_Adapter_Test_USI.TXT
 BASCOM用 ソースファイル  PCF8574_Adapter_Test_USI.bas
 XMEGA用のテスト。(BASCOM-AVR(製品版)が必要です)
プログラム  テキスト形式 ソースファイル  PCF8574_Adapter_Test_XMega.TXT
 BASCOM用 ソースファイル  PCF8574_Adapter_Test_XMega.bas
 XTINY 用のテスト。(BASCOM-AVR(製品版)とXTINY Add Onが必要です)
プログラム  テキスト形式 ソースファイル  PCF8574_Adapter_Test_XTiny.TXT
 BASCOM用 ソースファイル  PCF8574_Adapter_Test_XTiny.bas

注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。
       (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)




◎ この基板とLCDを、実費頒布しております。
 
  基板・部品の頒布室



   電子工作の部屋 Top へ 前のページへ戻る