更新履歴&製作日記

9月14日

 GALのヒューズに乱数を書きこんでも、書きこめることがわかった。GAL書きの不安定の症状は、特定の列にデータが全く書きこめないということだ。書けない列は毎回変わる。しかし書きこめるときもある。その辺の状況を再現することは難しい。また、GAL22V10のシグネチャ領域にデータを書きこむルーチンにバグがあったので直した。GAL22V10DやGAL20V8Bの書きこみは順調。しかし、GAL16V8DのACW領域には相変わらず書きこめない。何が違うのか、困ったものだ。
 GALの書きこみ不安定の原因はおそらくCPLDの温度と関係があるのではなかろうか。電源をずっと入れっぱなしにしておくと書きこみできるようになる。  PALCEも試したが、ためだった。

9月13日

 秋葉へ行ってGALを買うついでに、W松で中古EPROMが安かった。TMS27C210とNS27C210が2MByteとして売られていたので喜んで買った。しかし書きこんでみるとアドレスが0x10000を超えたところでエラーがでる。調べてみるとC210は1MByteらしい。たしかに紛らわしい名前だ。ぬか喜びだった。
 しかし、GALの安定性は悪い。よくよく見てみると、16V8のACWの部分の書きこみで毎回エラーするようだ。どうやら単純なプログラムのミスのようだ。
 いままでいろいろなデバイスを書きこんできたつもりだが、いざ一覧を作ってみると意外に少ない。もっともっと増やさねば。

9月12日

 ほんとうに久々にアップする。MOTファイルとHEXファイルとJEDECファイルを統一的に、しかもHEXファイルが8bitで記述されていても16bitで記述されていてもOKなようにプログラミングするのには骨が折れる。その勢いでGALにも対応させた。しかし、GAL16V8の安定性が悪い。ためしにGALのグラウンドピンの電圧を測ってみると読み書き中に50mVから100mVの電圧が発生している。これはおそらくトランジスタのVce(sat)が原因であり、これが不安定さの原因であると思う。また、今使っているGAL16V8には数百回は書きこんでいるのでもう寿命かもしれない。明日秋葉へ行ってGALを買うとしよう。

8月14日

 久々にアップする。というのも、PICのためにIntelHEXファイルを扱う必要があるのだが、単純なライタと違ってメモリバッファの取り扱いが複雑なので苦労した。IntelHEXファイルやMOTファイルではメモリ上のアドレスが細切れになっているが、ベタのバイナリファイルではそうではない。これらの異なる形式をいかに融合させるかがとても大変だ。バグをつぶしてもつぶしても新しいバグが顔を出す。
 現在のソフトウェアでは各ファイルがあまり融合されている感じはしないが、今後はプロジェクトという概念を導入して統一して扱っていきたい。

7月2日 未明。

 EPROMなどでの動作確認ができた。まだまだやることは多いが、とりあえず寝よう。

7月1日

 昨日、プリント基板が業者からあがってきた。また、秋葉原に赴き、部品の値段を確認してきたところ、9172円にもなった。もう少しコスト削減努力をしなければ・・・

6月21日

 プリント基板の設計終了。早速、業者に発注。ガーバーファイルをWindowsで表示できるツールがほしいけど、Vectorにあるやつはなぜかまともに動かない。また、このページの構造が複雑化してきたのでこまった。もっとわかりやすくしなければ・・・

6月19日

 やっと新回路図の回路が書けた。基板もほぼ設計終了。あとは最終チェックをして業者に出すだけ!ちょっとこのページの内容が無節操に増えてわかりづらくなってきたので、改善を試みる。

この間ぜんぜん更新日記を書いていないなぁ

5月6日

新・電源回路の開発

5月6日

プリント基板の写真など

4月30日

新・電源回路の開発

4月30日

回路図の致命的な間違い

4月29日

部品の写真集

4月29日

プリント基板の写真公開

4月29日

今後のバージョンアップ予定発表

4月4日

CPLDの配布のキャンペーン期間が無期限延長

3月28日

ソフトウェアのバージョンアップ

3月12日

ちょこっとページの体裁を変えた。

3月11日

回路図の更新。プリント基板情報。

2月17日

回路図の更新。

2月12日

基板写真をわかりやすいところにおく。

12月11日

回路図の更新。abelソース公開など。

11月30日

このページをわかりやすくした  XMPインフォーメーション(このページ)のコンテンツがわかりにくかったので、かなり手を加えた。それといくつかの情報も加えて、ユニバーサルプログラマに関する情報が少しでもわかりやすくなるようにした。

11月26日 CPLD内部の構造公開とトランジスタサービス

 CPLD内部の構造を公開した。
 また、本日以降、CPLDを購入してくださった方には、デジタルトランジスタを20個サービスします。

11月18日 不良デバイス?

[18日 ダス通信]
 本日、出荷用のCPLDを書き込んでいたところ、書き込みは正常であるのに動作がおかしいデバイスが見つかった。どうやら特定のピンがおかしいらしい。とりあえずこのデバイスはよけておいた。
 なお、本日、ff00.exeのVer0.9.9を公開した。これでGAL22V10に正常に書き込みができる。、

11月15日 写真公開

[15日 写真公開]
 とりあえずデジカメを借りてきてユニバーサルプログラマの写真を撮った。これからユニバーサルプログラマを製作される方や、今製作中の方は参考にしてください。写真はクリックすると大きくなります。
XMP TOPVIEW PHOTO XMP BOTTOMVIEW PHOTO
なお、先日公開した回路図には、まだ間違いがありました。TL497の8番ピンはGNDにつないでください。間違った回路図ではオープンになっています。
現在はGALの書き込みもできるようになりました。GALの書き込みができなかった原因は、電源をONにするタイミングの問題でソフト的な問題でした。
また、現行バージョンのFF00.exeではプリンターポートのアドレスが3f8でない機種では動きません。
これらの問題は最新版のFF00.exeでは直っていて2、3日中に公開します。

10月27日 原因解明2

[27日 ダス通信]
 2号機がうまく動かなかったのは、やはり電源制御用のトランジスタが原因であった。大量に並んだNPNの抵抗内蔵トランジスタを、トランジスタアレイで置き換えたことが原因だった。また、今回はPNPの抵抗内蔵トランジスタの代わりに普通のPNPトランジスタを使った。抵抗内蔵トランジスタはベースがエミッタに抵抗を介して接地されているため、入力が開放になったときにはベース電位はエミッタにプルアップされる。しかし、普通のPNPトランジスタでベースが開放になったときにはその電位はあまり安定はしていない。以上のことが原因となって28ピンの#OE端子の電位が変にプルアップされてしまっていたのが原因らしい。
 NPNにトランジスタアレイを使った場合は、PNPのトランジスタのベースを10kくらいの抵抗でプルアップすれば問題なく動作するようにもなった。
 本日、CPLDの発送を致しました。ご注文いただいた方、遅くなってしまい誠に申し訳ありませんでした。

10月22日 原因解明

[22日 ダス通信]
 2号機がうまく動かなかったのは、どうやら電源制御用のトランジスタが原因であったようだ。28番ピンにつながっているトランジスタの動作が多少おかしいため、28番ピンに大きな容量負荷がかかっているか、もしくは正のバイアスがかかってしまっているために、28番ピンに出力した信号のレスポンスが悪くなっていた。
 通常のROMでは40ピンソケットの28番ピンは#OEのピンなので、この信号がアクティブになってからデータバスに信号が出力されるのには数百ナノ秒かかるものもある。この信号の遷移が十分でなかったため、今回のような現象が起きた。
 解決としては、読み出し時のパルスを送出する時間を測るタイマーの値を伸ばすことが考えられるが、これは根本的な解決になっていない。ユニバーサルプログラマ1号機と比較すると、2号機では電源制御用トランジスタの一部にダーリントンタイプの集合トランジスタを使ったのでこれが災いしているのかもしれない。

10月20日 あれー。

[20日 ダス通信]
 2号機がどうしてもうまく動かない。原因がCPLDにあるのか、回路にあるのかわからない。同じCPLDでも1号機では巧く動作していたのに。多ピンのPLCCのソケットは接触不良が多いと聞く。それが原因だろうか?
 現在困っている不具合はどういうものかというと、EPROMのダンプ開始直後、もしくはダンプ中にPAUSEキーを押してとめた後再開した時の、最初の2から8バイトくらいのダンプの結果がおかしくなるということだ。このデバッグでもう3日ほどたっている。
 CPLDを注文してくださった方には、大変申し訳ないのですが、この不具合が解消されるまで今しばらくお待ちください。CPLDは大量に入荷できたのですが、この不具合の原因を突き止めるまでは発送を見合わせたいと思います。

10月19日 スイッチング電源が復旧

[19日 ダス通信]
 スイッチング電源が巧く動かない原因はTL497の故障であった。コイルの種類を変えると多少効率が変わるためか、電源電流が変わる。新しいスイッチング電源で一番よい結果を得たのは皮肉なことに540μHのチョーク型コイルだった。ちなみに、TL497の時定数用コンデンサは470uFに変更。

10月18日 スイッチング電源が巧く動かず

[18日 ダス通信]
 新しく作ったユニバーサルプログラマ2号機のスイッチング電源が燃えたようだ。TL497のくせに電流が1.5Aも流れた上、非常に熱くなっていた。煙すら出たようだ。
♪「スイッチーング、燃やしたーぜー
 スイッチーング、燃やしたーぜー
 電源 燃えるときも魅力的だぜ!」

 この替え歌の元ネタがわかる人は偉いと思う。決して誉められる ことではないが・・

10月17日 デバッグの展望

[17日 ダス通信]
 新しく作ったユニバーサルプログラマ2号機がうまく動かなかった原因がほとんどわかった。それは、コイルの種類の問題と、トランジスタアレイを使ったことによる問題、そしてプリンターケーブルが内部でショートしていたのが原因だった。
 大変おまたせいたしました。いままでに、CPLDをご注文頂いた方には、19日か20日には発送いたします。

10月12日 多忙!

[12日 共謀通信]
 ユニバーサルプログラマをデバッグしないうちに工大祭に入ってしまったが、何とか動作し、展示も一件落着した。しかし、なひたふ氏はこの2週間も家の引越しや様々な原因でタスクが急増し、バスコンフリクトが多量に発生したため作業の効率が著しく落ちている。
 本来ならば、すでにユニバーサルプログラマ2号を完成させ、デバッグや性能評価を済ませ、トラ技の原稿も書き終えているはずだったのだが、まったく進んでいないのが現状である。なひたふ氏は今晩から猛スピードで溜まったタスクを処理する方針を表明した。
 人は言う。「なぜそんなに忙しいのに貧乏なの?」

10月8日 ユニバーサルプログラマ2号機完成近し

[8日 口イタ-]
 今日未明、なひたふ氏のユニバーサルプログラマ2号機の配線が終了した模様だ。ユニバーサルプログラマの総配線量はかなりおおく、夜明け前まで作業が続いた。配線後のデバッグのいくつかははxmp0827s.lzhに含まれている古いバージョンのFF00.EXEを利用して行われたらしい。詳しいことはわかってはいないが、これからされに綿密なデバッグに入るという。
 今回のユニバーサルプログラマに関しては前のものよりもずっと安定しているイメージだが、原因不明のバグがひとつある。それは、プログラマ側からPCにデータを送るときにはシリアル通信にして送っているのだが、最後の1ビットが正しく送れないという現象 がかなりの頻度で発生しているのだ。この件に関しては今後のデバッグでとれるだろう。
 一連の事件に関してなひたふ氏は「ユニバーサルプログラマを作るのは結構しんどい」と感想を漏らしている。そのため、HPの表紙にある「誰でも簡単につくれる」の謳い文句を削除する方針だという。

9月31日(carry) なひたふ帰る

[30日 ダス通信]
 30日午後8時過ぎ、なひたふは東海村から帰宅した模様。帰宅すると、大量のメールがたまっていたが、その9割はメーリングリストからのものなので、ちょっとがっかりしている模様だ。  その前日の29日の夜、なひたふは宿舎の寝室で半田ごてをおもむろに取り出し、明け方の5時まではんだ付け作業をした可能性がたかい。そのためか、ユニバーサルプログラマ2号機はほとんど仕上がっているという。残すは、40ピンソケットの配線と、VPP制御用のNPNトランジスタのみだという。  この件に関してなひたふは「電源の配線がすべて終われば、回路製作の半分は終了したも同然だ」とコメントしている。

9月24日 なひたふが音信不通になる!?

[23日 ダス通信]
 関係者らの話によると、CPLDユニバーサルプログラマの製作は順調にすすんでいるらしいことが23日までの聞き込み調査によりわかった。現在は徹夜によりとりあえず、電源の配線は終わったことがわかっている。
 しかし、次の日曜日の夜から来週の木曜日の夜まで、なひたふは東海村に行くことになっているので大幅な作業の遅れが懸念されている。それどころか、なひたふが宿泊する予定の、東海村の宿舎ではインターネットが勝手に使えわけではなさそうなので、ホームページの更新はおろかメールも使えなくなる可能性が示唆され、深刻な問題となる恐れがあると関係者は指摘する。
 もし、なひたふ新聞がまったく更新されず、メールも返事がなかったときは、東海村でインターネットから切り離された生活を送っているだろう。

9月22日 CPLDユニバーサルプログラマに2号機登場か?

[21日 ダス通信]
PCB IMAGE TOP ICB IMAGE BOTTOM  今日未明、都内某所にてなひたふがユニバーサルプログラマの2号機を作っていることが判明した(右写真)。2号機は1号機と回路的にはほぼ変わりないが、電源の配線やレイアウトなどに気をつけてより見栄えのよいものになるらしい。2号機を作り始めた動機に関してはまだわからないことが多いが、「なひたふ」新聞に掲載されている情報のみで、本当にユニバーサルプログラマが作れるかどうか、回路図や記載データに大きな間違いがないかどうかを確かめることが目的らしい。
 なお、右の写真のところまで作るのに半日程度かかるという。その理由は、電源ラインを1mmφの太い錫めっき線でしっかりと作っているからである。もし、0.5mmφの錫めっき線などを使えばもっと早く作れるようだが、その分電源の信頼性はほんのわずかに下がると関係者はもらしている。

9月7日 CPLDユニバーサルプログラマコントロールソフトが大胆にバージョンアップ!

NEW CONTROL SOFT [7日 ダス通信]
「なひたふ新聞のユニバーサルプログラマは簡単に作れて高機能だが、ソフトの使い方が難しい」と、従来から酷評されてきたが、このたびソフトの大胆なバージョンアップが発表された。右の写真をみても明らかなように、従来の使いにくいコマンド型が一変して使いやすそうなメニュー型に変わっている様子がうかがえる。この新しいコントロールソフトは従来の回路がそのまま使えるようだ。しかしながら関係者の話によると、各社のFlashROMが保有する潜在的なパワーを100%引き出すためにCPLDの内容を若干変更する予定があることがわかった。なお、右の証拠写真はクリックすると大きな絵になるらしい。

10月17日 家の引越しなどの用事もほとんど片付き、再びユニバーサルプログラマの開発を続ける。ユニバーサルプログラマ2号機の電源回路が不調であったが原因がわかった。
TL497用のコイルにチョークコイルはやっぱり使えない。トロイダルか抵抗型のやつ(名前知らず)を使わないと上手く行かない。
・本機の回路にはトランジスタがいっぱいあるが、楽をするためにトランジスタアレイ(集合トランジスタ)をつかっては行けない。トランジスタアレイの内部構造はほとんどがダーリントン型で、内部の結線状況をみるとコレクタとエミッタの間の電圧が0.65V以下に下がらないためだ。多少面倒でもRN1205などのダーリントンではないトランジスタを使わなければならない。
9月8日 コントロールソフトの新バージョンを発表。PICに関する問題点(READできない、VERIFYできない、間違ったデータが書き込まれる等)が改善された。
FlashROMにある程度対応したが、まだまだ残されている課題は多い。
9月1日 FLASHROMの書き込みができるようになった。近日中に公開する。思えば、いったい何ヶ月間このユニバーサルプログラマに取り組んでいるのだろう。
8月28日 Macronix社のEPROMとFLASHROMのパラメータを入力した。
8月吉日 PICの書き込みはできるようになった。INTEL-HEXの様々なバリエーションにも対応させた。
8月13 シリアルEEPROMに対応!とりあえずは、Microchip社の24LC64に対応させた。今度はPICをねらう。
8月11 GALの書き込みがとりあえずできるようになるまで回復した。いつまでもGALにこだわっているわけにはいかないので、GALの書き込みの耐久テストや安定性テスト等は今後の課題という事にして、とりあえず次に進む事を決意。
8月9日 そうだ。やっぱり、30usのタイミングが守られていなかった。入出力ルーチンをアセンブラで書いても同じだった。EEPROMのページ書き込みに関しては、ページライト動作の時のタイマーウェイトルーチンをはずすことで、ライトパルスの間隔を15us程度に押さえることができた。Celeronマシンをブンブン動かしても15usというのは、プリンターポートはずいぶん遅くないかい?ちなみに486SX(20MHz)のマシンで同様の処理を行わせたら、50usくらいかかっている。たまにエラーする。一度エラーするとエラーしやすくなる。今後めちゃくちゃ速いマシンが出たときに困るかもしれない。

徹夜で安定性試験を行う。なぜかGAL書き込み時の安定性が悪い。ちなみに、486SX(20MHz)のノートパソコンで実験したが、マシンが非常におそいためかプログラムのバグかわからないが、エラーが多発した。電源の問題かもしれない。

私の手書きの回路図で、XMP1にGNDPICとGNDR40のピンが無いことに気づく。実はGNDPICはVPP25と、GNDR40はVPP1とそれぞれ論理的に同じだからこれでもよかったのだが、最近の改造によってそうとも言えなくなってきたので、GNDR40とGNDPICのピンを新設した。

XMPという名前をgooで検索したら、サウンド関係に同名のツールがある事がわかった。XMPとは[X Multi device Programmer]の略なので、XMDPにしようかと考えているが語呂が悪い。もちろんXというのは使っているCPLDのメーカー名の頭文字。

GALの書き込み前に自動的に消去ルーチンを起動するようにしたが、リセットするのを忘れていた。この不具合は明日なおす。

CPLDをソケットにさした時に裏から見たピン配置を描いている最中。


8月8日 日立のデータシートを再び読んだ。EEPROMに書き込むときにページ書き込みをしたいならば、次のライトパルスを30us以内に送らなければならないことがわかった。もしかしたら、最近「時間にゆとりを持った設計」に改造していたのでこの時間が守れなくなっている可能性があると思った。家に帰ったら早速チェックしてみよう。

8月7日。CPLD1の内部に2種類のタイマーをもつことで、上のセットアップ時間の問題を解決しました。書き込みサイクルが開始すると、まず、CPLD1からCPLD2に書き込んだデータが送られます。タイマーとステートマシンにより、2.25us待ちます。それから、メインのタイマーをまわしますが、メインのタイマーのまわっている最中にCPLD2が書き込みパルス(#WRとか#PGMとか)をアクティブにします。

書き込み時のデータ・セットアップ時間は、メーカーによって1usのものもあったり、2usのものもあったりするので、最大値をつかっています。この時間の差はたとえばROMに1MByte書き込んだとしても1秒の差しかないので、最大値を使っても何ら差し障りはないと思います。

それから、今日、都内某所にて、某社の某ユニバーサルプログラマにデジタルストレージオシロをあてて動作解析を行いました。いろいろと参考になるところは大きかったです。

大学時代のとある先輩から、「高級なユニバーサルプログラマは、ベリファイの時に電源電圧を4.75Vから5.25Vまでふって(つまり5V±5%の条件の中で)正しく読めるかをチェックしている」と教わりました。ユニバーサルプログラマって本当に奥が深いものですね。ちょっとめげました。

ROMの読み出しのときに、ウェイト時間を最速にすると前のバイトのデータが読み出されてしまうので、いつも1Wait入れていました。でも、超遅いROMでは1Waitでも足りないということがわかりました。昔は平気だったのに今だめなのは、CPLDを低速・低消費電力モードに設定したのが原因だろうと考えています。

プリンターポートの遅さが問題になっています。486SX20MHzのマシンで実験したところ、書き込みの歩留まりが下がりました。おそらくはソフトの問題であるとおもわれますが、このようなシステムに依存するような問題点は早急に対処しなければ・・・と思う次第でございます。

IO関係のところは、アセンブラで書こうかな..とおもっています。

電車の中で、GALが書き込めない


8月5日、大枚をはたいてGAL22V10Bを購入し、GAL22V10にも対応させました。その代わりにEEPROMのページライトができなくなってしまいました。たぶん簡単な理由なのですぐに(今晩中には)解決すると思いますが、まだ原因不明です。

それから、GAL16V8Bの書き込みでライン0に正しく書き込まれなくなってしまいした。恐らくはデバイスの劣化によるものだと思いますが、原因は究明されていません。なにしろ、一晩に50回くらい書いたり消したりしているので、そろそろ寿命かなという感じです。

最近、DOS/Vのプリンターポートが意外と遅い事に気が付きました。GALの書き込みの際のシリアルクロックをCPLDに自動で発生させようかな・・と悩んでいます。

EPROMに書き込む際のデータセットアップタイム

ADDR =====x============x=====
DATA =======x============x
WR   ---------\______/----
            ^^^
            tsu

が守られていないかも知れないのに、平気で書き込めている。なぜだろう。実は守れているのかな?


次はどこへ行きますか?
前へ 先頭へもどる
このWebページ上で紹介したすべての回路、情報、内容に関する著作権は「なひたふ」が所有します。無断転載を固く禁じます。
(C)Copyright 1999-2000 Nahitafu