CPU実験室

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

ROMライタ

ソケット交換

ターゲットROMを差すところを32ピンZIFソケットに置き換えました。こうするとツールとしてきれいにまとまって見えます。PLCCアダプタもこの上に載せればOK。 ところでこのZIFソケット。草色のボディ、レバーの形状といい3MのTEXTOOL(tm)そのも…

らい太くん4爆誕

ROMライタのハード、ファームはこれで完成としました。新旧のFlashROMライタを並べると幅は同じくらいですが厚みは半分です。これらは同じPC側ホストプログラムで制御できます。 今回のプロジェクトは最終的にケースにも収まって珍しく完成度が高いのですが…

I/F変更

PC上で動作する既存のROMライタホストプログラムは次のようなコマンドを発行します。これを受けて応答を返すようにROMライタ本体のファームウェアのI/Fを変更しました ケースに組み込んだ際、コントローラをPIC16F914からPIC16F1939に差し替えておきました。…

ROMライタ組立て

ケースの中にROMライタ基板がきっちり収まりました。 USBコネクタは子基板でケースの内法ギリまで持ってきましたがケースが肉厚のため、口金だけ露出させてもプラグがどうしてもささりません。仕方がないのでプラグそのものが貫通する大穴を開けてコネクタに…

ケース加工

今回作ったフラッシュROMライタ基板は、TLCS-900ボードのモニタROMを焼いてしまったので当初の役目は完了したのですが、せっかく作ったのでツールとして使いやすいようにケースに入れてみることにしました。 ライタ基板は100×50mmで一回り大きいタカチのプラ…

プログラムサイズ

今回、データバッファ用の3.3V動作SRAMに手持ちのTC55V1001を使いました。これは1Mbitなので4MbitのフラッシュROMのどこに割り当てるかという指示が必要になります そのため、DLL(シリアルからSRAMに転送)、LOAD(ROMからSRAMに転送)、PROGRAM(SRAMからR…

暫定完成

ROMライタ基板が一通り動作するようになりました。 ハードも一部改修。ROMの電源制御は意味がなかったのでフォトMOSリレーを抜いて2次側を直結常時通電として1次側を制御していた信号でインジケータのLEDを点灯するようにしました。これでROMをアクセスして…

データビット入れ替え

何故かこういう失敗がよくあります。/RDと/WRとか・・ 今回は連番で並んでいる信号線をよく見ないで上から順番にラベルを付けちゃったみたいです。 問題の個所は19ビットのadrsの値を8ビットづつ分離してPORTA,PORTB,PORTEに出力しているところで void set_a…

チップイレーズ

rom_poke()という関数はこれを呼べばメモリセルにそのデータが固定されるわけではなくROM内部の制御レジスタに書かれるだけです。本当のプログラムのためには一連のアドレス/データを次々に書き込むコマンドシーケンスを実行することになります。 たとえばチ…

ROMアクセス

基板上のRAM,ROMをアクセスする関数から作り始めています。PICにプログラミングするICSPコネクタは基板の裏面に設けたのでこんな体勢でデバッグしてます。 メモリの読み込み(peek)、書込み(poke)はこんな感じ。データバスにつながったportDを読み込み時…

ROMライタデバッグ中

基板上のPICにデバッグ用のプログラムをDLLしては各部の動きを少しづつ確認しています。ターゲットのソケットにはPLCCアダプタを介してAm29LV040を仮に載せています 簡単な回路なのですが、いざ動かし始めると設計をミスった所が見えてきたり、コーディング…

部品挿入

フラッシュROMライタ基板を切り出して部品実装はじめました 手持ち在庫だけでほぼ完了。ターゲットのROMは左側のDIP32ピンソケットにさらにZIFソケットを介して載せますが、ターゲットがほぼPLCCパッケージなのでDIP-PLCC変換アダプタ基板を直に載せてもいい…

パタン最適化

オートルータの最適化は完了しているのですが細かい部分を手修正しています。とくにラインがこんがらがっているところは部品を移動させたり、多少遠回りさせてみるだけでも劇的に改善する場合があります。 一方、パタンは回路図通り厳密に接続されていますが…

回路修正

ざっくりと引いたROMライタの回路ですが、細かいところを修正しています。 まずホストとの接続ですがシリアルのDSUBコネクタはさすがにかさばるのでUSBシリアル変換基板に置き換え、さらに電源もバスパワーでもらうことによりDC電源ジャックも廃しました。ま…

レベル変換

普通に5V系と3V系を接続するならば入出力にレベル変換用のバッファを付ければできるはずです。最初はその方向で現状のROMライタに載せるアダプタを考えてました。 DIP32ピンの連結ソケットとPLCC32ピンソケットの間にレベルコンバータが入ってます。 アドレ…

低電圧ROM対応

古いCPU相手であれば電源電圧は5Vでだいたい用が足ります。(もっと古いと+12Vとか負電圧が要る場合もありますが)ですがたまにちょっと最近のデバイスをいじろうとするともう3Vや3.3Vが普通なので周辺部品も考えなければなりません。 意外に困るのがROMで動…

EEPROM書込み(2)

現状では書込みサイクルが約18msのため64kbitROM全面書き換えには18ms×8192で約2分30秒かかります。これでも待てる時間ではありますがやはりBUSY状態をポーリングして書込み処理を高速化してみます。 データシートを見ると/BUSYピンの状態を見る以外にも ①デ…

EEPROM書込み

NS揃いにはなりませんが、ROMを準備していたEEPROM:HN58V65Aに換装して動作確認してみます。 EEPROMならばボード上で電気的消去、書込みはできますが一番最初は別のシステムで書込みをしておかなければならないので自作のROMライタにデバイス追加しました。…

ほぼ完成

アルテラのCPLD書込みボードはEPM7128(PLCC84ピン)の方も正常動作しました。ここは44ピンソケットと排他的でどちらか片方しか差し込めません。あと残りはソケット周りにある信号プローブ用のピンヘッダをつければ完成です

回路図入力

Quartusでまずは回路図入力でコンパイルのテストをしてみました。 4MHzの水晶クロック入力を16ステージのプリスケーラで選択した後、10ステージのバイナリカウンタでLEDをチカチカさせます。 回路図を入力したらそのままコンパイル。最初はピンアサインが適…

書込みボード完成

CPLD書込みボードに残りの部品を載せてほぼ完成させました。プログラマはUSBブラスターの中国製互換品で600~700円くらいで手にはいる奴です。メーカ純正品だと1万円以上するのにこんなんで大丈夫でしょうか・・ テストクロック源周りの実装状況です。レイ…

Quartusインストール(2)

まぁ世の中、自分が疑問に思うことはたいてい既に解答が出ているわけで。 ALTERAの商社MACNICAのFAQより。 Ver13とはずいぶん前に切り捨てられてしまっているようです。旧Verをはたしてダウンロードできるかと不安に思いながら再度Intelのサイトに行くと・・…

Quartusインストール

書き込みボードがだいたいできたのでCPLDの開発環境を用意します。アルテラCPLD用の統合環境QuartusⅡはかなり以前に数回使ったきりで今のPCには入ってないので新たにインストールしてみます。 「Quartus」で検索すると真っ先にリンクされるのがIntelのサイト…

PICプログラム

CPLDボードの基板裏面にあるテストクロック源のPICをプログラムします。すでに1/10/100Hzを出力するコードはできているのでこれをダウンロードするだけです。 米粒PIC10F222を自作アダプタにセット、PICKIT3に接続しました。頬を赤らめて困り顔してます。 と…

CPLDボード

GAL書き込みが何とか目途がついてきたのでMAX7000CPLDボードの方も着手しました。 仕上がってきた基板を開封しました。今回青レジストにしてます。 84ピンと44ピンのPLCCソケットがついていますがこれはディジーチェーン接続されているわけではなくJTAGはパ…

ホストプログラム修正

ホスト側プログラムをデバッガで追っていくと原因が分かりました。現状のプログラムは行の先頭に大文字の「L」があるとその行がヒューズマップと見做してアドレス、データを切り出していました ところがWinCUPLが出力するJEDECファイルには「Location None」…

WinCUPL

とりあえず一番きたないチップに以前ispLEVERで作成済だった8ビットUP/DOWNカウンタのJEDECファイルを書き込んだところ、正常に動作しました。デバイスのほうはだいじょうぶみたいです しっかし開発環境が問題。いままで製品同等のツールをアマチュアが無償…

GAL22V10

深センの業者に部品を何種類か発注していたのですが、まあこういう時期であるためかあるいは順当なのか1か月くらいかかって無事到着しました。が、部品を取違えています。手配したSOPのSRAM5個が入ってなくて代わりに24ピンDIPのICが20個も・・・それにして…

ランド追加

発注済の基板は確かに出荷されてるのですがシンガポールの交換局から全く動かないので次発注予定のCPLD基板の設計をブラッシュアップしてます 基板上で同じ機能だけど異なるパッケージのものでも付けられるように予備パタンを置くにはどうすればいいか悩んで…

クロック源

CPLDデバッグボードにはカウンタなどの動作確認をするときのために555をつかった発振器をおいていますが、そういえばGALチェッカを作った時に米粒PICでテストクロック源を用意したのを思い出し、いまになって追加で載せることにしました PIC10F222で1,10,100…