workshop Nak
HOME 製品一覧 書籍案内 ご利用案内 お問い合わせフォーム ブログ 更新履歴
www.wsnak.com
WSN176 I2C 16ビット I/Oエクスパンダ




背面


販売中

  • I2C接続でデジタルI/Oポートを16ビット拡張するボードです。
  • 標準的なI2C制御ですので、I2Cマスタとして作動すれば、ホスト側のCPUの種類は問いません(PIC、AVR、H8などI2Cマスタとして作動するものなら制御可)。
  • ブレッドボードには対応していません。ブレッドボードには#186をご使用ください。
  • 新しい基板に移行しました。 WSN176AWSN186A

【主な仕様】

【関連、類似品】

【ドキュメント】

基板レイアウト

この図には描かれていますが、 パワー・オン・リセット用のC3、D1は通常は実装不要です(写真参照)。
ピン・ヘッダやフラット・ケーブル・コネクタを使ってI/O信号を取り出せます。

MCP23017ははんだ付け面に実装します。

I2Cアドレスはジャンパで変更できます。

I2Cコネクタ結線
 1. GND
 2: VCC
 3. SCL
 4: SDA

I2Cアドレス設定用のジャンパJP1〜JP3はショートしたものが"L"レベル("0")になります。JP1がLSB、JP3がMSB側です。全部ショートすると"0"、全部オープンの場合は"7"になります。アドレスの上位はMCP23017は0x20に固定ですので、ジャンパで設定できるアドレスとしては、0x20〜0x27の8通りになります
C言語プログラム ホスト(マスタ)例 プログラム例

"I2CStart()"、"I2CStop"は順にスタート・コンディション、ストップ・コンディションを発行する関数、"I2CWrite()"は1バイト マスタ送信する関数とします。初期化などは省略しています。

#176のアドレスはジャンパJP1〜JP3をすべてショートして0x20に設定しているものとします。この場合、コントロール・バイト(R/W = "W")の値は0x40となります。

  // GPA0〜GPA7の全ポートを出力ポートに設定して
  // オール"1"、オール"0"を順に出力する例

  // GPA0〜GPA7の全ポートを出力ポートに設定
  I2CStart(0);      // スタート・コンディション発行
  I2CWrite(0x40);     // CB(W) adrs=0x20
  I2CWrite(0x00);     // reg-adrs IODIRA選択
  I2CWrite(0x00);     // 設定値 0x00
  I2CStop();       // ストップ・コンディション発行

  // GPA0〜GPA7の全ポートに"1"を出力
  I2CStart(0);      // スタート・コンディション発行
  I2CWrite(0x40);     // CB(W) adrs=0x20
  I2CWrite(0x12);     // reg-adrs GPIOA選択
  I2CWrite(0xFF);     // 設定値 0xFF
  I2CStop();       // ストップ・コンディション発行

  // 続いてGPA0〜GPA7の全ポートに"0"を出力
  I2CStart(0);      // スタート・コンディション発行
  I2CWrite(0x40);     // CB(W) adrs=0x20
  I2CWrite(0x12);     // reg-adrs GPIOA選択
  I2CWrite(0x00);     // 設定値 0x00
  I2CStop();       // ストップ・コンディション発行

また、#146 SIO-I2Cブリッジを使ってパソコンのターミナル・ソフト(windowsハイパーターミナルなど)から操作することもできます。この場合のコマンド文字列は、順に次のようになります。ただし、[Enter]はEnterキーの入力を表しています。また、#146からの応答メッセージは省略しています。

 s0 w40 w00 w00 p[Enter]        GPAの全ポートを出力ポートに設定

 s0 w40 w12 wFF p[Enter]        GPAの全ポートにオール"1"を出力

 s0 w40 w12 w00 p[Enter]        GPAの全ポートにオール"0"を出力

#146 SIO-I2Cシリアル・コマンド 一覧
s0 スタート・コンディション発行  
s1 リピート・スタート・コンディション発行  
p ストップ・コンディション発行  
wXX バイト・ライト XXは16進2桁の文字、ACK/NAKの応答あり
r0 バイト・リード(ACK応答) リード・データの応答あり
r1 バイト・リード(NOACK応答) リード・データの応答あり
コマンドは、例のようにスペースで区切って複数を続けて送信することも、"s0[Enter]"のように1つずつ送信することもできます。ただし、文字バッファの制限により、1回の文字列([Enter]まで)の文字数は、38文字を超えることはできません。

FED Wiz-Cのサンプル・ソース・ファイル
#146でデバッグに使用した実際のプログラム(xxx_User.cのみ)です。1秒ディレイした後にGPA0〜GPA3に接続した4個のLEDを200ms毎に2進数で点灯させます(0000〜1111)。このプログラムでは書籍「マイコンの1線2線3線インターフェース活用入門」で作成したI2CドライバをWiz-C(Ver.14)用に変更して使用しています。

146t176.c.s-jis.zip (圧縮するまでもありませんが、直接txtファイルが参照できないので圧縮してあります)

PIC、H8のドライバ、アプリのソースファイル(書籍掲載のもの)などはこちらからダウンロードできます。→ソースファイルDL

AVRのI2Cマスタ プログラム (07/08/13)
ATtiny2313(#179基板使用)のI2Cマスタのアセンブリ言語のサンプルを掲載しました。

AVRアセンブラのI2Cプログラム・サンプル

その他
RESET端子を"L"レベル→"H"レベルに設定すると、コントローラはリセットされ、GPA、GPBは入力ポートに設定されます。また、IOCON.BANK=0に設定され、レジスタ・アドレスは「連続」にマッピングされます。

MCP23017にはパワー・オン・リセット回路が内蔵されているため、D1、C3は実装不要ですが、リセットがかかりにくい場合はD1、C3を実装することができます。
この場合、リセット解除までの時間が延びるため、ホスト側でMCP23017のリセット解除前に通信しようとしても、通信できません(ACKが返れば正常に起動しています)。

I2CとSPIとは?

【使用例】

【ご注意】

【プリント基板、部品販売】

販売中

ID 商品名
在庫
単価
数 量 説 明
P176 #176 I2C 16ビット I/Oエクスパンダ プリント基板 2 160 基板のみ 在庫限り I2C専用、SPI非対応
P176A #176A I2C/SPI 16ビット I/Oエクスパンダ プリント基板 200 基板のみ
C030 I/Oエクスパンダ(I2C) MCP23017(SOIC) × 300 基板と同時購入に限ります

販売品についてのご注意
「完成品」や「部品一式」などの記述がないものは、プリント基板(部品の実装されていない生基板)のみの販売です。掲載されているもの以外の部品はご自分で別途ご用意ください。
なお、別見積もりで部品一式や完成品などの販売も可能ですので、お問い合わせください。また、キット、完成品は株式会社エムアイティでも取り扱いがありますので、そちらもご利用いただけます。
お支払い方法について
銀行振込(楽天銀行、三井住友銀行、ゆうちょ銀行)、郵便振替のいずれか。お支払いは前払いでお願いいたします。
発送、送料について
送料(A) クロネコDM便/クロネコメール便(速達) 100円/200円 下記説明参照
送料(B) 郵便小包 レターパック 400円
プリント基板のみや少量の部品の場合の送料は(A)か(B)をお選びいただけます。基板枚数が多いまたは部品量が多い場合(自動判定)は(B)郵便レターパックのみになります。選択可能なときは精算のページで指定できます。
クロネコDM便、クロネコメール便(速達)、レターパックともポスト投函となります(受け取りの際の印鑑、サインは不要)。
通常、レターパックは出荷日の翌日、クロネコDM便は距離により出荷日を含めて 3〜4日、クロネコメール便(速達)は距離により出荷日を含めて 2〜3日で到着の予定です。


workshop Nak
HOME 製品一覧 書籍案内 ブログ ページの先頭
www.wsnak.com