ラベル 68008 の投稿を表示しています。 すべての投稿を表示
ラベル 68008 の投稿を表示しています。 すべての投稿を表示

2019年7月7日日曜日

Pic24CPM-80とPic24CPM-68kマイコンボードの製作記

skyriverさんが公開されている2種のマイコンボードを製作しました


最近は、本業(?)である68系から離れて、CP/Mの走るボードを作ったり、CP/Mソフトの使い方を練習したりしていますが、CP/M-68Kをいじってみたいという動機からです。
ということで、またまたCP/Mマイコンを製作しました。

製作したのは、CPUとMemoryの他にはPic24FJ64GA004だけという3チップマイコンです。skyriverさんはCPUにZ80と68008を用いたボードの設計・製作の経過をブログにアップされており、さらに製作手順のまとめを詳細な説明付きで公開されていますので、両方とも製作してみました。

上:Pic24CPM-68K,下:Pic24CPM-80

左:Pic24CPM-68K,右:Pic24CPM-80

CP/M-80の走るZ80ボードについては、中日電工さんのND80Z3.5を所有している上に、興味本位でJust4FunさんのZ80-MBC,MBC2を製作しましたので、これ以上は必要がないといえるのですが、skyriverさんの説明がとても丁寧でしたので、CP/Mの知識がほとんどない自分にとっての練習のためという動機もありました。

製作してみた結果ですが、SDカードのアクセスのSPI通信に結構工夫されているせいか
立ち上がりもSDのアクセスも速く、とても軽快で、使いやすいという感想を持っています。
また、独自のpicleというpic24FJ用コンパイラ(インタプリタも)を自作され、それを用いてシステムを構成されているのも興味深いですし、Z80,68Kの両方で同じ操作性のスクリーンエディタsked (Z80用68K用) も作られているので、ソフトの開発がしやすいと思います。

[1]Pic24CPM-80製作記
目標は68Kの製作でしたが、CP/Mの知識がほとんどないので、練習のつもりで、まずPic24CPM-80を製作することにしました。
skyriverさんのブログのここに「3チップ構成Pic24CPMマイコン(CP/M起動までの作業まとめ)[Z80]」という手順説明がありますので、その通りに進めていけば動作させることができます。

基板についてですが、skyriverさんがガーバーデータを公開されておりますので、それを元に基板を製作しましたが、表面実装部品を使用するものでした。残念ながら表面実装部品の手持ちがなかったのでKiCadで回路図を書き直し、そのガーバーデータで作り直しました。
(skyriverさんの方はシンプルで見栄えも良いですが、私の方はそれに比べてゴチャゴチャしていますね。。。残念!)


Pic24CPM-80 表面

Picの書き込み端子のVCCとSDコネクタのケースグランドを忘れていた

起動直後の画面


SDアダプタのケースがグランドに落ちていなかったり、表面のシルクのレイヤーを入れ忘れたりなどのミスはありましたが、無事に動作しました。



[2]Pic24CPM-68K製作記
続いて、Pic24CPM-68Kの製作に進みました。Pic24CPM-80と同様、KiCadで回路図を書き直し、そのガーバーデータで基板を作りました。

Pic24CPM-68K 表面

回路図では交差しているだけなのに接続されていたというミスあり

起動直後の画面


これにも若干のミスがありましたが、無事にメモリ書き込みテストまで確認できました。
私が作り始めた時には製作手順は公開されていなかったこともあり、第2段階のHello表示でつまずき、どうにもならず、skyriverさんに助けを求めてしまいました。
その結果、Pic24用のプログラムだけでなく、製作手順をここに、「3チップ構成Pic24CPM68Kマイコン(CP/M-68K起動までの作業まとめ)[68K]」として公開していただけました。(なお、ガーバーファイルも公開されています。)
そのおかげで、すんなりと動作させることができました。

これで念願だった68000を使うツールとしてのCP/M-68Kを手中にすることができました。また、上にも書きましたが、Z80にも68Kにも共通のスクリーンエディタも使いやすいものを用意してくださっていますので、CP/Mのソフト開発に力を入れることができそうです。skyriverさんに感謝いたします。

2019年2月23日土曜日

番外編 ー 68Katy-aeの制作

6821PIAを用いたI2C通信ができて以来、ブログの更新をしばらくできませんでしたが、その間何をしていたかと言いますと、懸案だった6809と6802基板用のモニタープログラムの修正をしていました。(次回のブログで紹介します。)
せいぜい2週間ぐらいの予定で始めたのですが、変なところでつまずいてしまい、四苦八苦している間に、気分転換も兼ねて68Katy-aeに手を出してしまいました。

基本的に6809と6800(6802)にしか関心はないのですが、なぜか手元にHD6301などがあったこともあり、先日は電脳伝説さんのSBC6303も作ってしまいました。
[蛇足]製作した電脳伝説さんのSBC6303基板では、手持ちのHD6301V1P, HD6303RP, HD637B01VOPのいずれも正常に動作しました。

SBC6303とBL基板


昔、SHARPのX68000でOS-9/68000を使っていたこともあり、いつかは68K基板を設計したいと思ってはいましたが、知識も技術も時間もなく手が出せませんでした。
ということで、68Katy-ae基板です。手持ちのCPUは68000ばかりで68008はないので、ちょっと残念でしたが、68Katyの原作者とae版の作者tomi9jpさんが知恵を絞ってくれたおかげで、私は何も考えずに手を動かせば良いのだと安直に考えたのが間違いでした。

結局、基板、XC9532、68008に加えてAE-FT245RLまで買い直す羽目になり、まだ完成したわけではありませんが、ネットではうまく動作したという記事がほとんどなので、失敗したという記録もそれなりに意味があるかもと思いますので、ここに残しておくことにします。

製作した基板3枚 上は不良だったAE-FT245RL


その1 XC9532の取り付け間違い。CPLDはAlteraしか扱ったことがなく、Xilinxは初めてということもあり、チップの〇印を見てもピン1の位置が良く分からず間違えてしまいました。
(印字を基準にして左上がピン1が普通だろー--泣。)ーー>画像右端の基板

その2 XC9532の書き込みに苦労。Alteraの書き込みケーブルは何種類か持っているのですが、Xilinxのダウンロードケーブルはありませんでしたので、まず中古のパラレルケーブルを入手しましたが、これが不良品で、どうやってもIMPACTで認識しません。次にUSBのダウンロードケーブルDLC9を入手しましたが、何とこれも不良品でした。最後にUSBIIのDLC10を入手し(高かった!)、ようやく書き込みができました。
その間、tomi9jpさんにXC9532について質問した際のやり取りの結果、AE-FT245RLで書き込みをする手順を公開していただけたのですが、この方法でもうまく書き込めませんでした。何十回か試みると1回ぐらい書けたような反応をすることもあったのですが。。。
 ->実は、この原因はAE-FT245RLにあったことが後に分かります。


入手したダウンロードケーブル



その3 ROM1のMX29F040TCを最初から取り付けてしまった。後からでは取り付けが困難だからと思ったのですが、結果的には動作しない場合の原因の切り分けが難しくなってしまいました。CPLDには正常に書き込みができているのに、TeraTermには全く何も表示されない。。。
このために、SRAMやROM0を交換したり、68008やAE-FT245RLを買い直したりしましたが、症状は変わりません。-ー>画像中央の基板。まだ動作していません。。。
[訂正]動作しました。最下行に経過を追加しました。

その4 3枚目の基板でようやく動作。ROM1を取り付けず、CPLDへの書き込みデータをオリジナルのものにしたら動作しました。最初は画像のように、訳のわからない表示だったのですが、FT245RLを交換したら正常になり、uLinuxも動作しました。ーー>画像左端の基板

不良FT245RLによる表示(リセット直後の?入力)

正常FT245RLによる表示(リセット直後の?入力)

uLinuxも動作した

その5 AE-FT245RLの不良。あれこれ調べた結果、何とDB4ピンのハンダ付け不良であることが判明し、ハンダ付けし直して無事復活しました。秋月さんには数十年来お世話になっていますが、こんなことは初めてでした。今までは使えていたので、ソケットの抜き差しを繰り返しているうちにハンダ付け部分が緩んだのですね。

FT245RLのハンダ付け不良個所(DB4ピン)



現在はROM1を取り付けていませんが、増設するかどうか迷っています。それよりも動作していない中央の基板の原因追及を優先すべきだと思いますので。

以上、68Katy-aeを何とか動作させるまでの四苦八苦の記録でした。

[追加]画像中央の2枚目の基板(TSOPを追加してあるもの)が動作しました。
オシロで見てもクロックは正常ですし、アドレスバスやデータバスを見ても異常は見つけられなかったので、回路図を見ながらすべての配線をチェックしたところ、2ヶ所導通がないことを見つけました。いずれもCPLDの端子のところで、見た目は正常にハンダ付けされているように見えました。(ハンダ付け歴50年以上なのに恥ずかしい。。。)
この結果、zBugやuLinuxはもちろん、ROM0のAMD29F040の内容をTSOPのMX29F040にコピーして、ROM1からも起動できました。tomi9jpさんに感謝感謝です。

この基板で68Kの機械語を覚えて、使いこなせるようになるといいなあ。(機械語が一番面白い。次はC言語、そしてJAVAかな。)