CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

ROMライタ

物流始動?

発注した治具用基板の追跡がずっとできない状態が続いていて、いよいよ気になってきたのでfusionPCBの窓口CHIKOさんへ問い合わせメール出してみました すぐ翌日に日本語で返信が来て 先ほ確認したところ、今ご注文は飛行機待ち状態です。ご存知だと思います…

PLCCアダプタ

以前つくって放置していたPLCC-DIP変換基板に部品を載せて完成させました。 GAL22V10焼きのために28ピンのものは先行して作っていましたがやっと今回残りも仕上げました。左から20ピン、28ピン、32ピン、44ピン用です。 1枚の基板に裏面からピンヘッダ、表…

テストクロック源

GAL22V10に8bitカウンタをインプリメントしてGALチェッカで動作確認しているところです カウンタの動作確認にはクロック源があると便利なので、ここに米粒PICで実装しました 手前の3本のピンに1Hz、10Hz、100Hzのクロックが出力…

PIC書込み

米粒PIC書込み基板ですが、SOT-23のフットプリントにチップを位置決めするのは至難の技です 特にピン間ピッチの合わせが重要なので、薄い塩ビ板をチップの両側にガイドとして貼りました。 これで上から押しても横方向の滑りが抑えられます パッド部分…

GAL用ソケット

切り離した基板からPLCC28ピン→DIP24ピン変換基板を完成させました。 これってPLCCの22V10を焼くときにしか使いようがありませんが。 危惧していたPLCCソケットとピンヘッダの両面付けは難なくできました。 先に基板裏面からピンヘッダを挿入して、表面では…

基板切り離し

長らく放置していた外注基板をやっと切り分けました。 右上の基板は6ピン米粒サイズのPICが載る基板なんですが 米粒PICを使うような用途では、チップよりはるかに大きいICSP用のコネクタを設けるのは得策ではありません。 ごく簡単な機能を書き込んで部品と…

基板完成

いっしょに発注したこちらも基板仕上がってきました やっぱりピン数のシルク抜けてます ピンヘッダーとPLCCソケットの取り付け方は手順を考えないとマズイことになりそう。

変換基板

PLCC-DIP変換基板をV50用基板とともにFusionPCBに発注しました。 44ピンの他に32ピン、28ピン、20ピン用も面付けで入れ込んでます。 データ送ってから再度ガーバーを確認したら何ピン用かの名称を書いたシルクが抜けちゃってました。 「PLCC4…

買い物ミス

秋葉原の部品屋をブラブラしていたらこんなアダプタを見つけました。 まさに欲しかったPLCC44ピン→DIP40ピンの変換で値段も700円弱。、 既製品としてはあるだろうと思ってましたが、この値段ならば基板外注して自作するまでも無いと買ってきてしまいました。…

ソケット変換

PLCCパッケージのROMやGALを書き込むためのアダプタのパタンを書いてみました PLCCの各ピンから線を引き出してDIP形状にするだけで、ま、こういうのは製品でもありますけど PLCC部分がテスト用ソケットになっているものはべらぼうな値段がしますが、自作なの…

ABEL復習

22V10書込み処理の確認のためテスト用データを作ってみます。 今度はABEL言語入力でやってみます。 。。といっても簡単なデコーダぐらいしかコーディングしたことがなく細かい文法忘れてますが。 初期のハードウェア記述言語だけあっていまさらネット上でも…

22V10対応

16V8の書込みが成功したので次はもう少し入出力の多い22V10に対応させます。 16V8と22V10ではヒューズアレイが大きくなっただけではなくマッピングも大きく変更されています ロウアドレスはシリアル入力の最後に付加する形で与えるようになりました。 ここま…

テスト書き込み

ヒューズデータの読み書きができるようになったので、実際に正しく動作する確認してみます。 まず、改めてテスト用のロジックを用意します。 いつもはGAL程度の簡単なロジックでは論理式が手っ取り早いのですが、ispLEVERでは回路図入力を 備えているので…

GAL開発環境

HDLや回路図入力からPLDのヒューズデータ生成する統合開発環境、ispLEVERをしばらくぶりに起動させたらライセンス期限切れでエラー。1年毎で更新しなくてはいけないようです。 そこでライセンスファイルの申請をするついでにのぞきに行ったら、ispL…

フォーマット変換

バッファ内に論理ヒューズ番号順にデータが読み込まれましたが、実際にGALへ書き込む場合は ロウアドレスを指定し、シリアルでデータを転送しなければなりません。 書き込み時に必要なデータセットを以下のように構造体定義しました ただしこれは論理ヒュー…

JEDECファイル読み込み

ROMライタのコントロールプログラムの修正を行い、デバイス選択でGALを追加しました。 ライタ側に選択通知されるとGAL処理ルーチンが呼ばれることになります またGALのヒューズデータであるJEDEC形式のファイル読み込みができるようにします 下はLattice社の…

ヒューズアレイ読み書き

GALへのプログラミング方法というのは実は一般には公開されておらず、デバイスメーカと契約した GALライタ製造メーカへのみ開示されるようです。 なので、ここでは昔のトラ技の記事や現在のネット上から得た情報なので動作は保証できません まずデバイス電…

GAL対応

昔のCPUボードを見るとCPUの周りにTTLによるグルーロジックがべったり取り囲んでいましたが PLDが出てきてからはずいぶんすっきりできたし、ちょっとしたロジック設計ミスだったら、しれっと 直せちゃうという最大のメリットがありました 電気消去、再書込み…

4MbitROM対応

4MbitROMの書き込み対応をほったらかしていましたが、やっと手をつけました 4Mと1MのROMのピン機能の違いは以下のように30ピンと31ピンだけで、 この2本を上位アドレスに割り付けて容量を4倍に増やしています。 では潰してしまった/PGM信号はどうするかと…

4MビットROM

4Mビット(512kWORD×8bit)のUVEPROM、HN27C4001を入手しました。 ダイのサイズが大サイズでけっこう見栄えがします。 ・・・もっとも窓に紫外線避けのシールを貼ったら台無しですが。 32ピンの27XXX系のROMはチップセレクト/CSまたはアウトプットイネーブ…

ファームウェアダウンロード化

ROMライタ本体のファームウェアは開発中はデバッガでRAMにロードして動作確認し、フィックスしたところでCPU内蔵のフラッシュROMに焼き付けるつもりでした。 ところがケースの中に組み込んでしまうとH8/3069F基板のブートローダを起動するDIPスイッチに触る…

コネクタ取り付け

もともとのI/FだったパラレルCPUバス用のHIF3コネクタは不要になったので取り外し。 当て板をして代わりにRS232C用のDsub9ピンコネクタを取り付けました。 電源入力もAC用のメガネコネクタだったところに同様にDCコネクタをつけています

Windowsプログラミング

ホスト側プログラムのユーザインターフェース(、といっても見た目だけですが)をちょっと修正。 ツールバーに並んだアイコンをクリックすると大体のコマンドが一発で動きます。 内部処理も一応オブジェクト指向?にしてファイル処理、シリアル通信処理、R…

アドレスデコード変更

このROMライタには8255が2個あり、それぞれアドレスバス制御、データバス制御と役割分担していますが実はI/Oアドレスは、同じ番地に重複してマッピングされています デバイスの切替えのためには、さらに別の制御用パラレルポートへビットを立てる事でそれぞ…

ワードROM

1ワード16ビット幅のROMの対応を行いました 今まで使ったことが無いのですが、さすがに新品では入手できないので、ジャンク屋で見つけてきました。40ピンセラミックパッケージで実装面積がおおきいし製品に使うメリットってあまりないようで使われている例っ…

データイメージ化(4)

この状態でも、境界部分に細かい周期的なノイズがありやはりセルの読出し順序に問題があるようです。 画像を拡大してみると奇数アドレスのビット配置を逆順したら良さそうだと気付き、処理したのが右図です。ついでに縦方向を1/2に圧縮して1:1の画像にしま…

データイメージ化(3)

次にマスクを斜めに貼ってみました この状態のイメージを出力すると大まかに斜め線が出ていますが、ひどいジッタがあります。ビットマップ画像上では16ライン(メモリアドレスで256バイト)周期で4周期繰り返されていることから、これはデータの読出し順序…

データイメージ化(2)

それではこういうふうに窓をふさいだらどうなるかというと、 予想に反してこんなストライプになってしまいました データとして読み出すと、0x0fとか0x07とかLSB側に1が詰まったデータが読み出されます。同じアドレスの各ビットのメモリセルは隣接していると…

データイメージ化

ROMの窓に一部マスクをかけて10分間紫外線消去した後、データを吸い上げて、バイナリエディタで開いたところです これを見ると全0x4000バイト(16384バイト)のうち0x1800位~0x1FFFと0x3800位~0x3FFFの2箇所に0xFFで満たされた領域があり、これが紫外線に…

ROMデータ読取

ROMプログラマのファームにLOADコマンド(ROM→バッファ)、DATAGETコマンド(バッファ→PC)を実装し、ROMの中身を吸い上げられるまでになりました ところでUV-EPROMって構造が固体撮像素子と似てますね(?) 128kbit UV-EPROM 120万画素…