| ホーム | 私の電子工作作品集 |
[ 初公開日:2018年5月6日 ] |
|
実際に使用したPICについて 上回路図には、U1: PIC16F873A、U2: PIC18F452、U3: PIC16F874A と指定がしてありますが、私がこれらのPICの使用に至った過程について少しばかり触れてみます。 U1: PIC16F873A については、冒頭で述べたように前作では同目的に PIC16F628A を使用していましたが、今回、表示をLCD化するには 18 ピンでは入出力ポート数が少なく、それを補うために 私が使い慣れている PIC16F87XA シリーズの内で 28 ピンの PIC16F873A に変更をしました。 U2: PIC18F452 については、もともと本機の前作であるチェッカーを開発していた当初は、入出力ポート数が多い 40 ピンの PIC16F877A でプログラミングを進めていたのですが、開発途中でデバイステーブルの データ量の増加に伴って、プログラムメモリが足らなくなってしまいました。 そこで私なりにいろいろと検討をした結果、CPU を PIC18F452 に変更することが一番の良策との結論に至りました。 既に完成をしているハードウェアの変更が一切なくて現状のままで良く、ソフトウェアの変更のみで対応が可能なことが分かりました。 そのような経緯で前作では U2 には PIC18F452 を採用しているのですが、今回は部分的な U1 とのインターフェイスの変更に伴って一部のプログラム変更は行っていますが、前作のその殆んどのプログラム内容を 引き継ぐために、同じ PIC18F452 を使用しています。 ただ、実際には現在 PIC18F452 の手持ちがなく代わりに PIC18LF452 があったために、それを使用しました。 U3: PIC16F874A については、PIC18F452 だけではまだ入出力ポート数が足りないため、その足りない入出力ポート数を補うために、前作では 40 ピンの PIC16F877A を使用しましたが、制御するための プログラムメモリとしては少量で良く、メモリが PIC16F877A の半分で、かつ、同じ 40 ピンの PIC16F874A に今回は変更をしました。 また、私の現在の手持ちの PIC16F877A も数少なくなってきたこともあって、 代わりに PIC16LF874A が多数あったために、実際にはそれを使用することにしたのです。 ちなみに、PIC18LF452、PIC16LF874A の "L" の付いたタイプは、付かないノーマルなタイプに比べて 使用ができる電源電圧の範囲が広がっており、低い電圧でも動作をさせることが可能となっています。 私の場合、どちらも数年前に Yahoo!オークションで入手したもので、多数を所有していますので それらを使用することにしました。 |
| 回路図 (LogicIC_CheckerII.CE3) | ページトップ |
|
| ページトップ |
この簡易ロジックICチェッカ II (Logic IC Checker II)は、「各種スイッチ入力, LCD表示部」 (以下、U1という。)、「各種ロジックICチェック, 結果表示部」
(以下、U2という。)、および 「各種ロジックICチェック補助制御部」 (以下、U3という。) の三部からなっている。 ◇◇◇ U1:各種スイッチ入力, LCD表示部 の機能 ◇◇◇ |
|
◇◇◇ U2:各種ロジックICチェック, 結果表示部 の機能 ◇◇◇ |
|
◇◇◇ U3:各種ロジックICチェック補助制御部 の機能 ◇◇◇ |
|
| ページトップ |
冒頭でも述べたように、表示器として 前作 のような7セグLEDの使用をやめて、LCDモジュールを使用するように変更をしたため、
思いもよらず、プログラムの変更が大掛かりなものとなってしまいました。 U1: PIC16F873A(前作では U1: PIC16F628A) 用のプログラムは、ほとんど作り直しとなりました。 前作では4個の7セグLEDを使用しているため、文字種としては基本的には数字の表現しかできず、しかも、4桁までと限られているために表現力もいたって弱いものでした。 それに比べて今回は 16文字 x 1行のLCDモジュールを使用のために、数字の他に大小のアルファベット、記号、カタカナ(今回は使用しない)と、豊富な文字種で16文字まで表現することが可能で格段の差があります。 また本機では、U1、U2、U3、U4と4個のICを使用していますが、それぞれのICの間でいろいろなインターフェイスを取り合いながら、全体で1つの ICチェッカーとしての機能を構成しています。 中でも特筆すべきインターフェイスには次のようなものが挙げられます。 (上の 回路図 で、赤線、矢印で示した部分) |
|
現在の最新バージョン: Ver. 3.00 |
| ページトップ |
U2: PIC18F452 用のプログラム(ソースファイル(LogicIC_CheckerII2.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:各種スイッチ入力, LCD表示部」 から送られてきた、スイッチ入力されたデバイス番号と比較照合するのに使用される。
比較照合は5バイト単位の全テーブルデータとの間で行なわれる。
一致デバイス番号があった場合は、以降の3バイトデータを下図のようにそれぞれのレジスタに一旦保存して、次のデバイスチェック・データの読み出しに備える。
( 使用例 ) dt h'00', h'00' ;7400 Quad 2-Input NAND Gate dt h'00' dt high ic7400 dt low ic7400 [ フラグ・ビットの説明 ] |
2. デバイス機能チェック・データテーブル (dev_ck_table)
1データ群が何バイトから構成されているかは決まってなく、個々のロジックICの機能によってチェックデータが複雑に変化する、可変長データである。
|
| ページトップ |
本装置 "ロジック IC チェッカー II" で、現在、チェックの確認がとれている74シリーズ、4000シリーズ、4500シリーズ ICの一覧を、次表にまとめておきます。 ロジック ICの種類数が多くて確認には相当な時間を要するため、実は未だチェック確認の進行中で、確認がとれたものに順次更新をして行きます。 チェックデータの "IC データ ファイル (LogicIC_TableII.inc)" の見直し更新も必要なため、取り敢えず、前作の旧 "ロジック IC チェッカー" で確認がとれているものを掲載しておきます。 |
なお、一覧表から各デバイスのデータシートも簡単に見られるようにリンクが貼ってありますが、著作権等の問題もありますのでデータシートファイルはサーバ上にはありません。 もし、一覧表から各デバイスのデータシートが見られるようにしたい方は、ご自分のパソコンにこの一覧表と各メーカーのデータシートをダウンロードする必要があります。 |
使用したプリント基板は、"秋月電子通商" 販売の "AE-6(1L) (通販コード:P-04708)" ガラスエポキシ片面ユニバーサル基板
(155 x 114 mm)です。 今回使用したケースに収納(ケース加工図 参照)するにはサイズが一回り大きいので、左下図に示すように …… でまず四辺をカットし、 かつ、右辺をコ字型にくり抜いて使用しました。 ガラスエポキシ基板は丈夫なので、私は好んで使用しているのですが、ただ今回のような加工をするのには 結構大変でした。 殆んど同サイズの基板に、"サンハヤト" の "ICB-96" 紙フェノール片面ユニバーサル基板がありますが、加工をするにはそちらの方が楽かもしれません。
| プリント基板(1)部品配置図 (LogicIC_CheckerIIPC2.CE3) | ページトップ | ( 2018/10/04 追記 ) 重要なことを書き忘れていました。 本機の写真を見ていただければ分かるように、私は上図に示す部品配置図のように本機を作製したのですが、ケースに収納した本機を実際に使用してみると、 このレイアウトではゼロプレッシャ ICソケットのレバーを操作するのに、非常に不都合なことが分かりました。 プリント基板をケース内に収納しないで、そのままの単体で使用しているときにはまったく問題はないのですが、ケースに収納したときには、プリント基板の右辺側に設けたコ字型の切り込みを入れた部分に、 ケース右辺の内側に出っ張った部分が隣り合うわけで、ゼロプレッシャ ICソケットのレバー回りの空間が極端に狭くなってしまって、そのレバー操作がかなりし辛くなるのです。 その点で上図の部品配置図は失敗でした。 そこで、その改善策(になるかどうかは検証が取れていないが)を次に示しておきます。 次図に示すように、ゼロプレッシャ ICソケットの右辺と ケース右辺の内側に出っ張った部分との空間を広げるために、ゼロプレッシャ ICソケットをプリント基板のランド3つ分(約7.6mm)左に、かつ、1つ分下にずらします。 そのためには、3個のPIC、74HC138、5個のトランジスタなど、全体のレイアウトも少しずつ変更をしなければなりません。 そして、これらのパターン変更によって新たに加わった 左にランド3つ分と下に1つ分の小さな空間ですが、恐らくその目的は果たしてくれるものと思います。 勿論、これらのパターン変更は新たにプリント基板を作製するときの話で、 私のように既に改善前のパターン図で作製してしまったものはどうしようもありませんが ・・・ |
| プリント基板(1)部品配置図(改) (LogicIC_CheckerIIPC2a.CE3) | ページトップ |
| プリント基板(1)パターン図 (部品面) (LogicIC_CheckerIIPC.CE3) | ページトップ |
| プリント基板(1)パターン図 (ハンダ面) (LogicIC_CheckerIIPC1.CE3) | ページトップ |
キャラクタLCDモジュールにも様々な種類のものがありますが、 2017/4 現在 *、"秋月電子通商" のネットでの 商品カタログ を覗いてみると(断っておきますが、私は決して "秋月電子通商" の回し者ではありません)、最も安価なものでは、16文字 x 1行でバックライトなしのものとして、
"S-10551D" と "DMC16117A" との2機種が販売(共に@300)されています。 (以下の4枚の写真は、"秋月電子通商" のホームページからダウンロードした後、無断で
このページに合うようにサイズを加工して使用しました ・・・ ごめんなさい) * 2018/4 現在では、左側の "S-10551D" は商品カタログから消えています。 どうやら売れ切れたようです。
本機では、表示させる文字数としてはそれほど多くは必要としていませんので、これらのLCDで十分です。 私も数年前からこれらを数個ずつ所有しており、"S-10551D" については既に 数回の使用実績があります。 これらのLCDはそれぞれハード的に特徴があり、"S-10551D" は使用しているプリント基板が片面のもののため、モジュールの裏面(ハンダ面)側にコネクタを取り付けることは 不可能なため、私はこのモジュールに直接フラットケーブルを付線して、本体側のプリント基板との接続をしています。 (その実例としては、私の次のページ等を参照願います) |
一方、"DMC16117A" は使用しているプリント基板が両面のスルーホールのため、モジュールの裏面(ハンダ面)側にコネクタを取り付けることが可能で、私にとっては初めてですが
今回はこちらのモジュールを使用することにしました。 実際にコネクタ(メス側:ピンソケット)を取り付けた様子を次写真に示します。
また、これらのモジュールには4つの角にそれぞれΦ2.6 の取り付け用の穴が開けられていますが(取り付けサイズはどちらも同じ)、本体側のプリント基板にこのモジュールを 取り付け固定するためには、スペーサーとして 11.5 mm 長のものが必要となります。 これは今回使用したコネクタのメス側(ピンソケット)とオス側(ピンヘッダ)の、黒い樹脂部分の長さを合わせると 約 11.5 mm になるためで、このように、M2.6 x 11.5 というような特殊なスペーサーは、一般的には入手は不可能です。 そこで、どうすれば良いのか? ・・・ ですが、私の他のページ(例えば、万年カレンダー の ケースへの液晶モジュールの取り付け )でも書いているように、このような特殊なスペーサーは自分で作ってしまおう ・・・ という提案です。 そのためには、そこで述べているような "タップを切る(めねじ)ための工具 ( [ 工具の紹介 - 1 ] )" が、最低でも必要となります。 できれば、同様に述べている "パイプカッター ( [ 工具の紹介 - 2 ] )" も揃えることができればよりベターで、スペーサーの自作が楽になります。 [ タップ切りの方法とコツ ] 下の写真は、タップハンドルを使用してパイプにタップを切っているところのイメージを表したものです。 次の写真は、上述の工具を使用して実際に自作をした 11.5 mm 長のスペーサーです。 右側の写真はスペーサーを自作するための元となるパイプ材料の一例で、 私は "東急ハンズ" で調達をしたもの(PVCパイプ、外径Φ4.0、内径Φ2.0)を使用しています。
左上の写真の中で自作スペーサーの左右に写っているビスは、M2.6 x 10 のものを長さ 3 ミリほどカットをして 7 mm 長に加工をしたものです。 私は、M2.6 のビスでは 5 mm 長、10 mm 長、15 mm 長と、3種のものを常備しているのですが、今回は 5 mm 長(実際にはプリント基板の厚さを差し引いた長さ)のものより長い方がしっかりと固定ができるので 7 mm 長を作製しました。 |
このように長いビスから余分な部分をカットして、必要な長さのビスを作り出すためには、長時間ストップウオッチ/タイマー の
蝶番の取り付け で述べた工具、圧着ペンチ(プライヤー)が必要で、この工具があると、ねじ山を潰すことなく簡単にビスの切断をすることが可能です。 こうして、自作をしたスペーサーと適度な長さにカットをしたビスを使用して、実際にLCDモジュールを取り付けるときの様子を次の写真に示します。
|
| ページトップ |
使用したケースは、100均で購入した "はがきケース (L-8821) サナダ精工株式会社" ポリプロピレンケースです。 私がプリント基板をケースに取り付け固定をするときには、通常は、5 mm 長のパイプ状のM3スペーサーを使用して、それらの間に挟み基板がケース底から少し浮くようにして いるのですが、今回は 7 mm 長のスペーサーを使用しました。 それは、下のケース加工図にも示すように、プリント基板の右側面にあるコの字型の切り欠き部分が、 5 mm 長のスペーサーでは少々短くてケースの同型の部分と接触してしまい、スペーサーの役が果たせないからです。 7 mm 長のスペーサーを使用したときには 接触することはなく、うまくプリント基板がケースに収まります。 |
| ケース加工図 (LogicIC_CheckerII.CE3) | ページトップ |
通常の対角線上の電源(Vcc, GND)ピン配置と異なって、 特殊な電源ピン配置となっているようなデバイス用には、汎用の 24 pin ゼロプレッシャー・ソケットは
使用ができないため、本体の プリント基板(1) においては 16 pin の補助ソケットが 1個搭載してあります。 しかし、その補助ソケットでも pin14x, pin14y, pin16x 用には、ICの挿入位置の変更だけで対処ができますが、pin16y 用になると GND(Vss) ピンの変更が、pin16z 用では Vcc, GND 両ピンの変更が必要となります。 しかも、その変更を実現することは、一般的に運用時には容易ではありません。 また、披チェック ICデバイスによってはそのままの素の状態ではダメで、必要なジャンパーを外部に施した状態でチェックを行なわなければならないものもあります。 そこで、特殊な電源ピン配置用とジャンパー施工用との両方を考慮した、ピンヘッダを設けた "特殊電源ピン・ソケットアダプタ" が必要となりますが、前作の ICチェッカーで作製したものでは 基板の一部分がケースなどにぶつかって使用ができないため、まったく新たに作製をし直しました。 アダプタ プリント基板(2) の裏面側にある 12 pin x 2 本のピンヘッダを、 次の写真のように本体基板のゼロプレッシャー・ソケットに挟んで、二段構成にして使用をします。 pin14x, pin14y, pin16x, pin16y, pin16z 用には、それぞれ専用のソケットを設けてあり、該当の特殊ピン披チェック ICデバイスをそのまま挿入するだけでOKです。 また、pin16w 用には一番左側の pinxxx ソケットを使用して、その上にあるスライドスイッチを上側に ON します。 この pinxxx ソケットは、スライドスイッチを下側に OFF しているときは 一般の pin16 用にも使用ができ、pin14 用のときもジャンパー施工を伴うような場合には、24 pin のピンヘッダとともに使用します。 なお、このアダプタの機能を使用するためには、U1でのデバイス番号の指定に例外入力をすることに注意をします。 74シリーズにおいても4000シリーズにおいても、先頭は "9" で、 それによる特殊ピン ICデバイスのデバイス番号の重複はありません。(先頭 "9": 例、7492 → 9092、4049 → 9049) ただし、ジャンパー施工を伴う一般のピン配置の pin14, pin16 用を使用する場合はその限りでなく、通常のデバイス番号の入力指定で行ないます。 現在把握している、特殊ピンデバイスやジャンパー施工を伴うデバイスの例を、次に挙げておきます。
|
| ページトップ |
| 回路図 (SpcSocketII.CE3) | ページトップ |
プリント基板(2)ではハンダ面側にもコネクタ(ピンヘッダ)を取り付けるために、その方法に一工夫をしています。 本来、その部分だけが両面スルーホールになっているのが理想的で
非常に都合がいいのですが、ユニバーサルプリント基板を使用する限りではそのようなことは実際には望めません。 通常の部品面側にコネクタ(ピンヘッダ)を取り付けるのとは異なって、ハンダ面側に取り付けるためにその足のハンダ付けは反対の部品面側になるのですが、片面のユニバーサルプリント基板を使用のため そこには銅箔がなく、そのままではハンダ付けをすることができません。 私の他のページでも書いたように、両面スルーホールのユニバーサル基板はあっても、スルーホールになっていない両面のユニバーサル基板は、なぜか市販がされていない(少なくとも、私がよく利用をする "秋月電子通商" では取り扱っていない)ようです。 両面スルーホール基板は、私にとっては使いづらいだけで何のメリットもありません。 そこで、今回のプリント基板(2)の製作では、まず次の左側写真の下段のようなプリント基板の小片(過去に基板をカットして出た端材)を用意します。 次にハンダ面を上にした小片を プリント基板(2)の部品面側に接着をし、その部分だけが両面構造になるようにして、そこにハンダ面側に取り付けたコネクタ(ピンヘッダ)の足をハンダ付けします。
次に加工手順ですが、写真に示すように2枚重ねた小片上にピンヘッダを差し、スチール定規の右端からピンが出るようにずらした位置にして、ピンの上から固いもので押し付けるようにすると、 定規の厚さ(私が使用したものは 1 mm )分だけピンが押し下げられます。 これを順に右にずらしながら繰り返すことによって、黒い台座のすべての下部分を 1 mm だけ長くすることができます。 なお、写真には写っていませんが、ずらした小片の右端を受ける位置とこれら2枚の定規の下位置、すなわち押し下げられたピンの下端が当たる位置にも、合計3枚の定規を用意すれば作業が確実になります。 また、今回はプリント基板(2)自体にも若干の加工があります。 下のパターン図や写真にも写っているように、基板の部品面側から見て右上角を少々カットする必要があります。 初めから開けられているΦ3 の○穴を利用して、パターン図に示す形に削って切り欠き部分を作ります。 ソケットアダプタであるこのプリント基板(2)を、ICチェッカー本体のゼロプレッシャー・ソケットに装着するときに、素のままではそのレバーを立てると基板の右上角部分にぶつかって装着ができないためで、 作った切り欠き部分でぶつかるのを防ぎます。 なお、以下は余談ですが、前作でもソケットアダプタ基板や本体基板のハンダ面側に、コネクタ(ピンヘッダ)を取り付けていますが、今回のようにハンダ面を上にしたプリント基板の小片は使用していないので、 どのようにして取り付けたのか不思議に思われた方もいるかもしれません。 前作ではそれについて何も触れてはいませんでしたが、実は、ハトメを使用していたのです。 プリント基板のハンダ面側から差し込んだピンヘッダの足ピンを、部品面側から差し込んだハトメで受け、 それにハンダ付けをしてガッチリと固定をしているのです。 何といっても基板小片とは異なって、仕上がりにスマートさがあります。 Φ1 x 1.5 mm 長ほどのすごく微小なハトメで、前作を作製した 12 年ほど以前には 80個ほどを所有していました。 入手したのはそれよりはるか昔のことで、いつ頃どこで購入したのかはまったく記憶にありません。 今思えばその数少ない貴重なハトメを、前作の ICチェッカーですべて使い切ってしまいました。 その後も、この微小なハトメを使用したい場面が時々あってネットでもいろいろと探してはみたのですが、目的に合うような微小なハトメはなかなか見当たりません。 ハトメの内径はピンヘッダが通り、 かつ、ハトメの外径がプリント基板の穴に入らなければなりません。 もし、どなたかご存知の方がいらしたら私までご一報いただければ幸いです。 |
| プリント基板(2)パターン図 (部品面) (SpcSocketIIPC.CE3) | ページトップ |
| プリント基板(2)パターン図 (ハンダ面) (SpcSocketIIPC1.CE3) (SpcSocketIIPC2.CE3) | ページトップ |
(主要部品: IC, トランジスタ等) | (データシート) | ||
PICマイコン | .................... | PIC16F873A | |
PICマイコン | .................... | PIC16F874A | |
PICマイコン | .................... | PIC18F452 | |
3-8 デコーダー | .................... | HD74HC138 | |
トランジスタ | .................... | 2SA1015 | |
ショットキダイオード | .................... | 1S4 | |
LCDモジュール | .................... | DMC16117A |
| 部品表
| Excel ファイル (LogicIC_CheckerII_parts.xls)
| ページトップ |
簡易型汎用ロジックICチェッカ .....
http://junneko.private.coocan.jp/hardware/checker/checker.htm
| ページトップ | ホーム |