CPU実験室

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

68k

基板容量測定

トランスピュータボードは既知のパタンミスを修正、先ずパスコンの積層セラ0.1uFを20個はんだ付けしたところでいつものように電源端子から見た容量を測定してみました。0.1uF×20個=2000nFのところ実測約1900nFとなったのでパスコンの取付はうまくいったよう…

回路変更

68k

SOICのフットプリントをSOPに差し替えると周囲のパタンやビアに接触してしまい引き回しにかなりの変更をしなければなりません。なるべく今の占有エリアに収まるように74LS06は抵抗入りデジタルトランジスタに置き換えることにしました もともと6ゲートあるう…

SOPパッケージ

68k

この68030ボードのグルーロジックはほとんどCPLDに収めてしまいますが一部オープンコレクタでのドライブが必要で74LS06を1個使っています /RESETピンは双方向性で外部からのリセット信号を受ける入力であると同時に、CPUがRESET命令を実行すると周辺デバイス…

引回しほぼ完了

68k

オートルータが出力した結果に細かい修正を加えて仕上げにかかっています。シルクの基板端面切れとサーマルビアのスポーク不足エラーは消えませんがこれは仕方ありません。あとは原寸で印刷してSOPのフットプリントはもう一度確認しておくつもりです 第1層…

パタン設計

68k

68030ボードのパタン設計をしています。 さすがにこれくらいピン接続が多いと2層では無理っぽく、驚きの低価格になってきた4層にチャレンジしてみます。JLCPCBだと100×100mm5枚で$7とはちょっと信じられません 多層基板だと内層はベタの電源プレーンにして…

MPUまわり

68k

MC68030ボードの進捗ですがMC68030,MC68882のシンボルを作成、それぞれをバス結線までしたところです。 これらの相互結線はデータシート通り一意に決まります。一方MC68030側のいろいろな制御信号ピンは明らかに未使用なものはプルアップ/プルダウンで処理し…

基板レイアウト

68k

68030ボードですが100×100mmの基板に部品を並べてみました。ギリギリ収まってますがいまだにDsub9ピンが乗ってるのも如何なものかとは思います 3Dでレンダリングしたところです。PGAもすべてPLCCのモデルで代用してしまっていますがみためはスッキリしていま…

68030プロジェクト始動

68k

ようやくPentiumに着手・・と言いたいところですがやはり64bitバスというのに怖気づいて結局32bitバスのMC68030に日和りました ささっとブロック図書いてみました。 メインのMC68030にやっぱりこれは欠かせないFPU:MC68881を配しています。ブートROMは68kシ…

スルーホール品挿入

68k

表面実装品が終わったのでPLCCソケットをはじめスルーホール部品をいくつか実装しておきました。これでDSP周りの動作確認が始めることができます。 さっそくDSPを挿入して電源供給・・といきたいところですが既にSRAMは実装済でバスラインに接続されています…

スイッチ交換

MC68020ボードを収納しているケースの電源スイッチが接点が腐食してるか何かで壊れていて2回路のうち片回路で配線を直し、支障はありませんがそのうち交換してやろうと思ってました。 がんばってメタコンとか使って製品っぽく作ってますがAC100Vとかヒュー…

コンパネ修理完

基板裏面の桁ドライブのトランジスタ周りを実装。 あとから拡大してみるとえらく汚い・・・ 表面にはLCDを取付けたのですがここで失敗発覚。 LCDにつながるピンヘッダは表からの実装ですがスルーホールで表のパタンと裏のランドがちゃんと接触していなか…

部品挿入

基板を切り分け、部品実装を始めました 表面 7セグLEDとLCD、押しボタンスイッチは高さの調整がいるので先ずはLEDを取付け基準にします 裏面 I/F基板に接続するコネクタ、コントラスト調整用のVRだけ付いています あとは桁ドライブ用のトランジスタ周りが残…

ビア作成完了

スルピンとハトメの打ち込み完了しました 後は面付した各基板を切り離して完成です 表と裏のパタンのアライメントがいまいちですが何とか許容できる範囲です

ビア作成(2)

ビア(スルーホール)の作成工程です 下側の8個並んだ穴を加工しますが、まず穴径を少し拡げます。 一般の部品穴は0.85mmのドリルで開けていますがそれだとこのハトメの外径0.9mmが通らないので1.05mmのドリルでさらっておきます その穴に…

ビア作成

表裏のパタンを接続する必要があるところにスルピンを打ち込んでいますが 前にも書きましたがこれがムチャクチャコストがかかるわけです サンハヤト純正のスルーホールピンBBR-001が250ショット分で2800円。1ショット当たり11円にもなるので使用箇所は最小…

久々基板作成

ガーバーまでできているのでこのまま基板業者へ外注、でよいのですが 独りよがりプロジェクトのまったく汎用性の無い基板、しかも1枚しか使わないのに 5枚10枚なんてでき上がったらもったいないという貧乏性がもたげてきて、結局内製することにしました…

コンパネ修理

きちんとケースに入れて仕上げていた68020ボードですがコンパネの16桁1行のキャラクタ液晶表示器が真っ黒に変色していて、いつか交換してやろうと思っていましたが、ここにきてやっと手を付け始めました。 とりあえずユニバーサル基板に組み立てられたコンパ…

実数計算テスト

このボードにはFPU:MC68881が載っているのでビルドスクリプトに「-m68881」を追加してFPU用の演算ライブラリを利用できるようにします。 includeファイルのmath.hを覗いてみるといろいろな組込み関数が用意されていますが おそらく一生使わないで…

68020プラットホーム(2)

内部でクロスさせたので他のボードと同じようにホストとストレートケーブルでつながるようになりました。 ただ通信ボーレートが9600bpsになっていてダウンロードやターミナル出力がかなりもっさり感があるのでこれも38400bpsに変更しておきます。 シリアルコ…

68020プラットホーム

68020を使ったボードでも動作確認しておきます 自作の中でもめずらしくちゃんと箱に入った完成度の高い作品なんですが 数年ぶりにスイッチを入れたら、まず電源が入らない・・ 普通はヒューズが飛んでるとかスイッチング電源がいかれるんでしょうがそこは問…

浮動小数点演算

time_t型のUNIX時刻表示は実はズルをしていて、本来は日本時間より9時間前の標準時UTCで読取ってlocaltime()で日本時間のtm構造体にするのが正解です。 RTCからは直接tm構造体で日本時間が読取れるのでこれをmktime()でわざわざtime_t型にする必要がないし、…

リンクエラー回避

ソースコードにprintf系の関数を使用して標準Cライブラリからリンクさせようとすると 下請けの関数が参照できずにエラーになることはわかっていますが 実際のエラーの吐出しはこんな感じです これらはメモリブロックの取得とか低水準のファイル入出力関数でO…

68040プラットホーム

GCCで68000ボードで正常動作するコードが生成できたので、まあ問題ないと思いますが68040環境でも確認しておきます 以前作った68040ボードは基板上にRTCを持っているのでそのレジスタを読み出し整形してLCDに表示するだけのテストプログラムを用意しました …

Cygwin環境でGCC(5)

単に数字を表示するだけのプログラムで10kバイト近いサイズになっているのは 周辺I/OのドライバやグラフィックLCDに表示する文字フォントデータも合わせて1個のオブジェクトとして丸ごとリンクしてしまっているからです。 関数ごとに分けてライブラリ…

Cygwin環境でGCC(4)

テスト用ソースが問題なくコンパイルできるようなので、実際にボードに転送して動作確認できるプログラムで実験してみます まずはソース。16進コード00~FFを16×16のマトリクスで画面出力するだけのものです。 ここで画面への整形出力にprintfを使用していま…

Cygwin環境でGCC(3)

「__main」について調べてみると、どうもこれは主関数mainを呼ぶ前にメモリの初期化、 コードのコピーを行うライブラリ内関数のようです __main はメモリをセットアップし、__rt_entry はランタイム環境をセットアップします。 __main によって、…

Cygwin環境でGCC(2)

というわけでスクリプトを修正してリトライ。 $ ./gc.sh test Reading specs from /usr/local/m68k/lib/gcc/m68k-coff/3.4.2/specs Configured with: ./configure --prefix=/usr/local/m68k --target=m68k-coff --with-newlib Thread model: single gcc vers…

Cygwin環境でGCC

Cygwin上にm68k用GCCクロス環境ができたのでこれを整備しています。 まずコマンドライン入力でコンパイラは動作しているのでコンパイル、アセンブル、リンク、オブジェクト変換の一連の処理の流れをスクリプトファイルgc.shに記述 #!/bin/bash m68k-coff…

TinyBASIC移植完了

68000ボード上でTinyBASICが完全に動作するようになりました。 インタプリタなんで簡単なプログラムはさくっと入力してその場で結果がわかるのがいいです このTinyBASICにはLOAD/SAVEというコマンドが拡張されているのでホストマシンとBASICプログラムを テ…

ソース移植(4)

アドレスエラーの発生原因が判明しました。 コマンドラインを処理するサブルーチンTSTCはパラメータを呼び元にデータを直接書いてサブルーチン側でスタックポインタでアクセスするというテクニックを使っていますが次のように記述すると第2パラメータの値が…