| ホーム |     私の電子工作作品集

062. ロジック IC チェッカー

[ 初公開日:2013年6月17日 ]

 74シリーズ、4000シリーズ、4500シリーズのC−MOS ICに対応した、汎用ロジック IC チェッカーです。
 74シリーズのスタンダード・LSなどの、一部のTTLに対応できるものもあります。

 この作品は、サイト "黒猫電脳研究室" で紹介されていたものに触発され、ぜひ私も、自分なりのオリジナルなものを作ってみたくて 作製をしたものです。


 "黒猫電脳研究室" では、H8/3052F CPUおよび C を使用して作製されていますが、ここでは3個のPIC (PIC16F628A, PIC16F877A, PIC18F452) および アセンブラを使用しています。 したがって、ハードウェア構成、ソフトウェアともに、"黒猫電脳研究室" とはまったく異なったものになっています。

【 お知らせ 】 ( 2018/4/18 ) ( 2018/5/6 )

 最近、このページをご覧になっていただける方々が急増してきました。 作者の私にとってこんなに嬉しいことはなく、大きな励みになっています。 本当にありがとうございます。 そんな方々に、心を込めてのお知らせです。

 本機 "ロジック IC チェッカー" のリメイク版を、近日中に公開する予定です。 本機と大きく異なる点は表示を7セグLEDからLCDに変更をした点で、外観も大きく変更をしました。 乞う ご期待 !!

 先にお知らせをしたように "180. ロジック IC チェッカー II" の準備が整い、ようやく公開することができました。 このページで紹介をしている "ロジック IC チェッカー" の 12年ぶりのリメイク版で、最大の特徴は外観を大きく変更した点でまったくの別物となっています。 勿論、内部的にも変更をした点は多く、ぜひ新しいページの "プログラム" の項をご覧になって下さい。

■ 回路図 ■

| 回路図 (LogicIC_Checker.CE3) | ページトップ |

< 回路参考 >

■ アダプタ回路図 ■

 特殊電源ピン・ソケットアダプタについての説明や使用方法については、特殊電源ピン・ソケットアダプタ の項を参照のこと。

| 回路図 (SpcSocket.CE3) | ページトップ |

■ 外観、全体の様子 ■

下側基板: コントロール部 上側基板: スイッチ操作・LED表示部
右側面から見る 後側面から見る
左側面から見る 前側面から見る

| ページトップ |

■ 機能概要 ■

 この簡易ロジックICチェッカ (Logic IC Checker)は、「各種スイッチ入力, 7セグ LED 表示部」 (以下、U1という。)、「各種ロジックICチェック, 結果表示部」 (以下、U2という。)、および 「各種ロジックICチェック補助制御部」 (以下、U3と いう。) の三部からなっている。


◇◇◇ U1:各種スイッチ入力, 7セグ LED 表示部 の機能 ◇◇◇
  • U1では、電源投入直後に約2秒間、ファームウェアのバージョンを7セグLEDに表 示する。その後、0000を7セグLEDに表示し、U2からU4経由でスイッチ入力イ ネーブル(j0: from U4) 信号を受け取ると待機状態になり、U1は7セグLEDをブリン ク表示とし各スイッチ入力を受け付ける。

  • デバイス番号の指定は、SW1: 1 位 〜 SW4: 1000 位の各桁スイッチおよび udsw: UP/ DOWN スイッチで行い、74シリーズでは74を除いた数値を、前側を0の右づめで指定 する(74138→0138)。4000・4500シリーズではそのまま4桁を指定する。

  • その後、setsw: SET スイッチを押すと、デバイス番号をU2に送信(j1: to U2)し、 U2では登録デバイス番号かどうかをチェックして、その結果をOK/NG LED表示、 およびブザー音で知らせる。

  • デバイス番号がNGであった場合には、続いて7セグLEDをブリンク表示し、正しい デバイス番号の入力を促す。なおこの状態では cksw: CHECK スイッチを受け付けない。

  • デバイス番号がOKであった場合には、7セグLEDがブリンク表示から点灯しきりと なり、指定されたデバイス番号が登録されていることを知らせる。

  • その次に、cksw: CHECK スイッチを押すと、チェック開始指令出力(j4: to U2)をU2 に送信し、各デバイス別のチェックが開始される。チェック中は、各スイッチ入力を受け 付けなくなる。また、チェック結果は同様にOK/NG LED表示、およびブザー音で 知らせる。

  • U2でのチェックが終了すると、U2からU4経由でのスイッチ入力イネーブル(j0: from U4) 信号が再び送られ、U1では各スイッチ入力を受け付ける。

  • 各スイッチの機能と操作法

    スイッチ入力イネーブル(j0: from U4) 信号が有効な場合のみ、次の各スイッチ入力を 受け付ける。

    • SW1: 1 位の桁スイッチ

      4桁のデバイス番号の内、 1 位の桁を指定する場合に用いる。
      1回押すごとに1ずつカウントアップされ、対応する 1 位の桁の7セグLED(赤)に表 示される。なお、このときに udsw: UP/DOWN スイッチと併用した場合は、1ずつカウント ダウンされる。 ( 0, 1, …… 8, 9, 0, 1, …… / 9, 8, …… 2, 1, 0, 9, …… )

    • SW2: 10 位の桁スイッチ

      4桁のデバイス番号の内、10 位の桁を指定する場合に用いる。
      1回押すごとに1ずつカウントアップされ、対応する 10 位の桁の7セグLED(赤)に 表示される。なお、このときに udsw: UP/DOWN スイッチと併用した場合は、1ずつカウン トダウンされる。 ( 0, 1, …… 8, 9, 0, 1, …… / 9, 8, …… 2, 1, 0, 9, …… )

    • SW3: 100 位の桁スイッチ

      4桁のデバイス番号の内、100 位の桁を指定する場合に用いる。
      1回押すごとに1ずつカウントアップされ、対応する 100 位の桁の7セグLED(赤)に 表示される。なお、このときに udsw: UP/DOWN スイッチと併用した場合は、1ずつカウン トダウンされる。 ( 0, 1, …… 8, 9, 0, 1, …… / 9, 8, …… 2, 1, 0, 9, …… )

    • SW4: 1000 位の桁スイッチ

      4桁のデバイス番号の内、1000 位の桁を指定する場合に用いる。
      1回押すごとに1ずつカウントアップされ、対応する 1000 位の桁の7セグLED(赤) に表示される。なお、このときに udsw: UP/DOWN スイッチと併用した場合は、1ずつカウ ントダウンされる。 ( 0, 1, …… 8, 9, 0, 1, …… / 9, 8, …… 2, 1, 0, 9, …… )

    • udsw: UP/DOWN/BREAK スイッチ

      SW1: 1 位の桁 〜 SW4: 1000 位の桁スイッチとともに使用し、udsw: UP/DOWN スイッチ を押しながら各桁スイッチを押した場合には、各桁が1ずつカウントダウンされる。
      また、被試験ICのデバイスチェック時で休止(PAUSE)状態になった時に、このスイッチ を押下することでデバイスチェックを中断することができる。

    • setsw: SET スイッチ

      デバイス番号をU2に送信(j1: to U2)する。

        "スタートビット(1) + 1000 位(4) + 100 位(4) + 10 位(4) + 1 位(4) + ストップビット(1)"

      なお、このときに udsw: UP/DOWN スイッチと併用した場合は、デバイス番号の送信は行 われず、1 位の桁 〜 1000 位の桁のすべての7セグLED(赤) が0000にクリアされる。

    • cksw: CHECK スイッチ

      チェック開始指令出力(j4: to U2)を有効とし、U2に送信する。

    • pausw: PAUSE スイッチ

      このスイッチだけはU2で管理しており、電源投入時に PAUSE スイッチを押しながら電 源ONした場合に以降有効となり、デバイス番号チェック時には、4桁のデバイス番号を ブザー音の数で知らせたり、また被試験ICのデバイスチェック時には、各チェックデータ ごとに結果表示した後、休止(PAUSE)状態になったのをこのスイッチの押下で解除する。

  • 7セグLEDの機能

    • 通常は SW1: 1 位の桁 〜 SW4: 1000 位の各桁スイッチで指定された、デバイス番号を4 桁で表示する。各桁スイッチで入力中、または setsw: SET スイッチ押下でのデバイス番号 チェック結果がNGだった場合には、ブリンク表示となりデバイス番号がまだ確定できてい ない状態を表す。

    • またチェック結果がOKだった場合には、ブリンク表示から点灯しきりとなりデバイス番 号が確定状態であることを表す。なお、cksw: CHECK スイッチ押下でのデバイスチェックの 終了後もこの状態は持続する。いったん各桁スイッチのどれかを押下すると、確定状態が解 除され7セグLEDは再びブリンク表示となる。

    • 被試験ICのデバイスチェック中でポーズ指定がされている場合には、4桁の7セグLE Dの内下2桁で、被試験ICごとに指定された複数のチェックデータの内、何個目のチェッ クが行われたかを知らせる。また4桁の内上1桁目はこの時のチェック結果を表示し、OK の場合はaセグメントが、NGの場合はdセグメントが点灯してそれらを表示する。

◇◇◇ U2:各種ロジックICチェック, 結果表示部 の機能 ◇◇◇
  • U2では、電源投入直後にハードウェアチェックとして、まず "ピポッ" とブザー音を 出力し、次にOK(緑)、NG(赤)、PAUSE (黄) LEDが約 1.5 秒間細かく交互に点滅し て、点灯チェックを行う。その後、スイッチ入力イネーブル(j0: from U4 to U1) 信号を U1に送出して、7セグLEDをブリンク表示とし、各スイッチ入力の受け付けを可能と するように指示をする。

  • その後U2では、ひたすらU1からの、デバイス番号(j1: from U1)と その後のチェッ ク開始指令(j4: from U1) の受信を待つ。

  • やがて、U1でデバイス番号が設定され、U2に送信(j1: from U1) されてくると、 U2ではそのデバイス番号が登録されているかどうかのチェックをする。

  • その結果、該当のデバイス番号が登録されていた場合には、OK(緑)LEDを約 100m 秒間点灯後、"ポッ" とブザー音(約 100m 秒)を出力しOK表示をする。また、該当のデバ イス番号が登録されてなかった場合には、NG(赤)LEDを約 100m 秒間点灯後、"ブー" とブザー音(約 250m 秒)を出力しNG表示をする。

  • また該当のデバイス番号が登録されていた場合で特殊なICピン接続の場合等には、そ れ以外の一般のICピン接続の場合と区別をするために、OK(緑)LED点灯と"ポッ" のブザー音を3回ずつ繰り返し、ユーザの注意喚起を促している。

  • なお電源投入時に、休止解除スイッチ(PAUSE)を押しながら電源ONした場合には、受信 した4桁のデバイス番号を、結果表示後ブザー音の数で知らせる。
    (0:"ブー"音(約 250m 秒)を1個、1〜9:"ポッ"音(約 100m 秒)を数字の数個)

  • デバイス番号のチェック結果がOKだった場合には、その後のU1からのチェック開始 指令(j4: from U1) を受信すると、被試験ICのデバイスチェックを開始する。

  • 基本的なデバイスチェックはこのU2で行うが、オープンコレクタや3ステートなどの 拡張チェックがある場合には、U3に拡張チェックデータを送り、そのデータ設定を依頼 する。

  • 被試験ICごとに指定の、デバイスチェック個数のすべての結果がOKだった場合には、 "ポッ" とブザー音(約 100m 秒)出力後、OK(緑)LEDを約2秒間点滅しOK表示をする。 また、結果がNGだった場合には、"ブー" とブザー音(約 250m 秒)を出力後、NG(赤) LEDを約2秒間点滅しNG表示をする。

  • なお電源投入時に、休止解除スイッチ(PAUSE)を押しながら電源ONした場合には、デバ イスチェック個数の1個が済むごとに休止(PAUSE)状態になり、PAUSE(黄)LEDが点灯し 休止(PAUSE)中であることもあわせて表示する。またこのとき、1個ごとのチェック結果を "ポッ"、"ブー" のブザー音で知らせるとともに、U1側にもチェック結果応答(j7: to U1) を送出して知らせる。

  • 休止(PAUSE)中であるときに、休止解除スイッチ(PAUSE)を押すことによって休止(PAUSE) 状態を解除し、つぎに指定のデバイスチェックデータの実行が行われる。

  • また、この1個ごとのデバイスチェックが何個目のチェックかを知らせるために、U2 からU1へその情報を送り、U1で 7セグLED の下2桁で表示をする。

  • なお、被試験ICのデバイスチェック中は、U1へのスイッチ入力イネーブル(j0: from U4 to U1) 信号を無効としているが、OKまたはNGの結果表示をした後は、再び信号を 有効として各スイッチ入力の受け付けを可能とする。

◇◇◇ U3:各種ロジックICチェック補助制御部 の機能 ◇◇◇
  • U3では、ひたすらU2からの拡張チェックデータである、補助制御指令入力(j2: from U2) の受信を待つ。オープンコレクタや3ステートなどの拡張チェックがある場合 に送られてくる。

  • 拡張チェックデータを受信すると、U3では、そのデータをもとに指定のビットをプル アップ、またはプルダウン動作をし、終わるとU2に補助制御完了出力(j3: to U2) を送 信して完了を知らせる。

  • U2ではその補助制御完了出力(j3: to U2) を待って、被試験ICの出力が正しいかど うかを拡張チェックデータに基づいてチェックする。

| ページトップ |

■ プログラム ■

■ テーブルデータの構造 ■

U2: PIC18F452 用のプログラム(ソースファイル(LogicIC_Checker2.asm))内で使用する、テーブルデータ(IC データ ファイル (LogicIC_Table.inc)) 内には、大別して デバイス番号テーブル (dev_no_table) と、デバイスチェック・データテーブル (dev_ck_table) との2つが存在する。

デバイス番号テーブルには、基本的にロジックICの種類(74シリーズ、4000シリーズ、4500シリーズのデバイス番号)数だけのデータが必要であるが、 ワンショット発生等の一部のICについては割愛してある。

また、デバイスチェック・データテーブルについては、個々のロジックIC別に必要とするチェック・データを用意してあり、複雑な働きをするICについてはその分 チェック・データも多く必要とし、テーブル全体としては膨大なデータ量となっている。

1. デバイス番号テーブル (dev_no_table)

1データ群は5バイトから構成されており、先頭の2バイトに4桁の デバイス番号 が設定されていて、 「U1:各種スイッチ入力, 7セグ LED 表示部 の機能」 から送られてきた、スイッチ入力されたデバイス番号と比較照合するのに使用される。 比較照合は5バイト単位の全テーブルデータとの間で行なわれる。

一致デバイス番号があった場合は、以降の3バイトデータを下図のようにそれぞれのレジスタに一旦保存して、次のデバイスチェック・データの読み出しに備える。
      ( 使用例 )
      
      		dt	h'00', h'00'		;7400	Quad 2-Input NAND Gate
      		dt	h'00'
      		dt	high ic7400
      		dt	low  ic7400
      


      [ フラグ・ビットの説明 ]

    • xext: 拡張データ指定ビット

      披チェックデバイスの出力に、オープンドレイン(コレクタ)、または3ステートの機能がある場合に、その機能をチェックするために指定をする。 このフラグ指定をした場合には、次のデバイスチェック・データテーブル (dev_ck_table) のチェックデータ群の後に続けて、実際の拡張チェックデータ群の 指定をする。
      ( 使用例 )
      
      		dt	h'01', h'25'		;74125	Quad Bus Buffer Gate (with 3-state outputs)
      		dt	ext
      		dt	high ic74125
      		dt	low  ic74125
      
    • xinv: 出力反転指定ビット

      デバイスチェック・データは、基本的に披チェックデバイスの種類数だけのチェック・データが必要であるが、例えば AND Gate と NAND Gate 、 OR Gate と NOR Gate 、 XOR Gate と XNOR Gate 等では、同じ入力信号に対してその出力信号はお互いに相反しているため、入出力が同じピン配置のデバイス同士の場合には、 このフラグ指定をしておくだけで同一チェック・データを使用することができる。
      ( 使用例 )
      
      		dt	h'40', h'77'		;4077	Quad 2-Input EXCLUSIVE-NOR Gate
      		dt	inv
      		dt	high ic4077
      		dt	low  ic4077
      
    • xspc: 特殊処理指定ビット

      一部の披チェックデバイスでは、特殊なチェック動作をさせるために、次のデバイスチェック・データテーブル (dev_ck_table) 内の 特殊処理指定バイト で指定を行なう。 また、上記 xinv: 出力反転指定ビットの例のように、同一チェック・データを使用して 複数の披チェックデバイスに対応させるような場合に、 "A" というデバイスでは必要なデータ(機能)が "B" では不要とか、逆に "A" というデバイスでは 不要だったものが "B" では必要になったような場合に、まず xspc: 特殊処理指定ビット = "1" の指定をしておいて、その詳細はデバイスチェック・データテーブル内の 特殊処理指定バイトで指定をする。
      (ちなみに現在、前者には bit3: チェック続行指定bit4: 拡張データ変更(PULL-UP)指定 があり、 後者には bit5: クロックの追加指定 がある。)
      ( 使用例 )
      
      		dt	h'00', h'09'		;7409	Quad 2-Input AND Gate (O.C.)
      		dt	ext + spc
      		dt	high ic7409
      		dt	low  ic7409
      
    • xrep: 総繰り返し無指定ビット

      この汎用 "ロジック IC チェッカー" では、1つの披チェックデバイスに対して一連のチェック動作を、デフォルトでは3回繰り返し行なうようにプログラミング されている。 そして一連のチェック動作にかかる所要時間は、殆どの披チェックデバイスでは瞬時に終了してしまうので、あまり問題にはならないものが多い。 しかし一部のカウンタ IC 等では、その所要時間がちょっとしたストレスに感じる程度のものがあり、そのような場合に この xrep: 総繰り返し無指定ビット = "1" の指定をしておくと、一連のチェック動作が1回だけに変更されてその所要時間を減じることができる。(その分 信頼性が欠けるかも・・・)
      ( 使用例 )
      
      		dt	h'40', h'20'		;4020	14-Stage Ripple-Carry Binary Counter/Dividers
      		dt	rep
      		dt	high ic4020
      		dt	low  ic4020
      
    • フラグ・ビット xyyyyyy との表現の相違

      フラグ・ビットの表現について、xyyy(例. xext)では、そのフラグのビット位置を表しているのに対して、yyy(例. ext)では、そのフラグ・ビットの 取りうる値を表している。 例えば xext では 7 bit を表しているのに対して、ext では 1を左に 7 bit シフトした値、すなわち '80h' の値を表す。
      ( 例 )
      
      xext		equ	d'7'		;拡張データ指定ビット位置
      ext		equ	h'01' << xext	;拡張データ指定ビット値
      
      
2. デバイスチェック・データテーブル (dev_ck_table)

1データ群が何バイトから構成されているかは決まってなく、個々のロジックICの機能によってチェックデータが複雑に変化する、可変長データである。
  • 基礎データ (Vcc, GND, 入出力ピン割当データ)

    個々のロジックIC(デバイス)別の各ピンを、PICのどのポートのどのビットで入出力制御するかを指定( "0": 入力ピン "1": 出力ピン )する。

    ちなみに、デバイスのピン指定( "0": 入力ピン "1": 出力ピン )の意味は、例えばデバイスの入力ピンには PIC(出力)から信号を与え、 デバイスの出力ピンからは PIC(入力)に信号を与えるため、デバイスの入力ピン/出力ピンの状態を "0"/"1" で指定をすると、その値がそのまま PICの出力 "0"/入力 "1" の指定(割り当て)になる。
      
      ( 使用例 )
      
      ic7400			; Quad 2-Input NAND Gate
      			
      		dt	pin14		;ICピン数(Vcc Pin)
      		dt	b'10000000'	;RB  3, 2, 1,--,--,--,--,--  ;入出力割当
      		dt	b'01001100'	;RC 12,11,10, 9, 8, 6, 5, 4
      		dt	b'00000000'	;RD --,--,--,--,--,--,--,13
      


      [ フラグ・ビットの説明 ]
    • xatn: 注意喚起指定ビット

      先頭バイトに atten: 注意喚起指定ビット = "1" の指定をしておくと、例えば通常の対角線上の電源(Vcc, GND)ピン配置と異なって、 特殊な電源ピン配置となっているようなデバイスの場合に、デバイス番号の入力直後に、OK(緑)LED点灯と "ポッ" のブザー音を3回ずつ繰り返して、 ユーザの注意喚起を促すことが可能となる。
      ( 使用例 )
      
      ic7473		; Dual J-K Flip-Flops (with Clear)
      
      		dt	pin14x + atn	;ICピン数(特殊 Vcc Pin)    ;注意喚起指定
      		dt	b'00000000'	;RB --, 7, 6, 5, 3, 2, 1,--  ;入出力割当
      		dt	b'00011011'	;RC --,--,14,13,12,10, 9, 8
      		dt	b'10000000'	;RD CK,--,--,--,--,--,--,--
      
    • xivd: 無効指定ビット

      ある披チェックデバイスの一連のチェックデータ群の登録(作成)が、デバイスチェック・データテーブル (dev_ck_table) にあるものの、 未だ検討不足でそのまま実行するとチェックエラーを起こしてしまうような場合には、その未完成なデータ群の登録を開放しておくことはできない。 そのような場合にそのデータ群の先頭バイトに xivd: 無効指定ビット = "1" の指定をしておくと、そのデータ群は無効扱いとしてチェックが 実行されることはない。

      なお、この指定によって現在、チェックデータ群がそのような未完成状態にあることを、"ピピピピッ" というブザー音の後に、 NG(赤)LEDの点灯とともに "ブー" とブザー音を出力して、ユーザに知らせる。
      ( 使用例 )
      
      ic74192		; Synchronous Up/Down Decade Counter (Dual Clock Lines)
      
      		dt	pin16 + ivd	;ICピン数(Vcc Pin)	     ;無効指定
      		dt	b'01100000'	;RB  4, 3, 2, 1,--,--,--,--  ;入出力割当
      		dt	b'11000110'	;RC 13,12,11,10, 9, 7, 6, 5
      		dt	b'10000000'	;RD CK,--,--,--,--,--,15,14
      
    • clk7: クロック入力指定ビット

      披チェックデバイスの一連のデータ群の基礎データは4バイトで構成されており、一般的な IC の場合にはそれで十分な基礎的な情報が得られるが、 クロック入力を伴うような IC の場合には、どのピンにクロックを入力するかを決めるクロック入力ピンの割当データが必要になる。 そのような場合には まず、基礎データの RD入出力ピン割当の clk7: クロック入力指定ビット = "1" の指定をし、次に続く3バイトでクロック入力ピン割当を指定する。

      なお、ここでの clk7: クロック入力指定ビットは、クロックピンの割当指定に対して、下記 チェックデータ の3バイト目の clk7: クロック入力指定ビットは、ここで割り当てたクロックピンに、実際にクロックパルスを与えるかどうか("1" 与える/"0" 与えない)を指定する ものである。
      ( 使用例 )
      
      ic4020	;(+ rep)	; 14-Stage Ripple-Carry Binary Counter/Dividers
      
      		dt	pin16		;ICピン数(Vcc Pin)
      		dt	b'11110000'	;RB  4, 3, 2, 1,--,--,--,--  ;入出力割当
      		dt	b'11001111'	;RC 13,12,11,10, 9, 7, 6, 5
      		dt	b'10000011'	;RD CK,--,--,--,--,--,15,14
      
  • クロック入力ピン割当データ

    上記、RD入出力ピン割当の clk7: クロック入力指定ビット = "1" だった場合のみに、次図のようにクロック入力ピンの割当指定の3バイトが続く。 該当のクロック入力ピンの位置に "1" を、他の位置には "0" を指定する。
      ( 使用例 )
      
      		dt	b'00000000'	;RB  4, 3, 2, 1,--,--,--,--  ;Clock Pin
      		dt	b'00010000'	;RC 13,12,11,10, 9, 7, 6, 5
      		dt	b'00000000'	;RD --,--,--,--,--,--,15,14
      


  • チェックデータ個数, チェックデータ

    チェックデータ個数で指定した数だけの3バイトデータ塊りのデータ群が、チェックデータ01, チェックデータ02, ……, チェックデータnn と続く。

    上記の基礎データの 入出力ピン割当データ で指定したピンに対して、入力ピンにはチェックのための条件である入力信号を、 出力ピンにはチェック結果の期待値である出力信号を、それぞれ High レベルを "1"、Low レベルを "0" で指定する。

    また、入力ピンにクロックを入力するような場合には、チェックデータの3バイト目の clk7: クロック入力指定ビットに "1" を指定しておいて、上記の クロック入力ピン割当データ で指定したビットに対して、"0" を指定すれば ↑(positive edge) の、"1" を指定すれば ↓(negative edge) のクロックパルスを、デフォルトでは 1個得ることが可能となる。(複数のクロックパルスを得る場合は、下記 特殊処理指定バイト出力クロック数 を参照)
      ( 使用例 )
      
      		dt	d'15'		;チェックデータ個数
      		    :
      		    :
      		dt	b'00000000'	;チェックデータ 03	8	Q4=1
      		dt	b'00010100'	;
      		dt	b'11000000'	;bit7=1: CK 指定, Clock Pin=1: negative edge 指定
      		    :			;bit6=1: 特殊処理指定
      		    :
      


    なお、デバイス番号テーブル (dev_no_table) から取得保存したフラグバイトの xspc: 特殊処理指定ビット と、RDチェックデータの clk7: クロック入力指定ビット、および spc6: 特殊処理指定ビットとの関係は次のとおりである。


  • 特殊処理指定バイト

    上記 チェックデータ nn の RDチェックデータで spc6: 特殊処理指定ビット = "1" だった場合のみに、次図の特殊処理指定バイトが続き、 ここで特殊処理の詳細を指定する。
      ( 使用例 )
      
      		dt	b'00000001'	;bit0=1: クロック数の指定
      


      [ フラグ・ビットの説明 ]
    • bit0: クロック数の指定ビット

      披チェックデバイスの入力ピンにクロックを入力するような場合には、通常、チェックデータ の3バイト目の clk7: クロック入力指定ビット = "1" を指定するが、そのパルスの数は1個である。 殆どの場合はそれで事足りることが多いが、例えばカウンタ IC 等で一気にシーケンスを進めたいような場合には、 まず、チェックデータの3バイト目の clk7: クロック入力指定ビット = "1" とともに、spc6: 特殊処理指定ビット = "1" の指定をしておいて、 次に、特殊処理指定バイトの この bit0: クロック数の指定ビット = "1" の指定をする。 実際のクロックパルス数の指定は、さらに特殊処理指定バイトの後に続く 2バイトの 出力クロック数 で指定をする。
      ( 使用例 )
      
      		dt	b'00000000'	;チェックデータ 01
      		dt	b'01001000'	;
      		dt	b'11000000'	;bit7=1: CK 指定, Clock Pin=0: positive edge 指定
      					;bit6=1: 特殊処理指定
      		dt	b'00000001'	;bit0=1: クロック数の指定
      		dt	h'00',h'08'	;クロック数 = 8 個
      
    • bit1: クロック入力ピンの変更指定ビット

      披チェックデバイスのクロック入力ピンの割当指定がある場合には、基礎データ (Vcc, GND, 入出力ピン割当データ) に続く クロック入力ピン割当データ で行ない、初めの時点で一意的に決まってしまうのが一般的であるが、披チェックデバイスによっては、 当初に決めたクロック入力ピン条件を途中で変更して、次には他のクロック入力ピン条件でシーケンスを進めたいような場合も存在する。 そのような場合には、 通常の3バイト塊りのチェックデータで新たなクロック入力ピン割当データの指定を行い、その3バイト目の spc6: 特殊処理指定ビット = "1" の指定をしておいて、 次に続く特殊処理指定バイトの この bit1: クロック入力ピンの変更指定ビット = "1" の指定をする。
      ( 使用例 )
      
      		dt	b'10000000'	;RB  4, 3, 2, 1,--,--,--,--  ;Clock Pin
      		dt	b'00000000'	;RC 13,12,11,10, 9, 7, 6, 5
      		dt	b'01000000'	;RD --,SP,--,--,--,--,15,14
      					;bit6=1: 特殊処理指定
      		dt	b'00000010'	;bit1=1: クロック入力ピンの変更指定
      
    • bit2: 入出力ピン割当の変更指定ビット

      披チェックデバイスの種類によっては、同一ピンがコントロール条件によって、入力ピンになったり出力ピンになったりするものがある。そのようなデバイスを チェックする場合に、通常の3バイト塊りのチェックデータで新たな入出力ピン割当の指定を行い、その3バイト目の spc6: 特殊処理指定ビット = "1" の指定を しておいて、次に続く特殊処理指定バイトの この bit2: 入出力ピン割当の変更指定ビット = "1" の指定をする。
      ( 使用例 )
      
      		dt	b'00000000'	;RB  6, 5, 4, 3, 2, 1,--,--  ;入出力割当
      		dt	b'11111000'	;RC 15,14,13,12,11, 9, 8, 7
      		dt	b'01000111'	;RD --,SP,--,--,19,18,17,16
      					;bit6=1: 特殊処理指定
      		dt	b'00000100'	;bit2=1: 入出力ピン割当の変更指定
      
    • bit3: チェック続行指定ビット

      同一チェック・データを使用して複数の披チェックデバイスに対応させるような場合で、"A" というデバイスでは必要なデータが "B" では不要となるような場合には、 まず "B" の デバイス番号テーブル (dev_no_table) 内のフラグバイトで、 xspc: 特殊処理指定ビット = "1" の指定をしておく。 次に不要となるチェック・データ群の3バイト目の spc6: 特殊処理指定ビット = "1" の指定をしておいて、続く特殊処理指定バイトの この bit3: チェック続行指定ビット = "1" の指定をする。

      次の例では、3バイトデータ塊りのデータ群(チェック・データ 04)は、デバイス番号テーブル (dev_no_table) 内のフラグバイトで、特に何の断りもない ic7408 では必要なデータ群となり、xspc: 特殊処理指定ビット = "1" の指定をしてある ic7409 では不要なデータ群として扱われる。
      ( 使用例 )
      
      ic7408			; Quad 2-Input AND Gate
      ic7409	;(+ ext + spc)	; Quad 2-Input AND Gate (O.C.)
      
      		    :
      		    :
      
      		dt	b'11100000'	;チェックデータ 04
      		dt	b'11111111'	;
      		dt	b'01000001'	;bit6=1: 特殊処理指定 (+ spc: チェックをパス)	7409
      
      		dt	b'00001000'	;bit3=1: チェック続行指定			7408
      
    • bit4: 拡張データ変更(PULL-UP)指定ビット

      上記と同様、同一チェック・データを使用して複数の披チェックデバイスに対応させるような場合で、"A" というデバイスでは必要なデータが "B" では不要となる ような場合には、まず "B" の デバイス番号テーブル (dev_no_table) 内のフラグバイトで、 xspc: 特殊処理指定ビット = "1" の指定をしておく。 次に不要となるチェック・データ群の3バイト目の spc6: 特殊処理指定ビット = "1" の指定をしておいて、続く特殊処理指定バイトの この bit4: 拡張データ変更(PULL-UP)指定ビット = "1" の指定をする。

      次の例では、3バイトデータ塊りのデータ群(チェック・データ 01 自体)は、デバイス番号テーブル (dev_no_table) 内のフラグバイトで、特に何の断りもない ic7447 では必要なデータ群となり、xspc: 特殊処理指定ビット = "1" の指定をしてある ic7448 では不要なデータ群として扱われ、次に続くチェック・データ 02 以降のデータ群には何の影響も与えない。 ただし、ic7447 においてもこの場合のチェック・データ 01 は単なるダミーデータであり、次に続くチェック・データ 02 以降のデータ群をすべて、PULL-UP 機能がついた拡張チェック・データとして扱うようになる。 (ちなみに、基本のチェック・データを省略して拡張チェック・データだけを指定することはできないため。)
      ( 使用例 )
      
      ic7447			; BCD-to-7 Segment Decoder/Driver (O.C.15V)
      ic7448	;(+ inv + spc)	; BCD-to-7 Segment Decoder/Driver (2KΩ P.U.)
      
      		    :
      		    :
      
      		dt	b'00000000'	;チェックデータ 01	dummy
      		dt	b'00000000'	;
      		dt	b'01000000'	;bit6=1: 特殊処理指定 (+ spc: チェックをパス)  7448
      
      		dt	b'00010000'	;bit4=1: 拡張データ変更(PULL-UP)指定           7447
      
    • bit5: クロックの追加指定ビット

      同一チェック・データを使用して複数の披チェックデバイスに対応させるような場合で、上記とは逆に "A" というデバイスでは不要だったものが "B" では必要になった ような場合には、まず "B" の デバイス番号テーブル (dev_no_table) 内のフラグバイトで、 xspc: 特殊処理指定ビット = "1" の指定をしておく。 次に必要となるチェック・データ群の3バイト目の spc6: 特殊処理指定ビット = "1" の指定をしておいて、続く特殊処理指定バイトの この bit5: クロックの追加指定ビット = "1" の指定をする。

      次の例では、3バイトデータ塊りのデータ群(チェック・データ 01)は、デバイス番号テーブル (dev_no_table) 内のフラグバイトで、特に何の断りもない ic74160 ではそのままの機能のデータ群であり、xspc: 特殊処理指定ビット = "1" の指定をしてある ic74162 では、3バイト目に clk7: クロック入力指定ビット = "1" が 自動的に追加されたデータ群として扱われる。
      ( 使用例 )
      
      ic74160			; Syncronous Decade Counter (Direct Clear)
      ic74162 ;(+ spc)	; Syncronous Decade Counter (Synchronous Clear)
      
      		    :
      		    :
      
      		dt	b'11000000'	;チェックデータ 01	(Clear)    0  QA-D=0
      		dt	b'00001001'	;
      		dt	b'01000000'	;bit6=1: 特殊処理指定 (クロック追加はしない)	74160
      
      		dt	b'00100000'	;bit5=1: クロック追加指定 (+ spc)		74162
      
    • bit6: クロック数(2)の指定ビット

      bit0: クロック数の指定ビット では、そのクロックパルスの数は最大 65,536 個までしか指定ができない。 披チェックデバイスによっては、 より多くのクロックパルスで一気にシーケンスを進めたいような場合も存在する。 この bit6: クロック数(2)の指定ビットでは、bit0: クロック数の指定ビットと同様に 次に続く2バイトの 出力クロック数 とともに指定をするのであるが、こちらの指定ビットでは 32,768 個単位の高速クロックパルスが、 2バイトの出力クロック数で指定した数だけ発生することになる。
      ( 使用例 )
      
      		dt	b'00000000'	;チェックデータ 02	Q18=1	   262,144
      		dt	b'00010010'	;
      		dt	b'11000000'	;bit7=1: CK 指定, Clock Pin=1: negative edge 指定
      					;bit6=1: 特殊処理指定
      		dt	b'01000000'	;bit6=1: クロック数(2)の指定
      		dt	h'00',h'08'	;クロック数 = 32,768 x 8 = 262,144 個
      
    • bit7-0 = "0": 無指定

      bit7 〜 bit0 のすべてが "0" 指定の場合には、該当のチェックデータの実行は無視されて、何も指定されなかったものとして扱う。 なお、bit7 は予備で、 現在使用されていない。

  • 出力クロック数

    特殊処理指定バイトデータで bit0: クロック数の指定 = "1"、または bit6: クロック数(2)の指定 = "1" だった場合のみに、 次図の出力クロック数指定の2バイトが続く。( 指定可能範囲: 1 〜 65,536 (h'00',h'00' 指定のとき) )
      ( 使用例 )
      
      		dt	h'00',h'07'	;7個のクロック数を指定
      


  • 拡張チェックデータ個数, 拡張チェックデータ

    オープンドレイン(コレクタ)、または3ステートなどの拡張チェックがある場合には、基本チェックのデータ個数のチェックデータ群が終了した後に、 次図のように拡張チェックデータ個数で指定した数だけの3バイトデータ塊りのデータ群が、拡張チェックデータ01, 拡張チェックデータ02, ……, 拡張チェックデータnn と続く。

    拡張チェックデータでは基本の チェックデータ と同様に、まず上記の基礎データの 入出力ピン割当データ で指定したピンに対して、入力ピンにはチェックのための条件である入力信号を、出力ピンにはチェック結果の期待値である出力信号を、それぞれ High レベルを "1"、 Low レベルを "0" で指定をする。 そして次に、拡張チェックデータの3バイト目の pul7 ビットで PULL-DOWN 指定: "0"/PULL-UP 指定: "1" をする。 この PULL-DOWN 指定: "0"/PULL-UP 指定: "1" は、「U3:各種ロジックICチェック補助制御部」 で、オープンドレイン(コレクタ)や 3ステートなどの機能をチェックするために用いられる。

    なお、これらの拡張チェックデータの存在は、デバイス番号テーブル (dev_no_table) のフラグバイトの xext: 拡張データ指定ビット = "1" で指定をしておく。
      ( 使用例 )
      
      		dt	d'2'		;拡張チェックデータ個数
      
      		dt	b'00000000'	;拡張チェックデータ 01
      		dt	b'00000000'	;
      		dt	b'00000000'	;bit7=0:   PULL-DOWN 指定
      
      		dt	b'00110000'	;拡張チェックデータ 02
      		dt	b'00011000'	;
      		dt	b'10000000'	;bit7=1:   PULL-UP 指定
      

| ページトップ |

■ 対応デバイス一覧とデータシート ■

本装置「汎用ロジック IC チェッカー」で、現在、チェックの確認がとれている74シリーズ、4000シリーズ、4500シリーズ ICの一覧を、 次表にまとめておきます。
なお、一覧表から各デバイスのデータシートも簡単に見られるように、リンクが貼ってあります。

<< 対応デバイス一覧 >>  (すみません。サーバ容量不足のため、データシートはありません。)

■ プリント基板(1)パターン図 (部品面) ■

| プリント基板(1)パターン図 (部品面) (LogicIC_Checker1PC.CE3) | ページトップ |

■ プリント基板(1)パターン図 (ハンダ面) ■

| プリント基板(1)パターン図 (ハンダ面) (LogicIC_Checker1PC1.CE3) | ページトップ |

■ プリント基板(2)パターン図 (部品面) ■

| プリント基板(2)パターン図 (部品面) (LogicIC_Checker2PC.CE3) | ページトップ |

■ プリント基板(2)パターン図 (ハンダ面) ■

| プリント基板(2)パターン図 (ハンダ面) (LogicIC_Checker2PC1.CE3) | ページトップ |

■ 特殊電源ピン・ソケットアダプタ ■

通常の対角線上の電源(Vcc, GND)ピン配置と異なって、 特殊な電源ピン配置となっているようなデバイス用に、汎用の 24 pin ゼロプレッシャー・ソケット だけでは不十分なため、プリント基板(2) においては 16 pin の補助ソケットを 1個搭載してあります。

しかし、その補助ソケットでも pin14x, pin14y, pin16x 用には、挿入位置の変更だけで対処できますが、pin16y 用になると GND(Vss) ピンの変更が、pin16z 用では Vcc, GND 両ピンの変更が必要となります。 しかも、その変更を実現することは、一般的に運用時には容易ではありません。

また、披チェックデバイスによってはそのままの素の状態ではダメで、必要なジャンパーを外部に施した状態でチェックを行なわなければならないものもあります。

そこで、特殊な電源ピン配置とジャンパー施工との両方を考慮して、ピンヘッダを設けた特殊電源ピン・ソケットアダプタを、新たに作製(2010/11)しました。 プリント基板(3) の裏面にある 12 pin x 2 本のピンヘッダを、次の写真のように既設のゼロプレッシャー・ソケットに挟んで、三段構成にして使用します。


pin14x, pin14y, pin16x, pin16y, pin16z 用には、それぞれ専用のソケットを設けてあり、該当の特殊ピン披チェックデバイスをそのまま挿入するだけでOKです。 また、pin16w 用には一番右側の pinxxx ソケットを使用して、その上にあるスライドスイッチを上側に ON します。 この pinxxx ソケットは、スライドスイッチを下側に OFF しているときは 一般の pin16 用にも使用ができ、pin14 用のときもジャンパー施工を伴うような場合には、24 pin のピンヘッダとともに使用します。

なお、このアダプタの機能を使用するためには、U1でのデバイス番号の指定に例外入力をすることに注意をします。 74シリーズにおいても4000シリーズにおいても、 先頭は "9" で、それによって特殊ピンデバイスのデバイス番号の重複はありません。(先頭 "9": 例、7492 → 9092、4049 → 9049)
ただし、ジャンパー施工を伴う一般のピン配置の pin14, pin16 用を使用する場合はその限りでなく、通常のデバイス番号の入力指定で行ないます。

現在把握している、特殊ピンデバイスやジャンパー施工を伴うデバイスの例を、次に挙げておきます。
        特殊ピン   ジャンパー施工ピン
        ソケット名 Vcc Vss デバイス例   デバイス例 ( デバイスピン ) ピンヘッダ
        pin14x 4 11 7473, 7477, 7478        
        pin14y 5 10 7490, 7491, 7492, 7493   7490, 7492, 7493 ( 1-12 ) 1-14
        pin16x 5 12 7475, 7483, 7496, 74141        
        pin16y 5 13 7476        
        pin16z 3 14 4045        
        pin16w 1 8 4049, 4050        
        標準ピン   ジャンパー施工ピン
        pin14 14 7     4007 ( 3-6, 1-5-12, 2-9, 4-11, 8-10-13 ) 8-11, 6-10-17, 7-14, 9-16, 13-15-18
        pin16 16 8     74390 ( 3-4, 12-13 ) 7-8, 16-17
            4018 ( 1-13 ) 5-17

| ページトップ |

■ プリント基板(3)パターン図 (部品面) ■

| プリント基板(3)パターン図 (部品面) (SpcSocketPC.CE3) | ページトップ |

■ プリント基板(3)パターン図 (ハンダ面) ■

| プリント基板(3)パターン図 (ハンダ面) (SpcSocketPC1.CE3) | ページトップ |

■ 使用部品表 ■

(主要部品: IC, トランジスタ等)

(データシート)
PICマイコン .................... PIC16F628A
PICマイコン .................... PIC16F877A
PICマイコン .................... PIC18F452
3-8 デコーダー .................... HD74HC138
トランジスタ .................... 2SA1015
ショットキダイオード .................... 1S4
7セグメント LED .................... LNM213A

| 部品表 | Excel ファイル (LogicIC_Checker_parts.xls) | ページトップ |

■ 参考サイト ■

簡易型汎用ロジックICチェッカ ..... http://junneko.private.coocan.jp/hardware/checker/checker.htm

| ページトップ | ホーム |


Copyright (C) 2006-2023 やまもとみのる
初版:2006年12月14日、初公開:2013年6月17日、最終更新:2023年10月29日