今日届いた基板(5)

今回は、RC2014系が4+1、MSX計が1、micromuse系が3です。全て皆さんのガーバーデータを使用させていただきました。

1月7日に注文して1月15日に届きました。色付きの為製造3-4日、エコノミーで4-7 business daysで今週末か来週頭の予定でした。

今回は順調で予定より早く届きました。感謝です。

PC8001-CP/M(1)

今年の4月ころPC-8001を入手したのでPC-8001でCP/Mを動作させたいと思いtwitterで皆さんに質問させて頂きいろいろ勉強させていただきました。

PC-8001用NEC純正品を動作させる場合は、PC-8011 拡張ユニットやPC-8012 I/Oユニットを使用してメモリを拡張してPC-8031-2W 5インチ2D FDDが必要なことが分かりました。

そんな時「Enri’s Home PAGE」で見た FD8080(CP/Mシステム)について が気になったのですが最近I/O誌の広告を見つけました。

8インチ版だったようですね。

PC8001-11,12の回路図等も国立図書館のコピーサービスを使用させて頂き入手しましたが回路が大げさになり希望する形になりませんでした。

PC-8001でCP/Mを実行する為には32Kの拡張RAMとFDDがあればいいだけです。そんな時に「PC-8001をゲームマシン化」の事も知りましたのでこの機能も取り込むためにROMを追加して今回のPC-8001 CP/M ボードを作る事にしました。

PC-8001の拡張用50ピンに直接取り付ける形にしてあります。カードエッジコネクタ部には一応50ピンのフラットケーブル用コネクタも取り付け可能になっています。

最初動作が不安定で、 「PC-8001をゲームマシン化」 のROMを焼いて動作確認したのですがPIAの認識に失敗していました。半日ほど悩んでIORのロジック出力部の半田忘れが全ての原因でした。

その時に、エラーメッセージで検索してちくらっぺさんの事を知りました。

現在はPC-8001 CP/MもRev02となり2か所あったバグを修正して動作確認中です。

このボードに関しては回路図、ガーバーデータ等は公開予定ですがRev03を予定しています。

PC-8001 CP/M Rev03変更予定

  • フラットケーブル用コネクタ位置変更
  • ROMのイネーブル、RD信号にプルアップ抵抗追加
  • 6000-7FFFhに拡張RAMをデフォルト対応
  • SDカードのRobotDyn対応(現在動作不安定のため)
  • LED追加( ゲームマシン化 時のアクセス用)
  • 未使用ゲート(74LS32 12,13をVCCへ)処理追加

と言う感じで、Rev03の必要性は2番目のROMの信号用のプルアップ抵抗と思っています。理由はPC8001を使用したEEPROM書込み動作切替え時の入力オープン対策です。

今日届いた基板(4)

JLCPCBから本日届いた基板です。今回は急いだので両方ともグリーンレジストですがトラブって色付きの日程になってしまった。

12月10日に頼んで12月16日に届きました。色付き3種より1DAY早かった?

今回もDHLを使用させていただき前回との違いを質問させていただき少しわかったのでわかった事を書いておきます。

前回は3日、今回は4日かかりました。

日数の違いは、3日は香港ー名古屋、4日は香港ー大阪ー名古屋となっています。名古屋直通は現在は火曜日から金曜日、日曜日だそうです。(赤丸1になります)

国内配送業者引き渡しが2回あるのは、1回目が引き渡しタイミングで配送は翌日だそうです。(赤丸2になります)2回目が配送業者が配送持ち出し時間の様です。(赤丸3になります)

前回は、同じような時間で午前中に配送頂いたのですが今回は夜間になってしまいました。佐川急便さんに確認したら夜間指定になっているので朝いちばんで持ち出して頂きましたが夜間扱いとなりました。

こちらも確認したら、個人宅は再配達の可能性が低いので夜間指定にされたそうです。急ぎの場合はDHLに電話して時間しても可能なようです。

今度午前中に欲しい時は試してみようと思います。

今日届いた基板(3)

JLCPCBからDHLで今日届いた基板です。

3種類届きました。1種は新規で2種はRev02でバグ修正版です。

今回は11月13日にJLCPCBに頼んで20日に届きました。基板のレジストにグリーン以外を頼んだ関係でJLCPCBの生産が3,4日で輸送が3日と言う感じです。

PC8001-CP/M 生産進捗です。

DHLの貨物追跡状況でほんとに国外から来たのと思えるほど早く届きました。JLCPCBからメールが来たと思ったら、数時間後にはDHLからメールが来てその2日後には手元に基板があります。

問題は、こんなに早く届いても週末までは時間があることです。

USBシリアルのボーレート

Arduino 等を使用しているとシリアルのボーレートがズレているという事はありませんが、INS8060の様にポートを使用したシリアルの場合や、使用する水晶が無く他の水晶を使用する場合ボーレート設定が規定の値ではなく異なった値に変更する場合があります。

例としてはINS8060ボードは1200bps設定ですが実ボードで文字化けが起こります。そんな場合はTeraTERMのボーレート設定を1210bps、1190bps等に変更して文字化けが発生しないボーレート探して安定したボーレートに設定します。

SBCZ8 Rev03の時は、7.3MHz水晶指定の所、手持ちに無かったので12MHzを水晶を使用して9600bpsところを15.7kpbsに変更して動作確認を実施しました。

今回は、Windows10の環境でDsub9ピンのRS-232Cインタフェースで接続する必要がありこんなケーブルを使用しました。使用しているチップは PL2303 です。

UGREEN USB シリアル変換ケーブル RS232 USB 9ピン

今回は、9600bpsの8倍に設定したかったのでTeraTERMのボーレート設定を76.8Kbpsに設定して通信をしました。簡易的な通信確認ですのでキーボード入力したキーのアスキーコードを送受信します。

例)キーボードから1を入力
31 が期待値です

実際は
00FE が帰ってきました

なんで???

結論はPL2303は76.8Kbpsと設定した場合には、56.8Kbpsに設定されていました。その上は115.2Kbpsという事で選択画面に無い値には設定できなかった様です。

という事で ”USBシリアル ボーレート” で検索した所 秋山製作所 さんの”各種USB-シリアル変換ケーブルで動作する通信速度…”にUSBシリアルチップでの動作実験結果をまとめたドキュメントがありました。参考になりますので一度見ていただくと良いと思います。

この結果ではPL2303を使用したのがダメでいつものようにFT232やCH340を使用すれば今回の問題は発生しませんでした。

逆に考えれば、PL2303を使用したおかげでUSBシリアルのボーレート設定に対する知識が少し増えました。

秋山製作所 さんは シュアウェア で RS-232C Monitor and Analyzer を作られています。今回参考にさせて頂いたドキュメントなどよりまた使用させていただきたいと思いました。

【参考リンク】
 下記のwebサイトを参考にさせて頂きました。

PIC24Z8068Kを作った(2)

PICマイコンは面白い」 のブログで製作されているPic24CPMPic24CPM68Kを1枚のボードにしたPIC24Z8068KでPic24CPMが動作しました。

PIC24Z8068KをPic24CPM相当に修正(RAMをAS6C4008からTC551001に変更)
A18-A16を修正し RAMをAS6C4008 に戻して動作する事は確認済みです。

2in1に変更する段階でAS6C4008(512Kbyte)を使用してアドレス上位A18-A16をプルアップしていました。このためZ80のアドレスとPic24が設定するアドレスに問題が発生していました。

この確認の為、 A18-A16を修正しSRAMをTC551001(128Kbyte)に変更しました。

これでも動作しません。

最大のバグはZ80にNEC製D70008AC-8を使用した事の様です。写真の様にZ84C0020に変更した所問題なくCP/Mが起動しMBASIC上でSTARTRAKが動作しました。

Pic24CPMの起動画面とA,Bドライブのディレクトリ表示です。

今回の修正項目

  • A18-A16を68K時はプルアップ、Z80時はレベル固定

Rev02への変更

  • ZRES用のプルアップをジャンパーに影響されない様に変更する
  • KHALTのジャンパーは不要

しっかりとブログの方に”Z84C0020PEG(20MHz版のZ80、PICからクロック供給する関係で16MHzで動作)”と書いてありますので8MHzを使用した私のバグです。

【参考リンク】
 下記のwebサイトを参考にさせて頂きました。

PIC24Z8068Kを作った

PICマイコンは面白い」 のブログで製作されているPic24CPMPic24CPM68Kを1枚のボードにしたPIC24Z8068Kを組付けました。

PIC24Z8068KをPic24CPM68k設定にしました。

このボードで、Z80とMC68008と同時に使用できるわけではなく1枚のボードで設定によりどちらかのボードとして使用できるだけのボードです。

現在、 Pic24CPM はPIC24の起動メッセージが表示されるのみで動作できていません。ボード発注時からわかっていたシリアルの誤りは修正していましたので起動メッセージは表示されました。

SDカードの認識はOK、しかしSDカードのDI,DOが逆でしたので修正しましたが、状況は変わらずです。

という事でハードが悪いかCP/Mのイメージ―が悪いかわかりませんので Pic24CPM の動作は一時保留として、 Pic24CPM68K の動作確認に進む事にしました。

Pic24CPM68Kの動作としては、Z80を取り外して,MC68008を搭載してジャンパー設定を変更するだけです。この時24,31pinの設定はCLK側に設定しました。

後は、PIC24にHEXファイルをPICkit3を使用してHEXファイルを書込み、CP/M68K用のSDカードを準備しました。 PIC24にHEXファイル のアップデートはOneBitLoaderをダウンロードして実施すれば2回目以降は PICkit3 が必要ないのかな?

PIC24Z8068Kの Pic24CPM68K 動作はCP/M68Kの起動とファイルの確認、EXITによるpicleコンパイラの環境への復帰が確認できました。

これでPIC24のSDカードアクセスの確認とSRAM&MC68008に問題ない事がわかりましたのでZ80とPIC24の関係とCP/Mのイメージに対して確認すれば PIC24Z8068K の Pic24CPM 動作もできそうです。

今回このボードを作った目的は、3in1(Z80,MC68008,V20)を目指したのですがV20はダメで2in1となりましたが、PCBを2種類作った時に使用しないボードがたまるので共通化してみました。それと1枚で手間を惜しまなければCP/MもCP/M-68Kも楽しめます。(現在はCP/MはNGですが)

【参考リンク】
 下記のwebサイトを参考にさせて頂きました。

今日届いた基板たち(2)

JLCPCBからSF Expressで今日届いた基板です。 10月10日着予定の基板が13日遅れ、頼んでから26日かかりました。

PIC24Z8068K基板のJLCPCBの生産進捗です。このボードは、skyriverさんの3チップのボードの2in1 版です。

SF Expressの貨物追跡状況で途中10月8日から17日まで行方不明になっていました。また、その後もいろいろあり本日13日遅れで届きました。

ArduinoMegaでApple1

ArduinoMegaにRetroshield for Arduino MegaのR6502を追加してApple1として使ってみました。

基板は、他のボードを作った時のスペースに間借りしています。こちらでキットとして購入できますので気になった方はいかがでしょうか。

ArduinoMegaにk65c02_apple1を書き込んで起動した状態です。LCD Keypad Shieldを付けていますのでdefine USE_LCD_KEYPAD 1に変更しています。

WOZモニタで0番地、FFF0番地から16バイトをダンプ後に、BASICで”Hello World”を表示してみました。

LCD Keypad Shield の表示を見ると動作速度はおおよそ150KHzの様です。RetroShield 6502 for Arduino Megaの詳しい動作説明はRetroShield 6502 Operationにあります。

このRetroShield 6502 for Arduino Megaは使用するCPUによってジャンパーの切替えが必要です。

  1. R65x02
    • 1ピン:ショート、36ピン:オープン
  2. W65C02
    • 1ピン:オープン、36ピン:ショート 

今回はR6502を使用していますので1ピン(VSS):ショート、36ピン(BE):オープンで使用しています。

RetroShield 6502 for Arduino Mega で今回はApple1を使用しましたが、Arduinoのスケッチには下記があります。

  • k65c02_apple1
  • k65c02_c64
  • k65c02_kim1

このRetroshield for Arduino Megaが対応しているCPUは

  • MOS: 6502
  • Motorola: 6809
  • Intel: 8031 – 8085
  • RCA: 1802
  • Zilog: Z80

でこれからも増えていくようです。

覚え書きとしてこのシールドには”DIO2.h”が使用されている為Arduino Library ListよりDIO2をインストールしました。このライブラリーはIOの高速化対応みたいなので調べてこれから使用させていただく予定です。