HD68P01で1チップ構成(2) [6801]
では実際にブレッドボーにくみ上げます。
主立った部品は以下のもの
・HD68P01V0P
・クリスタルオシレータ(4.9152MHz)
・USB-シリアル変換基板(Sanhayato製)
MC6801系はCPUクロックとなるEクロックからボーレートを設定でき、
なるべく簡単に動かすためにこれを利用するのですが
9600bpsにするために入力クロックを4.9152NHzにしなければいけません。
使用する石は1MHz動作品ですので入力クロックはMax4MHzで
オーバークロックとなりますがこの程度は問題なく動きますし、
業務で使うわけではありませんので気にしない事にします。
ブレッドボードにくみ上げると写真のような感じになりますが、
ジャンパワイヤーは特にプルアップ系は長さ適当です。
結線はシリアルポートと変換基板、クロック。
パワーONリセットはCRで生成して定数はすぐに取り出せた物(10KΩ、47μF)で適当。
割り込み関係とSTBYを+5Vに。
MC6801系はリセット中にP20~P22をチェックしてモードを切り替えるので、
ワンチップモードにするためにそれらを+5Vへ。
電源は変換基板からとります。
動作確認ソフトとして定番となるモニタソフトを使います。
これも定番であるモトローラ純正のLILBUGというものを利用。
MC6800用のモニタMikbugのMC6801版みたいなものです。
ソースはネットにありますがアセンブルする必要があり
アセンブラは、昔ちょくちょく使っていたモトローラ純正のMOTOASMというものを利用。
ネットあされば他にも色々ありますが、昔から持ってて使い慣れていますので。
MOTOASMはCPU別に6800,6801,6804,6805,6809,6811があるのですが、
今ならオプション、あるいは疑似命令でCPU指定でしょうか。
このMOTOASM、Amiga用もあって確かソースもあったような…。
ただ、これはMS-DOS向けのソフトで最近のWindowsでは動作しません。
そこで、MS-DOSのプログラムをWin32-64bit環境で動かすツール
MS-DOS Player for Win32-x64を利用します。
このモニタ、CPUクロックが1.2288MHz、あるいは0.6144MHzが前提となっていて
ボーレートはデフォルトが300、コマンドで2400および9600に
切り替えるようになっていますがデフォルト9600に変更。
くわえてボーレート切替コマンドを削除。
ボーレート関係の修正を加えてアセンブルを実行。
多少エラーでますが修正して無事アセンブル完了。
書き込みはTL866AというROMライター利用。
いざ書き込もうとするとこれに付属する書き込みソフト、
データはインテルHEXかバイナリしか受け付けません。
それに対してMOTOASMはSレコードを生成します。
しょうがないのでMOTOASM付属のバイナリ変換ソフトを使おうと思いましたが、
ROMサイズを指定してバイナリ生成できるのは良いのですが
オフセット指定はできないような感じで、
2732にあわせて4KBを指定してもアドレス0から4KBのバイナリを生成してしまいます。
生成コードはF800からなのでアドレスF000からの4KBにしたいのですができません。
しょうがないので64KB丸ごと生成しようとして65536を指定するとこれまたできません。
MS-DOS時代のソフトなんで16bitサイズなんでしょうね。
そこでサイズとして65535を指定して、
バイナリエディタでラスト1バイト付け足すことも考えましたが
vectorから別のバイナリ変換ソフトをおとし利用することにしました。
これまたMS-DOSソフトなのでMS-DOS Playerから利用します。
色々手間取りましたが、なんとかROMに書き込みHD68P01の上にのせ
PCでターミナルソフト(TeraTermPro)を起動、変換基板経由で
PCとHD68P01を接続。無事teratermにプロンプトが表示されました。
F800からF8FFまでダンプ表示した結果です。
なんか長々だらだらとした文章になってしまいました。
今後は構成を考えていく必要ありますね。
主立った部品は以下のもの
・HD68P01V0P
・クリスタルオシレータ(4.9152MHz)
・USB-シリアル変換基板(Sanhayato製)
MC6801系はCPUクロックとなるEクロックからボーレートを設定でき、
なるべく簡単に動かすためにこれを利用するのですが
9600bpsにするために入力クロックを4.9152NHzにしなければいけません。
使用する石は1MHz動作品ですので入力クロックはMax4MHzで
オーバークロックとなりますがこの程度は問題なく動きますし、
業務で使うわけではありませんので気にしない事にします。
ブレッドボードにくみ上げると写真のような感じになりますが、
ジャンパワイヤーは特にプルアップ系は長さ適当です。
結線はシリアルポートと変換基板、クロック。
パワーONリセットはCRで生成して定数はすぐに取り出せた物(10KΩ、47μF)で適当。
割り込み関係とSTBYを+5Vに。
MC6801系はリセット中にP20~P22をチェックしてモードを切り替えるので、
ワンチップモードにするためにそれらを+5Vへ。
電源は変換基板からとります。
動作確認ソフトとして定番となるモニタソフトを使います。
これも定番であるモトローラ純正のLILBUGというものを利用。
MC6800用のモニタMikbugのMC6801版みたいなものです。
ソースはネットにありますがアセンブルする必要があり
アセンブラは、昔ちょくちょく使っていたモトローラ純正のMOTOASMというものを利用。
ネットあされば他にも色々ありますが、昔から持ってて使い慣れていますので。
MOTOASMはCPU別に6800,6801,6804,6805,6809,6811があるのですが、
今ならオプション、あるいは疑似命令でCPU指定でしょうか。
このMOTOASM、Amiga用もあって確かソースもあったような…。
ただ、これはMS-DOS向けのソフトで最近のWindowsでは動作しません。
そこで、MS-DOSのプログラムをWin32-64bit環境で動かすツール
MS-DOS Player for Win32-x64を利用します。
このモニタ、CPUクロックが1.2288MHz、あるいは0.6144MHzが前提となっていて
ボーレートはデフォルトが300、コマンドで2400および9600に
切り替えるようになっていますがデフォルト9600に変更。
くわえてボーレート切替コマンドを削除。
ボーレート関係の修正を加えてアセンブルを実行。
多少エラーでますが修正して無事アセンブル完了。
書き込みはTL866AというROMライター利用。
いざ書き込もうとするとこれに付属する書き込みソフト、
データはインテルHEXかバイナリしか受け付けません。
それに対してMOTOASMはSレコードを生成します。
しょうがないのでMOTOASM付属のバイナリ変換ソフトを使おうと思いましたが、
ROMサイズを指定してバイナリ生成できるのは良いのですが
オフセット指定はできないような感じで、
2732にあわせて4KBを指定してもアドレス0から4KBのバイナリを生成してしまいます。
生成コードはF800からなのでアドレスF000からの4KBにしたいのですができません。
しょうがないので64KB丸ごと生成しようとして65536を指定するとこれまたできません。
MS-DOS時代のソフトなんで16bitサイズなんでしょうね。
そこでサイズとして65535を指定して、
バイナリエディタでラスト1バイト付け足すことも考えましたが
vectorから別のバイナリ変換ソフトをおとし利用することにしました。
これまたMS-DOSソフトなのでMS-DOS Playerから利用します。
色々手間取りましたが、なんとかROMに書き込みHD68P01の上にのせ
PCでターミナルソフト(TeraTermPro)を起動、変換基板経由で
PCとHD68P01を接続。無事teratermにプロンプトが表示されました。
F800からF8FFまでダンプ表示した結果です。
なんか長々だらだらとした文章になってしまいました。
今後は構成を考えていく必要ありますね。
高速運作TL866CSプログラマ/USBついプログラマ EPROM FLASH AVR TL866シリーズプログラマ
- 出版社/メーカー: Generic
- メディア: エレクトロニクス
HD68P01で1チップ構成(1) [6801]
前々から昔の8bitや16bitCPUを使った製作ブログは色々あったと思いますが、
最近になっていくつか本も出版され、
なんとなく触発されて自分でもやってみたいと思うようになった次第で、
コレクションしていた古いCPUや周辺チップ、メモリを引っ張り出してきました。
最初はとりあえずの実験的なもの。
なのでなるべく部品点数も少なくブレッドボードで。
いやぁ、ブレッドボードって便利ですね。仕事でも試作段階でよく使います。
そのうち基板もおこそうと思っています。
部品点数少なくするためにまずはワンチップ系でやることにして
選択することにしてモトローラのMC6801系。
モトローラといいながら写真は日立の石ばかりですが、左から
HD6803P-1、HD63B01V1P、HD637B01V0C、HD68P01V07
今回使うのはHD68P01V07。
ピギーバックと呼ばれた石で、
チップの上にEP-ROMを載せることができるソフト開発用の石です。
右から2つ目はUVEP-ROM内蔵のもので、
ROMライタで書き込みするためのアダプターを以前作ったことがあるのですが
今はなく、いずれまた作ってこれも活用する予定です。
ROMを載せた状態。こんな感じになります。
4pinあまってますが、HD68P01VはROM容量4KBで
32Kbitの24pinDIPのROMを使うのですが
8KBのHD68P01M0というのがあって、
それは64Kbitの28pinDIPのROMを載せるようになっていて
それとパッケージが共通なのでしょう。
これで、オシレータやCR等、
PC接続用にシリアル-USB変換基板は使いますが
ほぼ1チップで構成できます。
実例は次回に。
最近になっていくつか本も出版され、
なんとなく触発されて自分でもやってみたいと思うようになった次第で、
コレクションしていた古いCPUや周辺チップ、メモリを引っ張り出してきました。
最初はとりあえずの実験的なもの。
なのでなるべく部品点数も少なくブレッドボードで。
いやぁ、ブレッドボードって便利ですね。仕事でも試作段階でよく使います。
そのうち基板もおこそうと思っています。
部品点数少なくするためにまずはワンチップ系でやることにして
選択することにしてモトローラのMC6801系。
モトローラといいながら写真は日立の石ばかりですが、左から
HD6803P-1、HD63B01V1P、HD637B01V0C、HD68P01V07
今回使うのはHD68P01V07。
ピギーバックと呼ばれた石で、
チップの上にEP-ROMを載せることができるソフト開発用の石です。
右から2つ目はUVEP-ROM内蔵のもので、
ROMライタで書き込みするためのアダプターを以前作ったことがあるのですが
今はなく、いずれまた作ってこれも活用する予定です。
ROMを載せた状態。こんな感じになります。
4pinあまってますが、HD68P01VはROM容量4KBで
32Kbitの24pinDIPのROMを使うのですが
8KBのHD68P01M0というのがあって、
それは64Kbitの28pinDIPのROMを載せるようになっていて
それとパッケージが共通なのでしょう。
これで、オシレータやCR等、
PC接続用にシリアル-USB変換基板は使いますが
ほぼ1チップで構成できます。
実例は次回に。
タグ:HD68P01