CPU実験室

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

56k

ウェイト調整

56k

16bit幅のBCR(Bus Control Resister)の4bitづつにXDATA,YDATA,プログラム領域、ペリフェラル領域に0~15の値を与えることでDSPに外付けした各メモリ空間にそれぞれウェイトが設定できます。 BCRを設定してから最小ループを回すテストプログラムを実行させて…

モニタ完成

56k

各コマンドにはアドレス引数を持てるようにし、Pコマンド(プログラムロード)にタイムアウト脱出、ロードサイズ表示など追加してコマンド作り込みが完了、これをROMに焼き込み電源ONで高機能モニタが起動しました コードサイズは706word、コマンドバッファ…

モード変更

56k

高機能化した修正版モニタのめどが付いてきてサイズも高々1kwordくらいになりそうなのでメモリ配置を再検討しました。 いままではDSPをMODE3(Development Mode)で起動していましたがこれをMODE2(Normal Expanded Mode)にしました。こうすることでリセットベ…

データテーブル

56k

拡張バイトにデータが残っているとCMP A,Bが常に負になるので引数$A~$Fが+$30足した”:;<=>?”になったということです 修正は簡単で24bitレジスタを56bitアキュームレータAにコピーした時に無条件に拡張バイトA2を0クリアするだけです。再度ダンプして…

HEX変換

56k

原始モニタのコーディングができたのでこれをROMに焼き電源ONで起動するようにしました。これでテストプログラムをSRAM領域にDLLしては即試行できるので開発効率が飛躍的に向上します。まずは原始モニタ自身のコードをロードしてこれに機能拡張していくこと…

シリアルワード受信

56k

即値アドレッシングしている部分に「>」演算子を付けてロングワードであることを明示。入力されたコードをコマンドコード「P」「G」と比較して分岐する部分も同様に修正しこれでシリアル入出力とI/Fが一致してコマンド入力、分岐ができるようになりました …

データアライメント

56k

これの原因は最初のLEDチカチカで失敗したのと同じで24bitデータ幅での表現方法にありそうです。ALUレジスタにセットされる数値は固定小数点、2の補数表現を想定しているので単純に整数を右詰されるつもりロードしても、意に反して左詰めされるとマニュアル…

原始モニタ作成

56k

ハードウェアは動いてるっぽいのでここから先はいつもの手順です。テストコードを作ってはROM抜き差しは大変なのでプログラムロードと実行だけできる原始モニタのコーディングからになります。 DSP内蔵のSCIユニットを使った1文字入出力ルーチンはさらっと記…

LEDチカチカ(2)

56k

算術命令が動かない、となるとDSP自体にバグがあるとか・・だいたい実装しているのが正規版のDSP56001ではなくてエンジニアサンプル版のXSP56001な訳で。・・あるいはこの現象にも似ているのでDSPのハード的な使い方に重大なミスがあるんじゃないかと。でマ…

LEDチカチカ

56k

JMP $の単純ループが成功したのでこれに外部I/Oアクセスを組み入れてループしているのを外から観察できるようにしてみます。よくやるのは8bitパラレルにつないだLEDにインクリメントデータを出力することですが、ここではさらにシリアルへの垂流し出力も同時…

最小プログラム(2)

56k

出力された24bitコード0x0C0000を3個のROMの0番地に0x0C,0x00,0x00と分割して書込み、ボードにセットしました ROMソケットの配置は左からLOW-MIDDLE-HIGH(D00....D23)ですが逆順の方が良かったかも。 ch1:ROMリード信号/RD、ch2:アドレスA0をプローブして…

最小プログラム

56k

DSP56001ボードはDSP周りのハードが完成したのでさっそく動作確認してみます。先ずはいつものように最小ループテスト:JMP $からですがちゃんとインストラクションはあります。 先頭から4kbyte以内のジャンプであれば12bitアドレス即値のショート形式で指定…

PGA挿し込み

56k

プログラム空間のSRAMはこの構成のままだと結局全体の1/4、32kbyteしか使っておらず、であれば入手性の良い256kbitSRAM:HM62256とかTC55257でもよかったかもしれません。ただROMとSRAMは同一アドレスにオーバーライドしているのでその境界はGALのプログラミ…

メモリマップ

56k

アドレスデコーダ設計に当たりDSP56001から見えるメモリマップを決めておきます。まずプログラムメモリ空間ですがDSPをモード3(64kbyte全て外部に開放)で起動するものとして、リセットベクタ0000Hを含む前半32kbyteにROM、後半32kbyteにRAMを配置すること…

表面実装品完了

56k

DSP56001ボードはチップCRに続いてフラットパッケージのIC類の取付が完了しました 表側 裏側 SRAMはSOJ32形状のHM678127を使っていますがパタン設計の時、これのフットプリントの選択を失敗しました。今回実装始めてから気づいたのですがリフロー用のピッタ…

部品実装開始

56k

DSP56001ボードに部品実装を始めました。先ずはチップC、R、LEDの取り付けまで完了したところです。 抵抗としてよく使うプルアップ用10kΩやLED電流制限2.2kΩ、パスコン用0.1uFはリールで買ってしまい、アナログ系の中途半端な抵抗値はアソートセットから抜き…

PGAソケット完成

56k

変則的84ピンPGAソケットの田植えが完了しました ここで改めてデータシートのピン配置と比較。データシートではBottomViewなので図を裏返してTopViewにした後180度回転して実基板に合わせて比べてみました これでもし配置ミスが見つかったら泣きますがどうや…

PGAソケット取付け

56k

DSP56001ボードにPGAソケットを取り付けました。取り付けるというよりは親基板上、その場で組み立てていくという感じでしょうか。 2枚の子基板を重ねて孔に丸ピンコンタクトを田植えのように植えていきます 16本、全体の約5分の1までやって今日の農作業は終…

PGAソケット自作(2)

56k

ソケット用の子基板を「蛇の目基板」と云ってしまいましたが「蛇の目」とは孔の周りに銅箔のランドが付いてる見た目から来たのであって、格子点に全て穴が開いてる点では「ユニバーサル基板」というべきなんでしょう それはともかくその子基板を2枚重ねて丸…

PGAソケット自作

56k

特殊なICソケットは自作してしまうことにします。ばらした丸ピンコンタクトを蛇の目基板に圧入してしまえばいけそうです。高さを稼ぐために2枚敷くことにします 寄せ集め基板からφ1.4の孔を並べた蛇の目部を2枚切り出します。 ただし丸ピンの胴体部分のφ1.…

基板着荷

56k

DSP56001基板が出来上がってきました。今回も発注からちょうど1週間、納期が早いのは良いのですがどんどん仕掛かり案件が溜まってます 今回は特に技術的に目新しいところはないのですが、問題なのはDSP56001用の特殊PGAソケットの入手難です。 ここしばらく1…

さらに手直し

56k

DSP56001ボードの手修正をちまちまやってます オートルータの出力はビア数や総ライン長を減らすような最適化処理が行われますがどういうアルゴリズムなのか、一度決定するとそのあと意地でも動かないところもあります たとえば以下は/RESETビアとのクリアラ…

再ルーティング

56k

せっかくクオンタイズ処理までして整えたラインを全て引き剥がして再ルーティングしてますが何を間違ったかというとDSPの向きが180度回転していたのが発覚したのです。もっとも電気的な接続は問題ないのですが見た目カッコ悪いかなと(このように) というこ…

謎パタン

56k

DSP56001ボードのパタン引き回しがほぼ完了したので、念のためフットプリントを現物で最終確認しています PGAパッケージを裏返してピンの方向を見直した途端、うわわわ・・またまたやらかしてることが発覚・・・・、なんですがそれはまた別の話にしておきま…

引回し見直し

56k

ホストI/Fと汎用パラレルポートを兼用するPORT_Bにパラレル8bitのLEDを置きましたがバッファ用の74HC540が入出力逆につながっているのが発覚。PORT_Bの属性は3ステート双方向にしたためERCではひっかかりません ICをひっくり返せばパタンの修正は簡単ですがI…

部品配置

56k

パスコンやアナログ部の外付けCR類もすべて入力、部品の位置関係も見直しています。オーディオ入出力ジャックは外付けとしデータメモリ空間のSRAM3個は基板裏面に移動しています。 オートルータ実行したところ約1時間で布線完了。直後に390個くらいあったビ…

部品仮配置

56k

アナログ部分も含め主要部品をスケマチック図面に配置、100×100mmボードにざっくり並べてみました。ADSP-2101基板の構成とほとんど同じです。SRAM6個、PLCCのROM3個は何とか載りました。 あ、オーディオ入出力用のジャックがはみ出てる・・・ SRAM3個は基板…

メモリ構成(3)

56k

メモリ配置をいろいろ検討してましたが、結局128kwordのSRAMを6個使うのが最も効率が良くデコードもシンプルにまとまりました プログラムメモリとデータメモリが物理的にも別々になるのでグルーロジックも単純化します。手元に1MbitSRAM:HM678127がまとまっ…

メモリ構成(2)

56k

DSPに外付けするメモリ構成を検討しました。DSP56001はプログラムメモリ空間とデータメモリ空間が分離されたハーバードアーキテクチャですがバスはスイッチングして共用しているので単一のメモリ空間にオーバーレイできます。プログラム空間64kwordとデータ…

メモリ構成

56k

DSP56Kシリーズはオリジナルのモトローラからfreescaleに移管された後、それがNXPに吸収されても脈々と継承され直系のDSP563xxはまだ現行品のようです マニュアルを見ながらシステム構成を考えてみました。まずメモリですがプログラムメモリ空間が64kbyte、…