SSブログ
English Version

レトロマイコン86ボードの構想(その22)16MHz動作実験2 [8086]

 前回の「レトロマイコン86ボードの構想(その21)16MHz動作実験」の記事でV20(8088互換)とPICを使用した自作CP/M-86ボード(Pic24V20)が16MHzクロックで動作しないことに対する調査として16MHz時の状況を確認し
  1. メモリアクセス時のタイミングは問題なさそうに見える
  2. 16MHzではCPUが停止してしまう謎の状態が出現する
  3. 外部から5Vのクロックを供給すると14MHzまで正常動作する
  4. 現状の回路ではクロックのHighレベルは3.3Vで4.0V以上という規格を満たしていない
  5. 外部クロック14MHzではHighレベルが3.9V以上で正常動作した
というようなことを書きました。
※本記事で記載しているV20の規格はuPD70108H(V20HL)の5V動作時のものです。

 a はロジアナでの確認なので各信号の立上り/立下り時間が規格を満たしているか否かの確認はできていません(100MHz以上対応のシンクロが欲しい・・)。
 b は dの原因のため、V20が動作停止しているものと推測します(V20の中身は見れない)
 c は不思議な現象ですが本記事の最後の方で推測した原因について記載します。
 これらの結果から16MHzで動作しない原因としてはクロックが最も可能性が高いと思われます。

 上記の前回記事にも書きましたがジャンパーピンで選択可能なPICから出力している8MHzと16MHzの信号はオープンドレイン対応が難しいのでトランジスタを追加してオープンコレクタをプルアップする形(結果としては通常のトランジスタの回路ですが)にして確認してみました。

オープンコレクタプルアップ実験回路


 ブレッドボード上で回路を組み、シグナルジェネレータから3.3Vの矩形波を入力してみると下図のようになりdutyが50%になりませんでした。今回は16MHz対応のV20を限界の16MHzで動作させたいため、dutyが50%からズレると規格を満たすことができなくなってしまいます。

200KHz入力時のIN/OUT信号


 次に回路の簡略化も考慮し、下図のようにダイオードでの対応を検討してみました。0.7V程度プラス側にレベルシフトするのでV20の規格(High:4.0V以上,Low:0.15xVdd=0.75V以下)をギリギリ満たしそうです。

ダイオードでのレベルシフト実験回路


 16MHzの矩形波を入力した際の出力が下図で、やはりdutyが50%に保たれない結果になりました。プルアップ抵抗の調整でdutyをある程度は調整可能でしょうが、アナログ的な調整要素はあまり入れたくありません。

レベルシフト結果(16MHz)

★2020/09/18 サンプル波形を8MHzから16MHzに変更


 最後に下図のようなトランジスタによるレベル変換回路で評価してみました。

レベル変換回路


 測定結果が下図でDutyが保たれていて良好な結果でした。念のため25MHzまで確認して見ました(時間の分解能は10ns)。
 これならV20のクロック信号の規格に沿うものにできそうです。

レベル変換回路評価結果(8MHz)

レベル変換回路評価結果(16MHz)

レベル変換回路評価結果(25MHz)


 Pic24V20ボードに実装した状態でのクロック信号が下図です。ロジアナのサンプリング周期が100MHzで時間分解能が10nsなので40nsの部分がありますが問題無しです。

ボードに実装後のクロック信号(16MHz)


 ボードを修正後に、メモリアクセス関連の信号を確認した結果が下図で、こちらも特に問題が無いように見えます。ASTBはV20から出力されているアドレスラッチストローブでALEはアドレスラッチIC(74HC573)へ入れているラッチ信号です。ロジアナのサンプリングは50MHzで時間分解能は20nsです。

改修後のPic24V20のメモリアクセス関連信号(16MHz動作時)


 今回の改造後のボードの様子が下の写真です。表面でクロックのパターンをカットし(写真では'4'の文字に隠れて見えない)、裏面でトランジスタと抵抗2本を追加改造しホットボンドで固定しています(基板中央部)。

改修後のPic24V20(表面) 改修後のPic24V20(裏面)


 ハード改造については以上ですが、冒頭で書いた c の外部クロックでも14MHzまでしか動作しなかった件に関してはメモリアクセスタイミング及びクロックは問題ない状態なのに動作しないので原因が不明なままでした。
 そこでV20自体の個体差もあると考えてV20(uPD70108HCZ-16)をebayで5個注文(5個で千円以下の安いやつ)していて、ようやく届いたので評価してみました。

 結果、1個が8MHzでも全然動作せず(評価途中に壊した可能性もありますが)、3個は8MHzでは動作し、16MHzでは動作しませんでした。
 しか~し、1個が16MHzで問題なく動作しました(^^)/
前回の記事で書いたALEのプルダウン抵抗を510から1Kに戻しても問題なく動作しました。

 下の写真は今回届いたV20です。よく見ると(写真では判り辛いですが)
  • ピン
    半田が乗っていて全体的にヨレヨレ感がある(プルアウト品?)
  • モールド表面の丸い痕
    表面にある二つの丸い痕の深さが以前購入したV20よりも僅かに浅い(表面を削ったため?)
などからリマーク品の可能性があります。なにしろ値段が他のものと比べて極端に安いし、8MHzでは動いたので10MHzか12MHzのリマーク品なのでは??

今回届いたV20(uPD70108HCZ-16)


★2020/10/10 追記 {
 追加購入したuPD70108HCZ-16が5個届いたので16MHzでの動作確認を行いました。
 基板上のソケットが壊れないようにゼロプレッシャーソケットを平ピンソケットに押込み(平ピンソケットのピンが広がってしまう)、これを基板上のソケットに刺して確認しました(左下写真)。
 右下の写真が今回購入したV20でピンには半田が乗っていてヨレヨレなので再生品だと思いますが、5個中4個が16MHzで動作しました(8MHzでは5個とも動作した)

ゼロプレッシャーソケットの取付 今回購入したV20
}


 最後に16MHz動作時のCP/M-86でのASCIIART.BASの実行結果は
  MBASICでは 1:22(82秒)
  Personal BASIC では 1:03(63秒)
でした^^


★2020/09/19 追記
 twitterにポストした16MHz動作の動画付きコメントを貼っておきます。
 https://twitter.com/wcinp/status/1306439314130182145



[TOP] [ 前へ ] 連載記事 [ 次へ ]

nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー