[表紙頁]へ  関連記事の目次へ
1:着手」→「2:抜書」→「3:更改」→「4:寄道」→「5:構想」→「6:結線」→「7:算譜H」→「8:呻き」→「9:初一歩

[令和元年十月二十一日(2019.10.21)]
PROMライタ自作9、動作 初一歩

先日買った書籍の例題プログラムをデッド・コピーしてみたのだが、ウンともスン言わない。回路は働かず、PICチップは全然温かくもならない?

私は、PICマイコンにも、専用C言語ツールにも初心者なので、プログラム内の誤りも見つけられず、まったく訳も分からず状態で、途方にくれていた。

そこで、やったのは「PIC16F887」のデータシートの“読み直し”と“ネット検索”...。
やがて、「内蔵クロック」の指定の仕方が拙いのかもしれないと、薄ぼんやりと分かって来た。

四苦八苦の末、このPICマイコンに適した書き方に直してみたら、オオ、デキタ!
「LED列」は思い通りに点灯し始めたし、RS232Cの送受信も、書き込んだプログラム通りになっている!(動画1<クリック>
これで“最初の一歩”が踏み出せた。この先の道筋も、見えて来た!
尚、「LED列」は、今回仮に回路確認用として製作した冶具。(図1)


+++ 回路動作の確認用冶具 +++

PICマイコン「PIC16F887」の動作を、少しでも外から見たいと思い、本来は「Flashメモリ」を差すはずのソケットから、“アドレス線=16本”、“データ線=8本”を引き出して「LED列」で表示出来るようにした。
PIC16F887」の出力で、(330Ω経由で、)直接LEDを点灯出来るだろうと思うが、全LEDを同時点灯させたら、多分電力消費が多過ぎるかもしれないので、「トランジスタ・アレイ(TD62084AGP)」x3でバッファリングをさせる回路にした。(図3)

回路は至極簡単で、直列に接続するだけでいいのだが、本数が多いので最初にテストした時は、一本だけ半田ミスがあり、点灯しないLEDがあった。(図4<クリック>
(やはり、ひとつでも点灯しないのがあると、焦ってしまうのは、世の常、人の常)
この“確認用冶具”は、最初の内だけ必要なのだが、後はお蔵入りの見込み。
安く仕上げる為、部材などは、手持ち在庫(330Ω=\0)や百均品(透明ケース=\110)、特価品(LED列=\99)や安価品(Tr.アレイ=\471)、普通品(基板=\100)などを使った。


+++ MPLAB X IDE Cコンパイラと問題箇所 +++

今回の関所は、プログラムで“内蔵クロック”の指定方法が違っていたこと。
それが原因で、“外部クロック”入力待ちの状態のままで“動作”していなかったわけだ。

この指定違いは、マイコン機種が違っているので、当然のことなのだが。
その“オマジナイ”を探し出して来て、書き直した。[FOSC=INTRC_NOCLKOUT](図5)
そしたら、一度に全体が“動作OK”になった!
参考サイト:https://electrosome.com/led-pic-microcontroller-mplab-xc8/ → [window]項

その他は、ほぼ、資料(『マイコンプログラミング実習』)の中のプログラムを参考にさせて頂いている。
尚、以前は、開発用マシンを「PC110」と設定していたが、ちょっと非力過ぎて無理なので、「構想」では「PC-VY12FHWinXp)」に替えようとしたが、これも後で「MPLAB X」が使えないことが分かったので、止めた。
(しかし、これの“出力メッセージ”の文字が小さくて困っているが、極力老眼鏡などは使わないつもりなので、必死で読み取っている。図6<クリック>

結局、統合的に作業が出来る「PC-VY21/W-5Win7)」(サブ機)を、使わざるを得なかった。
現在は、このマシンから、「PICマイコン書き込み器「AE-PICPGM II」で、プログラムを書き込んで、更に「自家製Flashライタ」に繋ぎ替えて、テストや本番読み書きなどの“全作業”をやろうと考えている。


[表紙頁]へ  関連記事の目次へ


[令和元年十月十二日(2019.10.12)]
PROMライタ自作8、算譜P 呻き

「自家製PROMライタ」用として、必要な2組(算譜Hと算譜P)の内の「PICボード」(算譜P)の方の道筋も探ってみた。...が、呻けども、なかなか進まない。

当初、「PICマイコン(PIC16F887)」のプログラム作成ツールとして、(「MPLABX」内にあるツール類で、)“EDIT→ASM→LINK→DEBUG”を考えていた。
例えば、「WinXp」上だと「mpasmx.exe」を使えばいいらしい。
これだと“単独メニュー”が出て来るので、設定も単純だし設定し易いし、アセンブルも即座に出来る。(図2<クリック>
実験的に、幾つかの異種のPICの例題を書き換えたり、アセンブルしてみることが容易だった。

そこまでは良かったのだが、その後がいけない。
続処理用の「mplib.exe」や「mplink.exe」などは、DOSモードでしか使えないらしい。
多分、これらは、BATファイルを作って、それの中に組み入れておけばいいのだろうが、それらの設定が、かなり面倒そうだ。
何か、実例が欲しい...。

他方、(簡単そうに見える)“統合環境”で「MPLABX」でプログラムを作成するにしても、実際は“最初の設定”が複雑過ぎて、私のような初心者は、戸惑いを覚えるばかり。
“メインメニュー”も直感的に選択出来るようなメニューではなく、ベースになる知識が無ければ、満足な設定も出来ない状況だ。(図1)
で、始めからお手上げで/万歳をしてしまった!

実は、私は、こうしたお仕着せ感の強い統合環境”なるものが好きではない。
出来れば、自分の手に合うような小道具類でコツコツ作って行って、それらを寄せ集めて完成させるのが好きなんだ。
(それに、この“統合環境”は、11型画面では、文字が小さくなり過ぎて、しかも英文だから“説明”を読むのも大変だ)
まぁ、貧弱な知識と技量では、あまり贅沢は許されそうに無いので、兎に角、「MPASM,MPLINK,MPLIB」の組み合わせで、どの程度まで出来るか、アタックしてみるしかないだろうな。
(読み辛いけど、)懸命に英文説明書を見る。


[表紙頁]へ  関連記事の目次へ


[令和元年十月九日(2019.10.09)]
PROMライタ自作7、ホスト側 算譜H

「自家製PROMライタ」のハードウェアは、一応組み上げた。デバッグは未だ。
次に、それをデバッグし、新たなソフトウェアを用意したいが、それには2組のプログラム(算譜H,P)が必要になる。
一つは、「ホストPCWinXp搭載)」から、「PROMライタ」へ“BIOSデータを送込/読出プログラム(算譜H)”だ。
もう一つは、「PROMライタ」内の“PICマイコン用プログラム”(算譜P)で、これで、BIOSチップ「28F002BX-T」への読み書きを行わせたい。

今回は、前者の「ホストPC」上で使う“読み書きプログラム”の作成方法を検討した。

(株)秋月電子通商の製品に付されている“プログラム”(図1)が現に実働しているので、そのソース「picpgm6」を参考にさせて貰うことにした。(公開、感謝!)

ただ、多機種対応なので、このままでは、解析するにしても、冗長過ぎる。
そこで、ライタ実機(AE-PICPGM II)(図2<クリック>)を使って確かめながら、“メニューのクリック毎に出るエラー箇所”を見て、ソース上の不要なものを削れるだけ削り、必要な箇所やファイルを残すようにして、“ソース・プログラム”をスリム化してみた。
今後は、主に“データの転送手順”などを細かく調べて行くつもり。
(私の知識が欠けている領域を、こうしたベテランの作ったルーチン群を拝見しながら、手早く埋めて行くのが良い方策だと思っている)


上記の「picpgm6」を、実際に動かして確認したり、「新規のプログラム」(名前はまだ無い!漱石/Sousekiより)を作成する為のツールとして、手持ちの「VisualBasic6.0」が使えそうだ。これは、嬉しい!(図3)

この(VB6)を使って、ソース「picpgm6」を整理・簡素化してみたのだが、機種を「AE-PICPGM II」に絞ったにも拘わらず、必要な“フォーム”や“標準モジュール”が、かなり多く残った!(図4<クリック>
(もっと減るかと期待していたが、それ程でもなかった。まぁ、解析/分析がし易いので、多いのは悪いことではないと思う)

この後、それも、目的が“特定のBIOSチップ”の内容確認や添削だけなので、単機能でシンプルな(「自家製PROMライタ」用の)「読み書きプログラム」を作りたい。


[表紙頁]へ  関連記事の目次へ


[令和元年十月六日(2019.10.06)]
PROMライタ自作6、PICボード 結線

多くの配線に躊躇して、作業に着手するのが億劫だったのだが、やっと、「PIC&PROMソケット・ボード」の結線を完了した。
一旦着手すれば、作業は順調に進められることは自分でも分かっていたので、無理に自分を励まして、半田鏝を熱したわけだ。

結線は、アドレス・ライン群から始めて、出来るだけ他の線群と重ならないように留意しながら布線した。
次に、データ・ライン群、そして制御線を布線。
やはり、線群が増えて来ると、重なりが増えるのは、避け難い。(図1)

結線中に苛立ったことがある。
それは、「(暫定版_3)回路図」(図2<クリック>)が“部品搭載面”から見た図になっていることだ。
“半田付け面”側では、端子群の位置関係が「回路図」と反対になるので、しばしば“端子位置”を誤認・錯乱してしまう。
途中で、余程、そうした間違いを減らせる「実体配線図」でも作ろうかと迷ったが、“手間”を天秤に掛けた結果、そのまま“半田付け作業”を続行して、完了した!
自動配線PCBを考えてみて、「5枚 USD$7.9送料込み」という案内などを見ると、強く惹かれるものがあるが、やはり“(私のような)古物人間”は、必要数が1枚だけだと、直ぐに手-配線で済まそうとする性癖が勝ってしまう)


本体側の方は、基板/パターンのあちらこちらから取り出さねばならないので、蛸足(いや、10本だから)烏賊足配線になっている。(図3)

本体基板の流用
+書込用高電圧(+12V)を供給する為に、「RS232C用駆動回路」の一部を利用にしているのだが、(拙いことに)マイナス電圧も出てしまうので、これの手直しが必要。
+筐体前面に付いている「LED表示」(図4<クリック>)を、CE#WE#などの“活動表示”に利用出来ないか?と、結線してみた。(これは、半分遊び心で、実用的ではないかも)

「PICマイコン」をソケットに搭載してみて、デバッグの為の“抜き差し”が、かなり面倒だと分かった。これは、あまり良くないなぁ。
...やはり、「PICマイコン」を載せたままで書き換えが出来る“ICSP機能”を使わないとダメかなぁ?と思い始めた。
...でも、更に“(難しい)外部回路”を増やすのは、更に“屋上階を重ねる”ことになり兼ねない。
で、暫く、このまま“抜き差し方式”でやってみよう!


[表紙頁]へ  関連記事の目次へ


[令和元年十月三日(2019.10.03)]
PROMライタ自作5、全体系 構想

自作PROMライタ」の内部配線を進める前に、「PIC16F887」の機能を調べ始めた。
この「PIC16F887」は、端子数の多さとコストだけで選んだが、調べてみるとRAMが368バイトと、雀の涙の如く少ない。
ということは、2MbitsのFlashメモリ(=「PC110」のBIOSチップ)のデータ量に対しては、まったく無力。
つまり、“PROMライタ”とは銘打ったものの、単なる“書き込み端子”にしかならないわけだ。

そこで、当初考えていたホスト(PC110)を、「PC-VY12FH」(WinXp搭載)に替えて、データをそのホストで保持・読み書き制御する方式にした。(図1)
(PICマイコンには、アドレス・ラッチ、データ・ラッチなどの役割させるわけだ)

ホストをこの「PC-VY12FHにすれば、“PIC Writer「AE-PICPGM II」”で、PICの読み書きも出来るから都合が良い。(図2<クリック>
(当初は使わないつもりだった“PIC Writer”だが、今回活用出来そう)

PICマイコンのプログラムは、以下のような種類のコマンド&データを処理出来れば良いだろう。
 +アドレス保持   :16ビット
 +データ転送    : 8ビット
 +CE#、OE#、WE#:各1ビット
 +Vpp、リセット  :各1ビット
これらを順序正しく組み合わせて、シリアルで送受するので、かなり“のろまな動作”になるだろうが、それは止むを得ないし、構わないと思う。
尚、この“PICマイコン”は“インサーキット・デバッグ”が出来るようだが、今回はそれを使わずにやってみるつもり。

...此処で、はたと困った!
WinXp上で、“USB経由でデータ転送をするプログラム”を作りたいが、それに適したツールを思い付かない。
“アセンブラ”や“C”だと、それぞれ「帯に短し、襷に長し」か。(う〜む。ちょっと違うか?)
“C”と“OpenCV”とで、“USBカメラから映像データを取り込むプログラム”は作ったことがあるが、“データの送受信”は経験も知識も無い。
もしかして、「VB6」や「PICPGM II」用のソース・ファイルが参考になるかもしれないので、後で調べてみよう。


[表紙頁]へ  関連記事の目次へ


[令和元年九月二十八日(2019.09.28)]
PROMライタ自作4、寄り道 PCB化? 

水魚堂製「Bsch3V」で、回路図を描き直しながら、ふと考えた。
この「PIC_Board」を「KiCAD」と「FreeRouter」で“自動配線”をしてみたら、どんな風になるかな?と。
・・・“自動配線”は、あっけなく終わってしまった!(図1)
しかし、その前の準備が少し面倒だ。

当初は、「Bsch3V」の回路図を転用するつもりだったが、「KiCAD」では、そのままでは取り込めないらしい。何か別途、アドオン“ツール”が必要なのかも。
そうした“ツール”を探すのは諦めて、新規に回路図を描いた。(図2<クリック>
40ピンPROM(ソケット)も端子機能の合うものが無かったので、新たに作らねばならなかった。

気になっていたのは、「KiCAD」の“バス・ライン”は太線で描けるが、相互接続はどうするのか?ってこと。
実は、結合相手同士に“同じラベル”を付せばいいだけのことらしい。例えば、[33:PA0]−[PA0:9]、あるいは、[2:PD7]−[PD7:28]といった具合。ま、それで、“ネット・リスト”は出来るもんなぁ。じゃあ、わざわざ線群を引かなくてもいいのか?!

もし、これのデータ群を準備して、基板製造工場に発注すれば、1ヶ月くらいで完成品が入手出来ると思う。
しかし、基板は小さいし、汎用性も無いし、それに「PC110 TFT化中継基板」のように複数枚作る必要も無い。
また、例の貝殻型ソケット(Clam shell socket)を直接載せたPCBを作れば、「変換ソケット」の改造などは無用になったのだが、それも1枚だけの話だから、無意味だな。
なので、これのPCB製造はやるつもりはないが、図面上では複雑そうに見えても、実際、PCBにすれば至ってシンプルで、コンパクトに出来ると分かった。


[表紙頁]へ  関連記事の目次へ


[令和元年九月二十四日(2019.09.24)]
PROMライタ自作3、回路図の更改 

前回、作成した回路図には、うっかりミスがあった。
「ゼロ・プレッシャ・ソケット40ピン」に置くべきチップの“端子配置図”の上に、「E28F002BX-T」をそのままで、描いた。
しかし、現実には、既に「変換ソケット」を使っているし、また、その接続を「紫外線消型PROM」に合うように変更してある。
まぁ、今回製作する「PROMライタ」では、「紫外線消去型PROM」を扱わないつもりだが、いずれにしても、「変換ソケット」に合わせなければいけない。
それで、機器名を(前回とは違って)「PROM WRITER」とした。(図1、図2<クリック>

“Vpp印加回路”や“RESET回路”は、左程難しくは無いと思うが、頭の中だけでは心許ないので、実験的に確かめながら決めようと思っている。
“Vpp印加(+12V)”には、“論理−レベル変換”が必要なのだが、それを元の「M75188」の一部から捻出する。(多分、これでいいはずだが?!)
今回の回路図も(最終版ではなくて、)暫定だ。

適当な「RESET回路用SW」が手元に無いので、また大阪・日本橋へ出掛けて行って、調達しなければならない。

−−−−−−−−−−−−−−−−−−−−−−−−−

+++ 配慮項目など +++

PICの出力端子の殆どは、PROM用のデータ・ライン(8)、アドレス・ライン(16+2)用として使ってしまう。
アドレスの上位2ビットの指定用として、「RE0」、「RE1」を当てた。
「UART/EUART」と「I2C」端子は、切り替えて使えるように開けてある。
また、制御関係は、CE*(CE#)=RC0、OE*(OE#)=RC1などを当ててある。

こうした割り当ては、今は最適かどうか分からない。
実際に、プログラムを組んでみて、その適否が分かる。
不適当なら、また組み直さねばならないだろうと思う。

回路を組まず(ハードウェアの方を確定せず)に、プログラムを組むことは、私には難しいので、兎に角、資料を更に細かく参照しながら回路を組んでみる(半田付けをする)。


[表紙頁]へ  関連記事の目次へ


[令和元年九月二十二日(2019.09.22)]
PROMライタ自作2、回路の抜書き 

“RS232C”部は(標準の)±12Vなので、それを(ロジックレベルの)+5Vへ“レベル変換”することが必要だが、「PV-A1200」の入出力部(IC11〜IC15)がそのまま利用出来そうだ。(図1)

その“回路接続”を解析して、必要な「RxD」、「TxD」のルートを抜き出し、全体の素案を描いてみた。(図2<クリック>
尚、[CTS]と[RTS]は、直結しておけば良いらしい。
PIC16F887」には、“I2C”機能もあるので、そちらを使うことも出来るのだが、今回は、“非同期通信系:EUSART”の方でやってみよう。

プログラミングの面で、“RS232C”と“I2C”でどちらの方が楽なのか、よく分からないので、後で変えることも想定しておく。
(「PICボード」の方で、“配線替え”をすればようだろう)

余興だが、前パネルのLEDは、動作中にチカチカしていれば面白かろうと思うので、現在の配線は切らずに残してある。
どれが、実際どんな風に見えるかは、後の楽しみだ♪

−−−−−−−−−−−−−−−−−−−−−−−−−

+++ 部品の配置(予定) +++

「PICボード」の置き場所は、ほぼ決めた!
実は、「PROMソケット」をどのように配置するか考える途中で、「ケース」の“金属天板”を切り抜くことも考えた。
だが、アマチュア的な発想をすれば、もし、“金属天板”を外した状態で“作業”が出来れば、「天板」は加工せずに済む。
そして、作業が済んだ後で(未加工のままの)「天板」を元に戻せば、「ケース」はスマートなままで保存出来るだろう...よし、この方法で行こう!

「PICボード」には、蛇の目基板:8枚組¥800税込みの中の1枚を使い、「40ピン標準型ソケット」と「40ピン・ゼロプレッシャ・ソケット」とを乗せる。(図3)
他に必要な部品は、「Xtal」と「小容量キャパシタ」だが、元基板から外した9.8304MHzx1と27PFx2を使う。
(後で気が付いたのだが、内蔵クロックがあるので、それを使えば部品や手間の節約が出来そうだ)

その前に、ACコードの端が半田付けだったので、此処を“簡単抜き差し”が出来るように、元基板を加工しておいた。(図4<クリック>
この元基板への配線が済めば、これを固定し、その後は、「PICボード」の配線に取り掛かろうと思っている。


[表紙頁]へ  関連記事の目次へ


[令和元年九月十八日(2019.09.18)]
PROMライタ自作1、着手 

「PROMライタ」の自作を決めてから、暫く、どのような“構成”と“構造”にするかを考えていたのだが、なかなか進まなかった。
(やはり、高温多湿の日本の夏の気候に勝てなかったから?...ウソ)

結局、端子数の多い「PICマイコン」(PIC16F887 ¥370税込み)を使って、“読み書き制御”をやってみようと考えた。
これの“書き込み器”として、先に買った「AE-PICPGMII」など、2、3種があるので、それらのテストを兼ねて使ってみる。
ただ、「PICマイコン」のプログラミングは、今回が初めてなので、先ず、その勉強から始めねばならない。

他方、“ホスト”として「PC110」を考えているので、「PROMライタ」として、“RS232C”経由のデータを「PIC16F887」で受けて、(40ピンのゼロ・プレッシャ・ソケットを使って、)Flashメモリ「28F002BX-T」に書き込める形にしたい。
その“容器/ケース”として、Dsub25ピンのコネクタが付いていて、+12V、+5V電源が入っているコンパクトなのがいいな、と夢見ていた。
そんな“容器”を漁っていたら、大変好適な“MODEM(PV-A1200)”のジャンク品が見付かった。(総費用¥810送料込み)
それの、入出力インタフェースもそのまま利用相出来そうだし、電源も、一応全部揃っている。(図1)
(まぁ、電流容量が足りるかどうかは、まだ分からないが)

無用なパーツ類を取り除いて、空いた箇所に、小基板を載せ、その上に「PICマイコン」と「40ピン・ゼロプレッシャ・ソケット」などを組み込もうと思う。
現在、「PICマイコン」と「RS232C端子」とを結合する「入出力インタフェース回路」を調べている。

−−−−−−−−−−−−−−−−−−−−−−−−−

+++ 回路図の作成準備  +++

単層両面基板なので、回路を追うことは比較的楽なのだが、分岐した線群を見失うので、幾度も同じ線を(無駄に)探索。
一応、必要な結線情報は、洗い出せた。

これを回路図に直そうとしたら、“部品ライブラリ”の中に無い、古い/新しい(?)“部品図”が必要で、ソフトツール(「BS3hCV」や「KiCAD」)では、直ぐに回路図が描けない。(例えば、図4<クリック>
そんな“部品図”なら、自前で作ってしまえば済むはずなんだが、それが、今回は何故か上手く作れない。

オマケに、「PICマイコン」の学習も進んでいないし、Flashメモリ「28F002BX-T」の書き込み手順も調べておかねばならないし、BIOS内容の解析も遅れているし、あれもこれもで、頭の中が“お祭り状態”になっている。

逆に、ゆっくりやろうとすると、何時まで経っても“起動”が掛からず、丸で“日本国の憲法改正”のような状態で、そっちの方向も良くない。
まぁ、憲法改正は、もう、安倍首相が釈迦力にやっても、成就可能な時期は過ぎ去ってしまっている。人気取り役の小泉進次郎氏を持って来たのは、既に詰んでしまって、何時投げようか?と問い掛けただけの話!


[表紙頁]へ  関連記事の目次へ