SSブログ

HD68P01で1チップ構成(3) [6801]

だいぶ間があいてしまいましたが、一応色々やっていたのですが引き続きHD68P01。
昔のCPUで遊ぼうとするとだいたいシリアルでPCとつないでターミナルソフトで、ってなると思いますが、今のPCにCOMポートなるものがつくことはほぼなくなり、必然的にUSB変換してPCとつなぐことになりますが、このUSBシリアル変換チップというのは各種でてはいても表面実装部品ばかり。
ここでも利用したように小さな基板に組み込んだ完成モジュールを利用することになりますが、だいたいそれなりのお値段になってしまいます。
ということで、このUSBシリアル変換を自前で製作してしまうことにしました。
加えて、その他機能ももりこんで部品点数減少も狙ってみました。

・USBマイコン
USB内蔵マイコンは各種ありますが、PIC16F1454を使うことにします。これは

(1)なんといっても安い(秋月さんで130円ほど)
(2)比較的少ピン(14pin)
(3)外部クロックを必要としない

という理由からで、特に3番目は他USBマイコンにはない特徴です。
USBは割とシビアなクロックを要求するので、USBマイコンでUSBを使用するときは水晶発振子使用を推奨していて、最低限セラミック発振子が使われています。
このPIC1454は発信周波数を常に監視して自動的に更正する機能を持っており、外部発振子を必要としませんので部品点数を減らす目的でもうってつけです。

・CPUクロック
せっかくなのでCPUのクロックもPICで生成することにします。
先の例ではシリアルのボーレート(9600bps)をCPUクロックから生成するために4.9152MHzという水晶発振器を使いましたが、PICからこの周波数を生成するのは無理があります。
クロック生成にPWMを使いたいところですが、このPICはPWMが2chありますがピンの割り当ての関係で1chしか使えないのでPWMはボーレート生成に使います。
MC68P01のCPUクロックはPICのシステムクロックから作り出すことにしますが、USBを使う場合、USBが要求する12MHzを作り出すためにPICのシステムクロックは48MHz(あるいは24MHz)にするしかなく、このシステムクロックからは2のn乗分周のクロックしかとりだせません。
しかたないので6MHzを生成してMC68P01を1.5MHzのオーバークロックにすることにします。
いや、動作確認するだけなら半分の0.75MHzでもいいのですが(笑)。

・ボーレートクロック
動作クロックを1.5MHzにした場合9600あるいは、よくあるボーレートクロックを内部でつくりだす事はできないのでPICのPWMでボーレートを生成することにし、MC6801系はシリアルクロックを外部から入力する場合8倍のクロックを要求するので9600の8倍、76800bpsをPWMで生成することにします。

このPIC、自動更正して安定発振させているとはいえ周波数自体はそれなりにいいかげんです。
実測すると6.35MHzほどなので48MHzのところ、実際には50.8MHz。

CPUCLK6.jpg

ボーレート用クロックは80.86KHzだったので、ボーレートは10108bpsになってしまいます。

baudrate76800.jpg

ただ、PIC側のボーレートもこの50.8MHzから生成しているので、PICとの通信のみで使う限りぴったり一致して問題ありません。
ちなみに周波数測定は、画像のようにテスターで測っただけです。

・その他機能
空いてるピンを使ってその他機能ももりこみます。
まずリセット。リセットは単純な機能ですが意外とはまるのでPICで生成。
外部リセット入力できるようにしますが、ポートのプルアップ機能とソフト処理によるチャタリング対策でスイッチのみ付ければOKに。
リセット出力はリセットスイッチが押されればアサート、リセットスイッチOFF後約100ms後にネゲート。
あと、電源LEDも入れましたが、これはPIC動作確認用でもあるので点灯ではなく点滅にしました。

・MC6801側ソフト
MC68P01側のソフトは引き続きLILBugを使いますが、シリアルボーレートが内部生成ではなく外部入力になったのでその部分を変更してアセンブルし直してROM焼き。

・動作検証
例によってブレッドボードに組み、ジャンパワイヤで空中配線をすると動作が不安点になってしまったので一部配線をブレッドボードにぴったり這わすようにしました。
こんな感じです。

HD68P01-PIC16F1454-1.jpg

主にUSB関係の配線ですが、本当はクロック系もそうしたかたったのですが配置、引き回しの関係で断念。
一応動作しましたが、それでも不安定な部分もあってソフトなのかハードなのか、切り分けるのも何ですので、この段階で基板を起こすことにしました。
本当は、きっちり動作確認できてからと思っていたのですが。

1チップ構成とタイトル付けながら、PICも使用しているので2チップ構成になっていますね…

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

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。