RGBコンバータ(22)(ver4.2リリース)
RGBコンバータの新しいバージョンをリリースします。
外付けSRAMが必要なバージョンです(ばくてんさんの所で売っている分です)。
怪しいCycloneIIボード1版:221222_01_c2_ver42.zip
怪しいCycloneIIボード2版:221222_01_c2_r_ver42.zip
○ver4.1→ver4.2変更点
1)SRAMへの信号の駆動能力の修正(一部間違えていたため)
2022年12月22日
2022年04月08日
RGBコンバータ(22)
-5V電源問題で、電源が正常になったのはいいのですが、コンパレータの挙動が変わってしまって、今の回路&ファームウェアでは正常動作しないようです。
ちょっと時間が取れない状況になっているので、正常版はもう少し後になりそうです。
ROMEMU+NandemoP6ROM がかなり便利なので、この辺りも何とかしたいんですけどー。
2022年03月19日
RGBコンバータ(21)(初代機用回路図ver2)
RGBコンバータ(21)
初代機用の回路図の本体側を一部修正しました。
元の回路図では、-5V を P6の -5V から直接取っていたものを、-12Vの電源からレギュレータを使って変換するように変更しました。
P6 の -5V の電源端子は使ってはいけない(?)電源だったようです。理由は後述します。
初代機用RGBコンバータ回路図ver2(本体側)

P6内部から -12V を取る必要がありますが、RS-232Cのコネクタが分かりやすいです。
-12V 取り込み箇所

赤い矢印の箇所です。
基板の表から見ると、以下の部分に当たります。

使用しているレギュレータ、コンパレータは、秋月電子で購入できます。
https://akizukidenshi.com/catalog/g/gI-03972/
https://akizukidenshi.com/catalog/g/gI-10028/
外付け側の回路図は変更ありません。
初代機用の回路図の本体側を一部修正しました。
元の回路図では、-5V を P6の -5V から直接取っていたものを、-12Vの電源からレギュレータを使って変換するように変更しました。
P6 の -5V の電源端子は使ってはいけない(?)電源だったようです。理由は後述します。
初代機用RGBコンバータ回路図ver2(本体側)
P6内部から -12V を取る必要がありますが、RS-232Cのコネクタが分かりやすいです。
-12V 取り込み箇所
赤い矢印の箇所です。
基板の表から見ると、以下の部分に当たります。
使用しているレギュレータ、コンパレータは、秋月電子で購入できます。
https://akizukidenshi.com/catalog/g/gI-03972/
https://akizukidenshi.com/catalog/g/gI-10028/
外付け側の回路図は変更ありません。
2022年03月13日
RGBコンバータ(20)(初代機用実装について2)
RGBコンバータ(20)(外付け側実装)
RGBコンバータの初代機用実装について、私が行った方法を紹介します、の続きです。
外付け側も回路図を実装すればいいのですが、mk2/SR用のFPGAコンバータの基板をベースに改造しました。
!!!注意!!!
改造した結果、元の回路や今の回路が動かなくなるかもしれません。
自己責任でお願いします。
FPGAコンバータ改造箇所

順を追って説明します。
1)74LCX245の2ピンをFPGAボードの4ピンに接続する
入力信号を1本増やすためのものです。
2)74LCX245の18ピンがGNDにつながっているので、それをカットする。
入力信号を1本増やすためのものです。
3)74LCX245の18ピンを 1KΩ でプルダウンする。
mk2/SR用で使用する際に、入力オープンになるのを防ぐものです。
4)74LCX245の11〜18ピンに、本体側からの信号を入力すれば完了です。
4)を実現するために、別にコネクタを設けても構わないのですが、今回は既に実装されている、DIN8PINの部分を改造して、信号を9本通すという無茶をしてみました。ピン数が足りないので、DIN8PINのケースも使用しています。
改造方法は以下の通りです。
1)FPGAコンバータのDIN8PINを外す。
これが結構大変です。以下のようにしましたが、コツと慣れが必要です。
・100Wのはんだごてを使う。
・ハンダ付け部分にハンダを盛る。
・コネクタの複数のピンを温める。
・コネクタと基板にドライバーを差し込んで、徐々に抜く。
2)DIN8PINの2ピンがGNDに接続されているので、それをカットする。
基板の表と裏の両方にあるので、両方ともカットする必要があります。
あと、この改造をした場合、通常のmk2/SRで使用しているケーブルも
・線を1本追加して DIN8PIN のケース同士を接続する
・2ピンをDIN8PIN のケースに接続する
のいずれかの加工が必要になります。
初代機からの出力がDIN8PINで出せれば、ケーブルも含めて完全に共用できたんですが、穴のサイズが小さかったので、DIN8PIN が使えませんでした。
RGBコンバータの初代機用実装について、私が行った方法を紹介します、の続きです。
外付け側も回路図を実装すればいいのですが、mk2/SR用のFPGAコンバータの基板をベースに改造しました。
!!!注意!!!
改造した結果、元の回路や今の回路が動かなくなるかもしれません。
自己責任でお願いします。
FPGAコンバータ改造箇所
順を追って説明します。
1)74LCX245の2ピンをFPGAボードの4ピンに接続する
入力信号を1本増やすためのものです。
2)74LCX245の18ピンがGNDにつながっているので、それをカットする。
入力信号を1本増やすためのものです。
3)74LCX245の18ピンを 1KΩ でプルダウンする。
mk2/SR用で使用する際に、入力オープンになるのを防ぐものです。
4)74LCX245の11〜18ピンに、本体側からの信号を入力すれば完了です。
4)を実現するために、別にコネクタを設けても構わないのですが、今回は既に実装されている、DIN8PINの部分を改造して、信号を9本通すという無茶をしてみました。ピン数が足りないので、DIN8PINのケースも使用しています。
改造方法は以下の通りです。
1)FPGAコンバータのDIN8PINを外す。
これが結構大変です。以下のようにしましたが、コツと慣れが必要です。
・100Wのはんだごてを使う。
・ハンダ付け部分にハンダを盛る。
・コネクタの複数のピンを温める。
・コネクタと基板にドライバーを差し込んで、徐々に抜く。
2)DIN8PINの2ピンがGNDに接続されているので、それをカットする。
基板の表と裏の両方にあるので、両方ともカットする必要があります。
あと、この改造をした場合、通常のmk2/SRで使用しているケーブルも
・線を1本追加して DIN8PIN のケース同士を接続する
・2ピンをDIN8PIN のケースに接続する
のいずれかの加工が必要になります。
初代機からの出力がDIN8PINで出せれば、ケーブルも含めて完全に共用できたんですが、穴のサイズが小さかったので、DIN8PIN が使えませんでした。
RGBコンバータ(19)(初代機用実装について1)
RGBコンバータ(19)(本体側実装)
RGBコンバータの初代機用実装について、私が行った方法を紹介します。
まず、初代機用RGBコンバータ回路図(本体側)を組み立てます。
初代機用RGBコンバータ基板(本体側)

基板を継ぎ足していますが、大きいサイズの基板がたまたまなかっただけです。
この基板をRS-232Cボードの部分に装着します。
基板は、本体内にネジ止めします。ネジが1か所のため、RS-232Cのコネクタ用の穴に基板サイズをぴったり合わせないと、使っている時にぐらつきます。
実際に装着したのがこちら。
コンバータ基板装着(本体内部)

下側のネジ1本で本体に固定しています。
コンバータ基板装着(コネクタ側)

コネクタの穴と、基板の横幅がぴったり合っています。これで使っている時もぐらつきません。
この基板に入力する信号線ですが、初代機の基板の裏のRFコンバータの足に直接はんだ付けして引き出す必要があります。
初代機の基板を取り出すには、以下のように行うといいでしょう。
!!!!!注意!!!!!
作業時に、感電のおそれがあります。
初代機は電源ユニットがむき出しです。さらに電源スイッチもむき出しです。
作業する時は必ずコンセントを抜いて、電源を切って、少し時間をおいてから作業して下さい。
自己責任でお願いします。
1)本体裏のネジを外します(5か所)
2)本体の上蓋を外し、スピーカーのコネクタを外します。
3)キーボードのコネクタを外し、キーボードを外します。
4)本体内の金属板のネジを外します(6か所)。
右上のネジは、電源スイッチの下にあるので、電源スイッチを上にずらして外す必要があります。
5)右のトランス(大きい金属の円筒)を止めているネジを外します(4か所)。
6)電源ユニットのコネクタを外します(3か所)。他のコネクタは外さないようにして下さい。
4)5)6)は以下の写真を参考にして下さい。
4)の6か所は赤矢印、5)の4か所は紫矢印、6)の3か所は緑矢印で示しています。
本体内部1

7)金属板を上に動かすと、電源ユニットごと外れて、下の基板が外れるようになります。
このまま基板だけを抜き取ります。
本体内部2

8)基板を裏向けて、RFモジュレータの足から、信号を取り出します。
RFモジュレータの足は、上から
+12V、+5V、-5V、GND、3.58MHz、B-Y、CHB、R-Y、Y
です。今回は、+12V と CHB は使っていません。
信号取り出し1

9)基板を元の位置に戻します。プリンタのクリップやボリュームが引っ掛かるので注意が必要です。
取り出した信号線が基板の左から出すといいでしょう。
信号取り出し2

10)後は、金属板を元の位置に戻して、逆の手順で組み立てて下さい。
RGBコンバータの初代機用実装について、私が行った方法を紹介します。
まず、初代機用RGBコンバータ回路図(本体側)を組み立てます。
初代機用RGBコンバータ基板(本体側)
基板を継ぎ足していますが、大きいサイズの基板がたまたまなかっただけです。
この基板をRS-232Cボードの部分に装着します。
基板は、本体内にネジ止めします。ネジが1か所のため、RS-232Cのコネクタ用の穴に基板サイズをぴったり合わせないと、使っている時にぐらつきます。
実際に装着したのがこちら。
コンバータ基板装着(本体内部)
下側のネジ1本で本体に固定しています。
コンバータ基板装着(コネクタ側)
コネクタの穴と、基板の横幅がぴったり合っています。これで使っている時もぐらつきません。
この基板に入力する信号線ですが、初代機の基板の裏のRFコンバータの足に直接はんだ付けして引き出す必要があります。
初代機の基板を取り出すには、以下のように行うといいでしょう。
!!!!!注意!!!!!
作業時に、感電のおそれがあります。
初代機は電源ユニットがむき出しです。さらに電源スイッチもむき出しです。
作業する時は必ずコンセントを抜いて、電源を切って、少し時間をおいてから作業して下さい。
自己責任でお願いします。
1)本体裏のネジを外します(5か所)
2)本体の上蓋を外し、スピーカーのコネクタを外します。
3)キーボードのコネクタを外し、キーボードを外します。
4)本体内の金属板のネジを外します(6か所)。
右上のネジは、電源スイッチの下にあるので、電源スイッチを上にずらして外す必要があります。
5)右のトランス(大きい金属の円筒)を止めているネジを外します(4か所)。
6)電源ユニットのコネクタを外します(3か所)。他のコネクタは外さないようにして下さい。
4)5)6)は以下の写真を参考にして下さい。
4)の6か所は赤矢印、5)の4か所は紫矢印、6)の3か所は緑矢印で示しています。
本体内部1
7)金属板を上に動かすと、電源ユニットごと外れて、下の基板が外れるようになります。
このまま基板だけを抜き取ります。
本体内部2
8)基板を裏向けて、RFモジュレータの足から、信号を取り出します。
RFモジュレータの足は、上から
+12V、+5V、-5V、GND、3.58MHz、B-Y、CHB、R-Y、Y
です。今回は、+12V と CHB は使っていません。
信号取り出し1
9)基板を元の位置に戻します。プリンタのクリップやボリュームが引っ掛かるので注意が必要です。
取り出した信号線が基板の左から出すといいでしょう。
信号取り出し2
10)後は、金属板を元の位置に戻して、逆の手順で組み立てて下さい。
2022年03月11日
RGBコンバータ(18)(ver41リリース)
RGBコンバータ(18)(ver4.1リリース)
RGBコンバータの新しいバージョンをリリースします。
外付けSRAMが必要なバージョンです(ばくてんさんの所で売っている分です)。
怪しいCycloneIIボード1版:c2_ver41.zip
怪しいCycloneIIボード2版:c2_r_ver41.zip
○ver4.0→ver4.1変更点
1)mk2以降での色コード0x01〜0x07の発色の変更
青紫、橙、赤紫、青緑、空色、黄緑、灰色の発色を変更しました。
(色がヘンだったので)
2)初代機での出力安定の回路の追加
RGBコンバータの新しいバージョンをリリースします。
外付けSRAMが必要なバージョンです(ばくてんさんの所で売っている分です)。
怪しいCycloneIIボード1版:c2_ver41.zip
怪しいCycloneIIボード2版:c2_r_ver41.zip
○ver4.0→ver4.1変更点
1)mk2以降での色コード0x01〜0x07の発色の変更
青紫、橙、赤紫、青緑、空色、黄緑、灰色の発色を変更しました。
(色がヘンだったので)
2)初代機での出力安定の回路の追加
2022年03月05日
RGBコンバータ(17)(初代機用回路図)
RGBコンバータ(17)
初代機用の回路図をアップします。
初代機用RGBコンバータ回路図(本体側)

RS-232C出力用の場所と穴を使って、本体側の回路を実装します。
使用しているIC(コンパレータ)は、秋月電子で購入できます。
https://akizukidenshi.com/catalog/g/gI-10028/
初代機用RGBコンバータ回路図(外付側)

外付け側は、現在のmk2以降用のRGBコンバータを利用しています。
P6からRGBコンバータへの信号線を1本追加しています。
そのため、今のままのでは使用できず、何らかの改造が必要になります。
改造方法などの実装方法は、また別の記事で。
初代機用の回路図をアップします。
初代機用RGBコンバータ回路図(本体側)
RS-232C出力用の場所と穴を使って、本体側の回路を実装します。
使用しているIC(コンパレータ)は、秋月電子で購入できます。
https://akizukidenshi.com/catalog/g/gI-10028/
初代機用RGBコンバータ回路図(外付側)
外付け側は、現在のmk2以降用のRGBコンバータを利用しています。
P6からRGBコンバータへの信号線を1本追加しています。
そのため、今のままのでは使用できず、何らかの改造が必要になります。
改造方法などの実装方法は、また別の記事で。
RGBコンバータ(16)(ver40リリース)
RGBコンバータ(16)(ver4.0リリース)
RGBコンバータの新しいバージョンをリリースします。
外付けSRAMが必要なバージョンです(ばくてんさんの所で売っている分です)。
怪しいCycloneIIボード1版: c2_ver40.zip
怪しいCycloneIIボード2版: c2_r_ver40.zip
○変更点
1)VGA側の解像度 640x480 と 1280x1024 を選択できるようにした。
以前のバージョンでは、FPGAにデータを書き込んだ時に決まっていたのですが、
それを後から選択できるようにしました。
FPGA上のプッシュSWを長押しすることで、解像度が選択できます。
またRGBコンバータが起動した時(デフォルト)は、640x480 で起動します。
デフォルトを 1280x1024 にしたい時は、FPGAボードの pin104 をGNDに落として下さい。
隣のピンがGNDなので、ショートピンを繋ぐことで、デフォルトが変更されます。
2)初代機対応
初代機をRGB出力が出来るようになります。
ただし、追加で別回路(別基板)と、現在のRGBコンバータの回路の
一部変更が必要になります。
初代機を映さないのであれば、改造などは必要ありません。
具体的な内容に関しては、後日掲載します。
3)色にじみモードの表示回路の一部修正
4)外付けRAMとのタイミングの修正
以下は前バージョンから同じ文言です。
怪しいCycloneIIのみのリリースとなります。
怪しいCycloneIIボードが、1と2の二つありますが、73ピンのパワーオンリセットの回路のみが違うものがあります。
ボード1:電源投入時、L→H
ボード2:電源投入時、H→L
基板の裏をよーく見るとわかるんですが、面倒な場合はどちらか動く方を使用して下さい。
(リセットが違うので、別バージョンのものを書き込むと、ボタンを押してもLEDが点灯しません)
・使い方
ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。
・怪しいCycloneIIボード版
ボード上のプッシュスイッチを押すと、にじみが出せます。
プッシュスイッチを押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
RGBコンバータの新しいバージョンをリリースします。
外付けSRAMが必要なバージョンです(ばくてんさんの所で売っている分です)。
怪しいCycloneIIボード1版: c2_ver40.zip
怪しいCycloneIIボード2版: c2_r_ver40.zip
○変更点
1)VGA側の解像度 640x480 と 1280x1024 を選択できるようにした。
以前のバージョンでは、FPGAにデータを書き込んだ時に決まっていたのですが、
それを後から選択できるようにしました。
FPGA上のプッシュSWを長押しすることで、解像度が選択できます。
またRGBコンバータが起動した時(デフォルト)は、640x480 で起動します。
デフォルトを 1280x1024 にしたい時は、FPGAボードの pin104 をGNDに落として下さい。
隣のピンがGNDなので、ショートピンを繋ぐことで、デフォルトが変更されます。
2)初代機対応
初代機をRGB出力が出来るようになります。
ただし、追加で別回路(別基板)と、現在のRGBコンバータの回路の
一部変更が必要になります。
初代機を映さないのであれば、改造などは必要ありません。
具体的な内容に関しては、後日掲載します。
3)色にじみモードの表示回路の一部修正
4)外付けRAMとのタイミングの修正
以下は前バージョンから同じ文言です。
怪しいCycloneIIのみのリリースとなります。
怪しいCycloneIIボードが、1と2の二つありますが、73ピンのパワーオンリセットの回路のみが違うものがあります。
ボード1:電源投入時、L→H
ボード2:電源投入時、H→L
基板の裏をよーく見るとわかるんですが、面倒な場合はどちらか動く方を使用して下さい。
(リセットが違うので、別バージョンのものを書き込むと、ボタンを押してもLEDが点灯しません)
・使い方
ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。
・怪しいCycloneIIボード版
ボード上のプッシュスイッチを押すと、にじみが出せます。
プッシュスイッチを押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
2020年05月19日
RGBコンバータ(15)(DE0版ver32リリース)の追記
RGBコンバータ(15)(DE0版ver3.2リリース)の追記です。
今回のリリースは、1280x1024のみです。
要望があれば 640x480 も作りますが、余り使っていなさそうなので(^^;)
今回のDE0版は、実はついで(というかデバッグ用)に作ったものです。
SDRAMを使った画面バッファを作るために、とりあえず簡単にテストが出来る、今のP6用のRGBコンバータが都合がよかったためです。
回路で使っていない部分があるのはそのためです(PLLの余分なクロック生成とか、内蔵RAMのアドレス数が多いとか...)。
今回のリリースは、1280x1024のみです。
要望があれば 640x480 も作りますが、余り使っていなさそうなので(^^;)
今回のDE0版は、実はついで(というかデバッグ用)に作ったものです。
SDRAMを使った画面バッファを作るために、とりあえず簡単にテストが出来る、今のP6用のRGBコンバータが都合がよかったためです。
回路で使っていない部分があるのはそのためです(PLLの余分なクロック生成とか、内蔵RAMのアドレス数が多いとか...)。
RGBコンバータ(15)(DE0版ver32リリース)
RGBコンバータ(15)(DE0版ver3.2リリース)
DE0版のRGBコンバータの新しいバージョンをリリースします。
(怪しいCycloneIIボードと同じ変更です)
回路(ピンアサインなど)も一部変更しました。詳しくは同梱の回路図を見てください。
DE0_1280x1024_ver32.zip
○変更点(CycloneIIボード→DE0版の変更点)
・CycloneIIで使用していた外付けSRAMの代わりに、DE0のボード上のSDRAMを使用
ボード上のLEDは以下を示しています。
クロック未検出時 :LED0、LED1、LED2が点滅。
データ未検出時 :LED1、LED2が点滅。
データ未同期時 :LED2が点滅。
SDRAM初期化エラー時 :LED3が点滅
SDRAMパリティエラー時 :LED4が点滅
データが同期していなくても、画面は問題なく表示される事が多いので、特に気にしなくても構いません。
(一部のカートリッジソフトや、動作状況により、この状態になることがあります)
クロック、データが正常に入力されている場合は、LED0〜4は以下のようになります。
LED0:にじみ処理時、点灯
LED1:mk2SR/66SR時、点灯
LED2:点灯(SDRAM初期化終了)
LED3:消灯(SDRAM初期化エラー時、点滅)
LED4:消灯(SDRAMパリティエラー時、点滅)
簡単に言うと、
・LED0〜2の内、3つ点滅している場合は、何らかの原因で14MHz/3.58MHzが入力されていない。
・LED0〜2の内、2つ点滅している場合は、何らかの原因でデータが入力されていない。
・LED0〜2の内、1つだけ点滅している場合は、画面が正常に表示されていれば特に気にしなくてもいい。
です。
RGBコンバータに電源投入直後は、P6の電源を入れない状態だと、LED0〜2が3つ点滅し、画面は青画面になります。
また普通は、LED3/4が点滅する事はありません。
もし、LED3/4が点滅する場合は、連絡頂けると助かります(SDRAMとのタイミングがおかしい可能性あり)。
・使い方
ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。
ボード上のBUTTON2を押すと、にじみが出せます。
BUTTON2を押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
また、ボード上のBUTTON0はリセットスイッチです。
何らかの問題があった場合、BUTTON0を押すと、解消されるかもしれません。
ボード上のSW0〜9は、すべてOFFで使用してください。
DE0版のRGBコンバータの新しいバージョンをリリースします。
(怪しいCycloneIIボードと同じ変更です)
回路(ピンアサインなど)も一部変更しました。詳しくは同梱の回路図を見てください。
DE0_1280x1024_ver32.zip
○変更点(CycloneIIボード→DE0版の変更点)
・CycloneIIで使用していた外付けSRAMの代わりに、DE0のボード上のSDRAMを使用
ボード上のLEDは以下を示しています。
クロック未検出時 :LED0、LED1、LED2が点滅。
データ未検出時 :LED1、LED2が点滅。
データ未同期時 :LED2が点滅。
SDRAM初期化エラー時 :LED3が点滅
SDRAMパリティエラー時 :LED4が点滅
データが同期していなくても、画面は問題なく表示される事が多いので、特に気にしなくても構いません。
(一部のカートリッジソフトや、動作状況により、この状態になることがあります)
クロック、データが正常に入力されている場合は、LED0〜4は以下のようになります。
LED0:にじみ処理時、点灯
LED1:mk2SR/66SR時、点灯
LED2:点灯(SDRAM初期化終了)
LED3:消灯(SDRAM初期化エラー時、点滅)
LED4:消灯(SDRAMパリティエラー時、点滅)
簡単に言うと、
・LED0〜2の内、3つ点滅している場合は、何らかの原因で14MHz/3.58MHzが入力されていない。
・LED0〜2の内、2つ点滅している場合は、何らかの原因でデータが入力されていない。
・LED0〜2の内、1つだけ点滅している場合は、画面が正常に表示されていれば特に気にしなくてもいい。
です。
RGBコンバータに電源投入直後は、P6の電源を入れない状態だと、LED0〜2が3つ点滅し、画面は青画面になります。
また普通は、LED3/4が点滅する事はありません。
もし、LED3/4が点滅する場合は、連絡頂けると助かります(SDRAMとのタイミングがおかしい可能性あり)。
・使い方
ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。
ボード上のBUTTON2を押すと、にじみが出せます。
BUTTON2を押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
また、ボード上のBUTTON0はリセットスイッチです。
何らかの問題があった場合、BUTTON0を押すと、解消されるかもしれません。
ボード上のSW0〜9は、すべてOFFで使用してください。
2020年05月05日
X68000用マウスコンバータ
X68000の話が続きます。
昨日書いた、マウスのボール問題ですが、結局P6みたいにマウスコンバータを作る事にしました。
P6でのマウスコンバータの設計資産をそのまま使ったので、かなり簡単に出来ました(設計からデバッグまで1.5日)。
既に他の人が作っているのがあるのは知っていますが、わざわざ買うのも...というわけです。
P6と同様に、PS/2マウス→X68000マウスへの変換です。

ソースとHEXファイルです→MOUSEX68.zip
AVRも全く同じの ATtiny2313 で設計しています。ATtiny2313A でも同じHEXファイルで動作します。
P6のものと同じように、真ん中ボタンを押すとマウス移動速度が遅くなります(x1、x1/2、x1/4、x1、…)。
またPS/2のマウスによっては動作しないものがあるので注意して下さい。
X68000に接続する時は、PS/2マウスをコンバータに接続してから、X68000に接続して下さい。
X68000のマウスは、いわゆるシリアルマウスです。仕様を調べた結果、以下の通りのようです。
・転送速度:4800bps(1ビット当たり208us)
・スタート1ビット、ストップ2ビット
・データ8ビット、パリティなし
・X68000→マウス:出力要求信号(MSCTRL)
・マウス→X68000:データ出力(MSDATA)
・MSCTRLが、"H"の間は、MSDATA は Hi-Z
・MSCTRLが、"H"→"L"になって、400us程度経ってからデータを出力する(LSB先送り)。
・データ出力は3バイト。
1バイト目:bit0:左ボタンの状態(押下中"H")
1バイト目:bit1:右ボタンの状態(押下中"H")
1バイト目:bit2-7:"L"
2バイト目:bit0-7:左右移動量(符号付:右移動時が正)
3バイト目:bit0-7:上下移動量(符号付:下移動時が正)
製作で一番問題なのは、X68000に挿し込むための、mini DIN5ピンのプラグが入手困難なことです。
私自身はたまたま持っていたんですが、もったいないので(^^;) miniDIN6ピンを加工してmini DIN5ピンにしました。
miniDIN6ピンは、PS/2マウスで使われているプラグなので、入手性はいいと思います。

↑見づらいですが、プラグの種類によっては、真ん中の棒の太さが若干ちがいます。細いほうが加工がしやすいです。

↑これまた見づらいですが、矢印で指している部分を加工します。
右下のピンを一つ根元から切り、真ん中の棒の上半分くらいを切断します。
そのままでは加工ができないので、外側のプラスティックの部分から出す必要があります。
また、miniDIN6ピンの新品のプラグが入手できれば、それから加工するのがテだと思います。
共立電子→https://eleshop.jp/shop/g/g61F14A/
完成したものも載せておきます。


昨日書いた、マウスのボール問題ですが、結局P6みたいにマウスコンバータを作る事にしました。
P6でのマウスコンバータの設計資産をそのまま使ったので、かなり簡単に出来ました(設計からデバッグまで1.5日)。
既に他の人が作っているのがあるのは知っていますが、わざわざ買うのも...というわけです。
P6と同様に、PS/2マウス→X68000マウスへの変換です。
ソースとHEXファイルです→MOUSEX68.zip
AVRも全く同じの ATtiny2313 で設計しています。ATtiny2313A でも同じHEXファイルで動作します。
P6のものと同じように、真ん中ボタンを押すとマウス移動速度が遅くなります(x1、x1/2、x1/4、x1、…)。
またPS/2のマウスによっては動作しないものがあるので注意して下さい。
X68000に接続する時は、PS/2マウスをコンバータに接続してから、X68000に接続して下さい。
X68000のマウスは、いわゆるシリアルマウスです。仕様を調べた結果、以下の通りのようです。
・転送速度:4800bps(1ビット当たり208us)
・スタート1ビット、ストップ2ビット
・データ8ビット、パリティなし
・X68000→マウス:出力要求信号(MSCTRL)
・マウス→X68000:データ出力(MSDATA)
・MSCTRLが、"H"の間は、MSDATA は Hi-Z
・MSCTRLが、"H"→"L"になって、400us程度経ってからデータを出力する(LSB先送り)。
・データ出力は3バイト。
1バイト目:bit0:左ボタンの状態(押下中"H")
1バイト目:bit1:右ボタンの状態(押下中"H")
1バイト目:bit2-7:"L"
2バイト目:bit0-7:左右移動量(符号付:右移動時が正)
3バイト目:bit0-7:上下移動量(符号付:下移動時が正)
製作で一番問題なのは、X68000に挿し込むための、mini DIN5ピンのプラグが入手困難なことです。
私自身はたまたま持っていたんですが、もったいないので(^^;) miniDIN6ピンを加工してmini DIN5ピンにしました。
miniDIN6ピンは、PS/2マウスで使われているプラグなので、入手性はいいと思います。
↑見づらいですが、プラグの種類によっては、真ん中の棒の太さが若干ちがいます。細いほうが加工がしやすいです。
↑これまた見づらいですが、矢印で指している部分を加工します。
右下のピンを一つ根元から切り、真ん中の棒の上半分くらいを切断します。
そのままでは加工ができないので、外側のプラスティックの部分から出す必要があります。
また、miniDIN6ピンの新品のプラグが入手できれば、それから加工するのがテだと思います。
共立電子→https://eleshop.jp/shop/g/g61F14A/
完成したものも載せておきます。
2020年02月29日
RGBコンバータ(14)
RGBコンバータ(14) ver3.2について。
前までのバージョンで画面が乱れるなどの問題が出ていた件の話です。
私が所有しているP6達+自分で作成のRGBケーブルでは全然問題が発生しませんでした。
ばくてんさんが基板などを配布し出して、ちらほら動かない(画面が乱れるなど)ものが出てきたみたいだったのですが、自分の環境では再現できなかったので、何が原因か分からずに、対策しても改善できるかも分からない状態でした。
ですが、今回ばくてんさんに画面が乱れる個体を借用して頂いて、いろいろな事が判明しました。
結論としては、RGBコンバータの設計に問題がありました。問題というか私の想定外のP6の挙動です。


↑は、mk2の出力に、25cmぐらいのケーブルを付けた先をオシロで観察してもらったものです。
画面が乱れる個体の、14MHzクロックと、HSYNC を観測していますが、画面が乱れないものでもほとんど同じ波形でした。
この波形は完全に想定外でした。
普通、14MHzクロックで叩かれた信号(HSYNC)なら、こんなに立ち下がりがゆっくりではなく、もっと急峻になります。
最終段が LS367 のためか、それともその後の3端子フィルタのためなのか分かりませんが、かなり波形がなまっています。
波形のなまりを考慮せずに回路を作っているため、いろいろと問題が出ているようでした。
今回対処したのは、大きく2点です。
1)14MHzクロックのサンプリング後に補正を掛けた。
クロック入力の際、FPGA内部の100MHzクロックで、14MHzのクロックをサンプリングしています。
そのサンプリング後のクロックを見ると、正常にクロック出力がなされずに、クロックが抜ける現象が発生していました。
画像データが変化するとクロックが抜ける事があり、これが画像データが乱れる原因でした。
画像データ変化→電源電圧変化→クロック入力の閾値変化→クロックが正常にサンプリングできない、という事が起こっているようです。
クロックなので、数クロック抜けても再生可能なので、抜けた場合は内部回路であるものとして再生しています。
2)mk2/66の場合、データ幅が2倍になるとして、サンプリング間隔を倍にした。
回路構成としては、横640ドットに対応するデータがP6から入力される事を想定していましたが、これだとmk2/66の場合にかなり厳しいようです。
そのため、mk2/66だと検出した場合は、サンプリング間隔を倍にする事で、データ波形がなまっていても正常にサンプリングできるようにしました。
ちなみに、mk2SR/66SR は、最終段が 7404 と無印のTTLを使っているので、波形は mk2/66 よりも急峻になるように設計されているようです。
今回の改訂で、普通の(?) P6では問題なく動作すると思います。 ...だといいな(^^;)
前までのバージョンで画面が乱れるなどの問題が出ていた件の話です。
私が所有しているP6達+自分で作成のRGBケーブルでは全然問題が発生しませんでした。
ばくてんさんが基板などを配布し出して、ちらほら動かない(画面が乱れるなど)ものが出てきたみたいだったのですが、自分の環境では再現できなかったので、何が原因か分からずに、対策しても改善できるかも分からない状態でした。
ですが、今回ばくてんさんに画面が乱れる個体を借用して頂いて、いろいろな事が判明しました。
結論としては、RGBコンバータの設計に問題がありました。問題というか私の想定外のP6の挙動です。
↑は、mk2の出力に、25cmぐらいのケーブルを付けた先をオシロで観察してもらったものです。
画面が乱れる個体の、14MHzクロックと、HSYNC を観測していますが、画面が乱れないものでもほとんど同じ波形でした。
この波形は完全に想定外でした。
普通、14MHzクロックで叩かれた信号(HSYNC)なら、こんなに立ち下がりがゆっくりではなく、もっと急峻になります。
最終段が LS367 のためか、それともその後の3端子フィルタのためなのか分かりませんが、かなり波形がなまっています。
波形のなまりを考慮せずに回路を作っているため、いろいろと問題が出ているようでした。
今回対処したのは、大きく2点です。
1)14MHzクロックのサンプリング後に補正を掛けた。
クロック入力の際、FPGA内部の100MHzクロックで、14MHzのクロックをサンプリングしています。
そのサンプリング後のクロックを見ると、正常にクロック出力がなされずに、クロックが抜ける現象が発生していました。
画像データが変化するとクロックが抜ける事があり、これが画像データが乱れる原因でした。
画像データ変化→電源電圧変化→クロック入力の閾値変化→クロックが正常にサンプリングできない、という事が起こっているようです。
クロックなので、数クロック抜けても再生可能なので、抜けた場合は内部回路であるものとして再生しています。
2)mk2/66の場合、データ幅が2倍になるとして、サンプリング間隔を倍にした。
回路構成としては、横640ドットに対応するデータがP6から入力される事を想定していましたが、これだとmk2/66の場合にかなり厳しいようです。
そのため、mk2/66だと検出した場合は、サンプリング間隔を倍にする事で、データ波形がなまっていても正常にサンプリングできるようにしました。
ちなみに、mk2SR/66SR は、最終段が 7404 と無印のTTLを使っているので、波形は mk2/66 よりも急峻になるように設計されているようです。
今回の改訂で、普通の(?) P6では問題なく動作すると思います。 ...だといいな(^^;)
RGBコンバータ(13)(ver3.2リリース)
RGBコンバータ(13)(ver3.2リリース)
RGBコンバータの新しいバージョンをリリースします。
一つ前のバージョンのように、外付けSRAMが必要なバージョンです(ばくてんさんの所で売っている分です)。
怪しいCycloneIIボード1版(640x480) :c2_640x480_ver32.zip
怪しいCycloneIIボード1版(1280x1024):c2_1280x1024_ver32.zip
怪しいCycloneIIボード2版(640x480) :c2_r_640x480_ver32.zip
怪しいCycloneIIボード2版(1280x1024):c2_r_1280x1024_ver32.zip
○変更点
・一部の個体や環境で、画面が乱れる問題の対策
・データ同期の取り方の修正
・LED表示の変更
mk2/66で、画面表示が崩れる、映らないなどの問題が改善されていると思います。
また、今のFPGA周りの回路の都合ですが、P6とRGBコンバータをつなぐケーブルは、出来るだけ短くして下さい(15センチ以下が望ましい)。
ボード上の3つのLEDを以下のように変更しています。
クロック未検出時:D2、D4、D5が点滅。
データ未検出時 :D4、D5が点滅。
データ未同期時 :D5が点滅。
データが同期していなくても、画面は問題なく表示される事が多いので、特に気にしなくても構いません。
(一部のカートリッジソフトや、動作状況により、この状態になることがあります)
クロック、データが正常に入力されている場合は、D2、D4が以下のようになります。
D2:にじみ処理時、点灯
D4:mk2SR/66SR時、点灯
簡単に言うと、
・LEDが3つ点滅している場合は、何らかの原因で14MHz/3.58MHzが入力されていない。
・LEDが2つ点滅している場合は、何らかの原因でデータが入力されていない。
・LEDが1つだけ点滅している場合は、画面が表示されていれば特に気にしなくてもいい。
です。
RGBコンバータに電源投入直後は、P6の電源を入れない状態だと、LEDが3つ点滅し、画面は青画面になります。
以下は前バージョンから同じ文言です。
怪しいCycloneIIのみのリリースとなります。
使用するモニタの解像度に合わせて、使用して下さい。
怪しいCycloneIIボードが、1と2の二つありますが、73ピンのパワーオンリセットの回路のみが違うものがあります。
ボード1:電源投入時、L→H
ボード2:電源投入時、H→L
基板の裏をよーく見るとわかるんですが、面倒な場合はどちらか動く方を使用して下さい。
(リセットが違うので、別バージョンのものを書き込むと、ボタンを押してもLEDが点灯しません)
・使い方
ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。
・怪しいCycloneIIボード版
ボード上のプッシュスイッチを押すと、にじみが出せます。
プッシュスイッチを押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
RGBコンバータの新しいバージョンをリリースします。
一つ前のバージョンのように、外付けSRAMが必要なバージョンです(ばくてんさんの所で売っている分です)。
怪しいCycloneIIボード1版(640x480) :c2_640x480_ver32.zip
怪しいCycloneIIボード1版(1280x1024):c2_1280x1024_ver32.zip
怪しいCycloneIIボード2版(640x480) :c2_r_640x480_ver32.zip
怪しいCycloneIIボード2版(1280x1024):c2_r_1280x1024_ver32.zip
○変更点
・一部の個体や環境で、画面が乱れる問題の対策
・データ同期の取り方の修正
・LED表示の変更
mk2/66で、画面表示が崩れる、映らないなどの問題が改善されていると思います。
また、今のFPGA周りの回路の都合ですが、P6とRGBコンバータをつなぐケーブルは、出来るだけ短くして下さい(15センチ以下が望ましい)。
ボード上の3つのLEDを以下のように変更しています。
クロック未検出時:D2、D4、D5が点滅。
データ未検出時 :D4、D5が点滅。
データ未同期時 :D5が点滅。
データが同期していなくても、画面は問題なく表示される事が多いので、特に気にしなくても構いません。
(一部のカートリッジソフトや、動作状況により、この状態になることがあります)
クロック、データが正常に入力されている場合は、D2、D4が以下のようになります。
D2:にじみ処理時、点灯
D4:mk2SR/66SR時、点灯
簡単に言うと、
・LEDが3つ点滅している場合は、何らかの原因で14MHz/3.58MHzが入力されていない。
・LEDが2つ点滅している場合は、何らかの原因でデータが入力されていない。
・LEDが1つだけ点滅している場合は、画面が表示されていれば特に気にしなくてもいい。
です。
RGBコンバータに電源投入直後は、P6の電源を入れない状態だと、LEDが3つ点滅し、画面は青画面になります。
以下は前バージョンから同じ文言です。
怪しいCycloneIIのみのリリースとなります。
使用するモニタの解像度に合わせて、使用して下さい。
怪しいCycloneIIボードが、1と2の二つありますが、73ピンのパワーオンリセットの回路のみが違うものがあります。
ボード1:電源投入時、L→H
ボード2:電源投入時、H→L
基板の裏をよーく見るとわかるんですが、面倒な場合はどちらか動く方を使用して下さい。
(リセットが違うので、別バージョンのものを書き込むと、ボタンを押してもLEDが点灯しません)
・使い方
ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。
・怪しいCycloneIIボード版
ボード上のプッシュスイッチを押すと、にじみが出せます。
プッシュスイッチを押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
2020年01月23日
RGBコンバータ(12)
RGBコンバータ(12)(ver3.1リリース)
RGBコンバータの新しいバージョンをリリースします。
一つ前のバージョンのように、外付けSRAMが必要なバージョンです(ばくてんさんの所で売っている分です)。
怪しいCycloneIIボード1版(640x480):c2_640x480_ver31.zip
怪しいCycloneIIボード1版(1280x1024):c2_1280x1024_1000_ver31.zip
怪しいCycloneIIボード2版(640x480):c2_r_640x480_ver31.zip
怪しいCycloneIIボード2版(1280x1024):c2_r_1280x1024_1000_ver31.zip
○変更点
・SRAM周りの波形改善
・同期が取れていない時に、青色画面を出すようにした。
怪しいCycloneIIのみのリリースとなります。
使用するモニタの解像度に合わせて、使用して下さい。
怪しいCycloneIIボードが、1と2の二つありますが、73ピンのパワーオンリセットの回路のみが違うものがあります。
ボード1:電源投入時、L→H
ボード2:電源投入時、H→L
基板の裏をよーく見るとわかるんですが、面倒な場合はどちらか動く方を使用して下さい。
(リセットが違うので、別バージョンのものを書き込むと、ボタンを押してもLEDが点灯しません)
使用方法などは前回と変わっていません。一応、前回に掲載したものを再掲します。
・使い方
ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。
・怪しいCycloneIIボード版
ボード上のプッシュスイッチを押すと、にじみが出せます。
プッシュスイッチを押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
ボード上の3つのLEDは、以下を示しています。
D2:にじみ処理時、点灯
D4:mk2SR/66SR時、点灯
D5:データ同期時、点灯
RGBコンバータの新しいバージョンをリリースします。
一つ前のバージョンのように、外付けSRAMが必要なバージョンです(ばくてんさんの所で売っている分です)。
怪しいCycloneIIボード1版(640x480):c2_640x480_ver31.zip
怪しいCycloneIIボード1版(1280x1024):c2_1280x1024_1000_ver31.zip
怪しいCycloneIIボード2版(640x480):c2_r_640x480_ver31.zip
怪しいCycloneIIボード2版(1280x1024):c2_r_1280x1024_1000_ver31.zip
○変更点
・SRAM周りの波形改善
・同期が取れていない時に、青色画面を出すようにした。
怪しいCycloneIIのみのリリースとなります。
使用するモニタの解像度に合わせて、使用して下さい。
怪しいCycloneIIボードが、1と2の二つありますが、73ピンのパワーオンリセットの回路のみが違うものがあります。
ボード1:電源投入時、L→H
ボード2:電源投入時、H→L
基板の裏をよーく見るとわかるんですが、面倒な場合はどちらか動く方を使用して下さい。
(リセットが違うので、別バージョンのものを書き込むと、ボタンを押してもLEDが点灯しません)
使用方法などは前回と変わっていません。一応、前回に掲載したものを再掲します。
・使い方
ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。
・怪しいCycloneIIボード版
ボード上のプッシュスイッチを押すと、にじみが出せます。
プッシュスイッチを押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
ボード上の3つのLEDは、以下を示しています。
D2:にじみ処理時、点灯
D4:mk2SR/66SR時、点灯
D5:データ同期時、点灯
2018年11月09日
RGBコンバータ使用時の注意
今更ですが、RGBコンバータについての注意です。
端子形状から他の機種でも使用できそうですが、P6以外の使用はしないで下さい。
PC-8001mk2、PC-98、FM-7などで使用した場合、最悪は壊れる可能性があります。
(1ピンに+12Vが出力されているため)
端子形状から他の機種でも使用できそうですが、P6以外の使用はしないで下さい。
PC-8001mk2、PC-98、FM-7などで使用した場合、最悪は壊れる可能性があります。
(1ピンに+12Vが出力されているため)
2018年06月26日
P6間通信
P6月間特別企画(その26)
TETRISでのP6間通信の話です。
ゲームボーイのソフトをP6に移植しようと考えたのは、
・ソフトが入手しやすい
・Z80(に近い)を使っている
・グラフィックがP6で実現できる
の3点でした。
ゲームボーイのソフトをいろいろ調べてみると、特に初期のソフトは通信ケーブルを使った対戦プレイが出来るようにしているようでした。
P6でも通信対戦が出来るといいなーと思って、試しにテトリスを移植しました。
結果的には、別の場所で問題が発生しているようで、まともに通信対戦ができません(;_;)
アルゴリズム的には大丈夫だと思われるので、その辺りを公開します。
まず、P6間を繋ぐ、接続ケーブルですが、↓のような簡単な回路図です。

GNDは相互を接続しますが、VCCは接続しないようにして下さい。
6、7、8 ピンからデータを送信します。1、2、3 ピンからそのデータを受信します。

↑具体的な通信アルゴリズムです。
8ピンを制御信号に使用しており、通常は L にしておきます。
この制御信号をL→H、H→Lとさせることで、データの送信完了とデータ受信完了応答を兼ねています。
元々のゲームボーイの通信方式もそうなのですが、送信側が1バイト送信する間に、同時に受信側からも1バイトデータを受信します。
今回はゲームボーイのソフトでしたが、P6間で通信対戦ゲームを作る時に使えるかも。
誰か作ってください(^^;)/
TETRISでのP6間通信の話です。
ゲームボーイのソフトをP6に移植しようと考えたのは、
・ソフトが入手しやすい
・Z80(に近い)を使っている
・グラフィックがP6で実現できる
の3点でした。
ゲームボーイのソフトをいろいろ調べてみると、特に初期のソフトは通信ケーブルを使った対戦プレイが出来るようにしているようでした。
P6でも通信対戦が出来るといいなーと思って、試しにテトリスを移植しました。
結果的には、別の場所で問題が発生しているようで、まともに通信対戦ができません(;_;)
アルゴリズム的には大丈夫だと思われるので、その辺りを公開します。
まず、P6間を繋ぐ、接続ケーブルですが、↓のような簡単な回路図です。
GNDは相互を接続しますが、VCCは接続しないようにして下さい。
6、7、8 ピンからデータを送信します。1、2、3 ピンからそのデータを受信します。
↑具体的な通信アルゴリズムです。
8ピンを制御信号に使用しており、通常は L にしておきます。
この制御信号をL→H、H→Lとさせることで、データの送信完了とデータ受信完了応答を兼ねています。
元々のゲームボーイの通信方式もそうなのですが、送信側が1バイト送信する間に、同時に受信側からも1バイトデータを受信します。
今回はゲームボーイのソフトでしたが、P6間で通信対戦ゲームを作る時に使えるかも。
誰か作ってください(^^;)/
2017年10月28日
メモリチェック2
だいぶ前に作った、外付け拡張RAMのメモリチェック用のプログラムを変更しました。
memcheck2.zip
主な修正点は、戦士カートリッジmkUに対応した事です。128K〜1024Kまで対応しています。
使い方は同梱のドキュメントを参照して下さい。
手抜きのため、相変わらずかなり遅いです。
1024Kをチェックするのに、30分くらいかかります...
memcheck2.zip
主な修正点は、戦士カートリッジmkUに対応した事です。128K〜1024Kまで対応しています。
使い方は同梱のドキュメントを参照して下さい。
手抜きのため、相変わらずかなり遅いです。
1024Kをチェックするのに、30分くらいかかります...
戦士カートリッジmkIIメモリ増設
戦士のカートリッジmkUのメモリ増設の改造について
注意)改造に失敗しても当方では責任を持てませんので、自己責任でお願いします。
cpld1024K.zip
詳しくは同梱のドキュメントを参照して下さい。
1.何をするか?
戦士のカートリッジmkU(一般には、ベルーガ新カートリッジ)に搭載されているSRAMは、128Kバイトです。
これを256K/512K/1024Kにする改造をします。
ただし、SCC機能が使えなくなります(それ以外の機能はそのままです)。
2.必要なもの
・戦士のカートリッジmkU
・追加するSRAM
256Kの場合:M68AF127BM55MC6 1個
http://akizukidenshi.com/catalog/g/gI-01083/
512K/1024Kの場合:AS6C4008-55SIN 1個/2個
https://www.marutsu.co.jp/GoodsDetail.jsp?q=AS6C4008-55SIN&salesGoodsCode=11485249&shopNo=3
URLは参考です。コンパチ品なら問題ないと思います。
・初代機以外のP6実機
・XilinxのCLPDを書き込める環境と技術
・半田付けの技術
3.仕様の変更
SRAM:00000〜1FFFF
↓
SRAM:00000〜3FFFF(256K)
SRAM:00000〜7FFFF(512K)
SRAM:00000〜FFFFF(1024K)
I/Oポート0x30〜0x37を設定する事で、FLASH-ROM、RAM、SCCを割り当てます。
ポート0x30:Bank A(0x0000〜0x1FFF)
ポート0x31:Bank B(0x2000〜0x3FFF)
ポート0x32:Bank C(0x4000〜0x5FFF)
ポート0x33:Bank D(0x6000〜0x7FFF)
ポート0x34:Bank E(0x8000〜0x9FFF)
ポート0x35:Bank F(0xA000〜0xBFFF)
ポート0x36:Bank G(0xC000〜0xDFFF)
ポート0x37:Bank H(0xE000〜0xFFFF)
各ポートに書き込む値と割り当ては以下の通りです。
○FLASH-ROM割り当て
bit7-6=00時、FLASH-ROMを割り当てる。
bit5-4:ROMセット番号(#0〜#3)
bit3-0:ROMバンク番号(#0〜#15)
ROMセットは、Bank A〜Bank Hで同じROMセットにしかアクセスできません。
違う値が設定されたときは、最後にセットしたROMセット番号になります。
○SRAM割り当て
bit7-6=01時、SRAMを割り当てる。
bit5-4:RAMセット番号(#0〜#3) ←変更
bit3-0:RAMバンク番号(#0〜#15)
bit7-6=10時、SRAMを割り当てる(1024Kの場合)。 ←変更
bit5-4:RAMセット番号(#0〜#3) ←変更
bit3-0:RAMバンク番号(#0〜#15)
512K以下の場合は、bit7-6=10時は割り当てがありません。
RAMセットは、ROMセットと同じくBank A〜Bank Hで同じRAMセットにしかアクセスできません。
違う値が設定されたときは、最後にセットしたRAMセット番号になります。
ただし、ROMセット番号とRAMセット番号は別の番号が割り当てられます(独立しています)。
○その他
bit7-6=11時、機能を割り当てない。
旧ベルーガカートリッジの互換動作用のレジスタなどは変更ありません。
参考:戦士のカートリッジmkU技術資料 http://p6ers.net/beluga/
改造した後の写真を挙げておきます。端子の説明が文章だけなので参考にして下さい。

メモリ増設256K(1)

メモリ増設256K(2)

メモリ増設1024K(1)

メモリ増設1024K(2)

メモリ増設1024K(3)
512Kは、1024KのSRAMの上のSRAMがないものになります(間違って写真を消しちゃった...)。
注意)改造に失敗しても当方では責任を持てませんので、自己責任でお願いします。
cpld1024K.zip
詳しくは同梱のドキュメントを参照して下さい。
1.何をするか?
戦士のカートリッジmkU(一般には、ベルーガ新カートリッジ)に搭載されているSRAMは、128Kバイトです。
これを256K/512K/1024Kにする改造をします。
ただし、SCC機能が使えなくなります(それ以外の機能はそのままです)。
2.必要なもの
・戦士のカートリッジmkU
・追加するSRAM
256Kの場合:M68AF127BM55MC6 1個
http://akizukidenshi.com/catalog/g/gI-01083/
512K/1024Kの場合:AS6C4008-55SIN 1個/2個
https://www.marutsu.co.jp/GoodsDetail.jsp?q=AS6C4008-55SIN&salesGoodsCode=11485249&shopNo=3
URLは参考です。コンパチ品なら問題ないと思います。
・初代機以外のP6実機
・XilinxのCLPDを書き込める環境と技術
・半田付けの技術
3.仕様の変更
SRAM:00000〜1FFFF
↓
SRAM:00000〜3FFFF(256K)
SRAM:00000〜7FFFF(512K)
SRAM:00000〜FFFFF(1024K)
I/Oポート0x30〜0x37を設定する事で、FLASH-ROM、RAM、SCCを割り当てます。
ポート0x30:Bank A(0x0000〜0x1FFF)
ポート0x31:Bank B(0x2000〜0x3FFF)
ポート0x32:Bank C(0x4000〜0x5FFF)
ポート0x33:Bank D(0x6000〜0x7FFF)
ポート0x34:Bank E(0x8000〜0x9FFF)
ポート0x35:Bank F(0xA000〜0xBFFF)
ポート0x36:Bank G(0xC000〜0xDFFF)
ポート0x37:Bank H(0xE000〜0xFFFF)
各ポートに書き込む値と割り当ては以下の通りです。
○FLASH-ROM割り当て
bit7-6=00時、FLASH-ROMを割り当てる。
bit5-4:ROMセット番号(#0〜#3)
bit3-0:ROMバンク番号(#0〜#15)
ROMセットは、Bank A〜Bank Hで同じROMセットにしかアクセスできません。
違う値が設定されたときは、最後にセットしたROMセット番号になります。
○SRAM割り当て
bit7-6=01時、SRAMを割り当てる。
bit5-4:RAMセット番号(#0〜#3) ←変更
bit3-0:RAMバンク番号(#0〜#15)
bit7-6=10時、SRAMを割り当てる(1024Kの場合)。 ←変更
bit5-4:RAMセット番号(#0〜#3) ←変更
bit3-0:RAMバンク番号(#0〜#15)
512K以下の場合は、bit7-6=10時は割り当てがありません。
RAMセットは、ROMセットと同じくBank A〜Bank Hで同じRAMセットにしかアクセスできません。
違う値が設定されたときは、最後にセットしたRAMセット番号になります。
ただし、ROMセット番号とRAMセット番号は別の番号が割り当てられます(独立しています)。
○その他
bit7-6=11時、機能を割り当てない。
旧ベルーガカートリッジの互換動作用のレジスタなどは変更ありません。
参考:戦士のカートリッジmkU技術資料 http://p6ers.net/beluga/
改造した後の写真を挙げておきます。端子の説明が文章だけなので参考にして下さい。
メモリ増設256K(1)
メモリ増設256K(2)
メモリ増設1024K(1)
メモリ増設1024K(2)
メモリ増設1024K(3)
512Kは、1024KのSRAMの上のSRAMがないものになります(間違って写真を消しちゃった...)。
2017年06月18日
RGBコンバータ(13)
RGBコンバータ(13)
RGBコンバータの新しいバージョンを2017年6月5日にリリースしていますが、それについて問題が出てきました。
怪しいCycloneIIの基板が2バージョンある事は以前にここで書いていますが、その内の1版の方の回路に問題があります(私は2版しか持っていなかったので分からなかった)。
外付け回路というより、FPGA基板の方に問題があります。
理由がよく分からないのですが、FPGAの26,27,80,81ピンが、0Ω抵抗を介して電源/GNDに接続されています。そのため、該当ピンを使用する事ができなくなっています。
外付けSRAMを使用した、新しいバージョンのRGBコンバータはこのピンを使っているために、このままでは正常に動作しません。
そのため、該当のFPGAボードを使用している方は、0Ω抵抗の除去を行って下さい。
0Ω抵抗を除去する事に問題はないはずです。
また、元に戻したい場合は、0Ω抵抗があった場所をショートするだけで戻ります。
○手順
1)基板裏を確認します。
こちらが1版の基板です。R1、R2、R9、R10に、0と書かれたチップ抵抗があります。

参考までに、これが2版の基板です。R1、R2、R9、R10と書かれた場所に抵抗はありません。

2)4つの0Ω抵抗を全て外します。不要なので廃棄して構いません。
補足
ピンアサインを変更する事もできるのですが、ばくてんさんの方で基板を起こしていたり、バージョンがさらに複数になるなどの問題が出てくるので、上記対応としています。
RGBコンバータの新しいバージョンを2017年6月5日にリリースしていますが、それについて問題が出てきました。
怪しいCycloneIIの基板が2バージョンある事は以前にここで書いていますが、その内の1版の方の回路に問題があります(私は2版しか持っていなかったので分からなかった)。
外付け回路というより、FPGA基板の方に問題があります。
理由がよく分からないのですが、FPGAの26,27,80,81ピンが、0Ω抵抗を介して電源/GNDに接続されています。そのため、該当ピンを使用する事ができなくなっています。
外付けSRAMを使用した、新しいバージョンのRGBコンバータはこのピンを使っているために、このままでは正常に動作しません。
そのため、該当のFPGAボードを使用している方は、0Ω抵抗の除去を行って下さい。
0Ω抵抗を除去する事に問題はないはずです。
また、元に戻したい場合は、0Ω抵抗があった場所をショートするだけで戻ります。
○手順
1)基板裏を確認します。
こちらが1版の基板です。R1、R2、R9、R10に、0と書かれたチップ抵抗があります。
参考までに、これが2版の基板です。R1、R2、R9、R10と書かれた場所に抵抗はありません。
2)4つの0Ω抵抗を全て外します。不要なので廃棄して構いません。
補足
ピンアサインを変更する事もできるのですが、ばくてんさんの方で基板を起こしていたり、バージョンがさらに複数になるなどの問題が出てくるので、上記対応としています。
2017年06月14日
RGBコンバータ(12)
RGBコンバータ(12)
怪しいCycloneIIバージョンの外付けSRAM回路の追加基板を、またまたばくてんさんが作成して下さっていました。
さっそく、入手して組み立ててみました。
実際に追加前の基板(旧RGBコンバータ+SOP変換基板上のSRAM)と、組み立てた追加基板をアップします。
SOP変換基板+旧RGBコンバータ


SOP変換基板と旧RGBコンバータは、抵抗のリード線の切れ端を使って繋いでいます。
横から見たら、すごい事になっています(^^;)
追加のSRAM基板(この状態で配布される?)

旧RGBコンバータに追加のSRAM基板を半田付けした所

半田付けに慣れていないと、うまく付かないかも知れません。
接続部分に、半田を流し込むようにする必要があります(結構、半田が流し込まれる)。
怪しいCycloneIIバージョンの外付けSRAM回路の追加基板を、またまたばくてんさんが作成して下さっていました。
さっそく、入手して組み立ててみました。
実際に追加前の基板(旧RGBコンバータ+SOP変換基板上のSRAM)と、組み立てた追加基板をアップします。
SOP変換基板+旧RGBコンバータ
SOP変換基板と旧RGBコンバータは、抵抗のリード線の切れ端を使って繋いでいます。
横から見たら、すごい事になっています(^^;)
追加のSRAM基板(この状態で配布される?)
旧RGBコンバータに追加のSRAM基板を半田付けした所
半田付けに慣れていないと、うまく付かないかも知れません。
接続部分に、半田を流し込むようにする必要があります(結構、半田が流し込まれる)。
2017年06月05日
RGBコンバータ(11)(リリース)
RGBコンバータ(11)(リリース)
RGBコンバータの新しいバージョンをリリースします。
ただし、外付け回路がさらに必要になります。
怪しいCycloneIIボード1版(640x480):c2_640x480_ver3.zip
怪しいCycloneIIボード1版(1280x1024):c2_1280x1024_1000_ver2.zip
怪しいCycloneIIボード2版(640x480):c2_r_640x480_ver3.zip
怪しいCycloneIIボード2版(1280x1024):c2_r_1280x1024_1000_ver2.zip
○改善点
・ほとんどのモニタで動作するようになったはず。
・上下に小刻みに動いてた問題が解消された。
・1280x1024表示の場合、アスペクト比が本物に近くなった。
怪しいCycloneIIのみのリリースとなります。
使用するモニタの解像度に合わせて、使用して下さい。
追加した CY7C1041 は、高速SRAMです。秋月電子などで購入可能です。
http://akizukidenshi.com/catalog/g/gI-02165/
怪しいCycloneIIボードが、1と2の二つありますが、73ピンのパワーオンリセットの回路のみが違うものがあります。
ボード1:電源投入時、L→H
ボード2:電源投入時、H→L
基板の裏をよーく見るとわかるんですが、面倒な場合はどちらか動く方を使用して下さい。
(リセットが違うので、別バージョンのものを書き込むと、ボタンを押してもLEDが点灯しません)
使用方法などは前回と変わっていません。一応、前回に掲載したものを再掲します。
・使い方
ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。
・怪しいCycloneIIボード版
ボード上のプッシュスイッチを押すと、にじみが出せます。
プッシュスイッチを押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
ボード上の3つのLEDは、以下を示しています。
D2:にじみ処理時、点灯
D4:mk2SR/66SR時、点灯
D5:データ同期時、点灯
RGBコンバータの新しいバージョンをリリースします。
ただし、外付け回路がさらに必要になります。
怪しいCycloneIIボード1版(640x480):c2_640x480_ver3.zip
怪しいCycloneIIボード1版(1280x1024):c2_1280x1024_1000_ver2.zip
怪しいCycloneIIボード2版(640x480):c2_r_640x480_ver3.zip
怪しいCycloneIIボード2版(1280x1024):c2_r_1280x1024_1000_ver2.zip
○改善点
・ほとんどのモニタで動作するようになったはず。
・上下に小刻みに動いてた問題が解消された。
・1280x1024表示の場合、アスペクト比が本物に近くなった。
怪しいCycloneIIのみのリリースとなります。
使用するモニタの解像度に合わせて、使用して下さい。
追加した CY7C1041 は、高速SRAMです。秋月電子などで購入可能です。
http://akizukidenshi.com/catalog/g/gI-02165/
怪しいCycloneIIボードが、1と2の二つありますが、73ピンのパワーオンリセットの回路のみが違うものがあります。
ボード1:電源投入時、L→H
ボード2:電源投入時、H→L
基板の裏をよーく見るとわかるんですが、面倒な場合はどちらか動く方を使用して下さい。
(リセットが違うので、別バージョンのものを書き込むと、ボタンを押してもLEDが点灯しません)
使用方法などは前回と変わっていません。一応、前回に掲載したものを再掲します。
・使い方
ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。
・怪しいCycloneIIボード版
ボード上のプッシュスイッチを押すと、にじみが出せます。
プッシュスイッチを押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
ボード上の3つのLEDは、以下を示しています。
D2:にじみ処理時、点灯
D4:mk2SR/66SR時、点灯
D5:データ同期時、点灯
2017年04月16日
ゲームボーイカートリッジの吸出し
何となく必要に迫られて作りました、その2。
P6のFDDインタフェースを利用した、ゲームボーイ/ゲームボーイカラーのカートリッジの吸出しプログラムです。
文章が使い回しのようなのは気のせいです(^^;)
注意事項:
下記の手順に従っても、最悪の場合Huカードが壊れたり、データが消えたりする可能性があります。
当方では責任を負えませんので、あくまで自己責任で行って下さい。
○必要な環境
1)PC-6001mk2 or PC-6001mk2SR
P6用RS-232Cボード
吸出し用回路(後述)
パソコン側のRS-232Cが読めるハードウエア環境
もしくは
2)PC-6601 or PC-6601SR
6601/6601SR用フロッピーインタフェース(http://sbeach.seesaa.net/article/387861528.html)
P6用RS-232Cボード
吸出し用回路(後述)
パソコン側のRS-232Cが読めるハードウエア環境
吸出し用回路図

○用意
1)吸出し用回路を作成する。面倒ですが...
FDDインタフェースと接続は、出来るだけ短くして、なおかつGNDの線は全部繋いで下さい。
この辺りで手を抜くと、吸い出したデータが化ける事があります(ずいぶん苦労させられました)。
また、FDDインタフェースからは電源が取れないので、他に5V電源を用意する必要があります。
(P6のジョイスティック端子から取るのが一番簡単です)
ゲームボーイのカートリッジを挿すためのコネクタですが、コネクタ単体を入手するのは困難だと思います。
簡単かつ安価なのは、スーパーゲームボーイを改造することだと思います。
私の場合、以下のように加工しました。
1)カートリッジのコネクタ、その他の部品を全てを外す。
2)コネクタに繋がる基板パターンをカットする
3)カートリッジのコネクタを元通りに半田付けする。
4)後の配線を行う。
ちなみに作るとこんな感じになりました。内部配線はかなり汚いです。



基板の上の方にある黒い塊は、74LS374を2つ親子カメにしたものです。配線を少なくなるようにしています。
2)必要なソフトウエアを用意する。
P6用:gbload.zip←これを使用して下さい。
Winパソコン側:
シリアル通信ソフト Acknowrich(http://www.vector.co.jp/soft/dl/win95/prog/se089304.html)
ROMチェッカー ROM Checker(http://mrchecker.web.fc2.com/)
○使い方
1)それぞれを接続する。ただし吸出し回路の電源SWはOFFにしておく。
2)Acknowrichを起動し、該当するシリアルデバイスを開く。
3)P6側の設定に合わせて、ボーレート、パリティなどを設定する。
例えば、うちの環境だと、P6のボーレートが4800bpsなので、
Acknowrichの設定は、307200bps、Parity=EVEN、StopBit=1.0、Length=8にしています。
(307200 = 4800x64)
4)P6をMODE=5、PAGE=3で起動する。
5)CLOAD、RUNする。PC-6601/PC-6601SRの場合は、RUNする前に、OUT &HB1,4 を入力して下さい。
6)まず p を押して、パラメータ設定を行う。
その後は順に、StopBit=1、Parity=even、Length=8、BautRate=x64 を設定する。
7)カートリッジをコネクタに挿す。
8)吸出し回路の電源をONにする
9)Acknowrich のメニューから、編集−ファイル転送を選択し、開いたダイアログの上から4行目の受信オプションにファイル名を入力する。拡張子は〜.gb もしくは〜.gbc にする。
10)受信ボタンを押す。ファイルを生成するフォルダを聞いてくるので、選択するとその後に、受信状態になる。
11)P6側で、A を押して、カートリッジを読み取らせる。カートリッジの情報を表示した後、読み込みます。
12)読み込みが終了したら、Acknowrich のダイアログの やめる を押す。
13)セーブファイルがある場合は、続いて送信するので、同様に編集−ファイル転送を選択し、ファイル名に〜.savとしてファイルを受信する。
14)ファイルが生成されているので、そのファイルをROMチェッカーで検査する。
15)吸出し回路の電源をOFFにしてから、カートリッジを抜く。
最初にエラーが出力される(LOGO Error、Header SUM Error)場合は、電源を切った後、カートリッジを抜き差ししてみてください(もしくは端子周りを掃除する)。
ファイルが生成されるが、ROMチェッカーでエラーになるときは、何度か試して下さい。
カートリッジを抜き差ししていないのに、ファイル内容が異なる時は、電源周りが怪しいです。
○その他のメニュー
1)B キー
内部RAMのデータのみセーブします。
2)C キー
内部RAMのデータを初期化します。具体的には、全RAM領域に0xFFを書き込みます。
3)I キー
カートリッジの情報を表示のみ行います。
P6のFDDインタフェースを利用した、ゲームボーイ/ゲームボーイカラーのカートリッジの吸出しプログラムです。
文章が使い回しのようなのは気のせいです(^^;)
注意事項:
下記の手順に従っても、最悪の場合Huカードが壊れたり、データが消えたりする可能性があります。
当方では責任を負えませんので、あくまで自己責任で行って下さい。
○必要な環境
1)PC-6001mk2 or PC-6001mk2SR
P6用RS-232Cボード
吸出し用回路(後述)
パソコン側のRS-232Cが読めるハードウエア環境
もしくは
2)PC-6601 or PC-6601SR
6601/6601SR用フロッピーインタフェース(http://sbeach.seesaa.net/article/387861528.html)
P6用RS-232Cボード
吸出し用回路(後述)
パソコン側のRS-232Cが読めるハードウエア環境
吸出し用回路図
○用意
1)吸出し用回路を作成する。面倒ですが...
FDDインタフェースと接続は、出来るだけ短くして、なおかつGNDの線は全部繋いで下さい。
この辺りで手を抜くと、吸い出したデータが化ける事があります(ずいぶん苦労させられました)。
また、FDDインタフェースからは電源が取れないので、他に5V電源を用意する必要があります。
(P6のジョイスティック端子から取るのが一番簡単です)
ゲームボーイのカートリッジを挿すためのコネクタですが、コネクタ単体を入手するのは困難だと思います。
簡単かつ安価なのは、スーパーゲームボーイを改造することだと思います。
私の場合、以下のように加工しました。
1)カートリッジのコネクタ、その他の部品を全てを外す。
2)コネクタに繋がる基板パターンをカットする
3)カートリッジのコネクタを元通りに半田付けする。
4)後の配線を行う。
ちなみに作るとこんな感じになりました。内部配線はかなり汚いです。
基板の上の方にある黒い塊は、74LS374を2つ親子カメにしたものです。配線を少なくなるようにしています。
2)必要なソフトウエアを用意する。
P6用:gbload.zip←これを使用して下さい。
Winパソコン側:
シリアル通信ソフト Acknowrich(http://www.vector.co.jp/soft/dl/win95/prog/se089304.html)
ROMチェッカー ROM Checker(http://mrchecker.web.fc2.com/)
○使い方
1)それぞれを接続する。ただし吸出し回路の電源SWはOFFにしておく。
2)Acknowrichを起動し、該当するシリアルデバイスを開く。
3)P6側の設定に合わせて、ボーレート、パリティなどを設定する。
例えば、うちの環境だと、P6のボーレートが4800bpsなので、
Acknowrichの設定は、307200bps、Parity=EVEN、StopBit=1.0、Length=8にしています。
(307200 = 4800x64)
4)P6をMODE=5、PAGE=3で起動する。
5)CLOAD、RUNする。PC-6601/PC-6601SRの場合は、RUNする前に、OUT &HB1,4 を入力して下さい。
6)まず p を押して、パラメータ設定を行う。
その後は順に、StopBit=1、Parity=even、Length=8、BautRate=x64 を設定する。
7)カートリッジをコネクタに挿す。
8)吸出し回路の電源をONにする
9)Acknowrich のメニューから、編集−ファイル転送を選択し、開いたダイアログの上から4行目の受信オプションにファイル名を入力する。拡張子は〜.gb もしくは〜.gbc にする。
10)受信ボタンを押す。ファイルを生成するフォルダを聞いてくるので、選択するとその後に、受信状態になる。
11)P6側で、A を押して、カートリッジを読み取らせる。カートリッジの情報を表示した後、読み込みます。
12)読み込みが終了したら、Acknowrich のダイアログの やめる を押す。
13)セーブファイルがある場合は、続いて送信するので、同様に編集−ファイル転送を選択し、ファイル名に〜.savとしてファイルを受信する。
14)ファイルが生成されているので、そのファイルをROMチェッカーで検査する。
15)吸出し回路の電源をOFFにしてから、カートリッジを抜く。
最初にエラーが出力される(LOGO Error、Header SUM Error)場合は、電源を切った後、カートリッジを抜き差ししてみてください(もしくは端子周りを掃除する)。
ファイルが生成されるが、ROMチェッカーでエラーになるときは、何度か試して下さい。
カートリッジを抜き差ししていないのに、ファイル内容が異なる時は、電源周りが怪しいです。
○その他のメニュー
1)B キー
内部RAMのデータのみセーブします。
2)C キー
内部RAMのデータを初期化します。具体的には、全RAM領域に0xFFを書き込みます。
3)I キー
カートリッジの情報を表示のみ行います。
PCエンジンHuカードの吸出し
何となく必要に迫られて作りました。
P6のFDDインタフェースを利用した、PCエンジンのHuカードの吸出しプログラムです。
注意事項:
下記の手順に従っても、最悪の場合Huカードが壊れたり、データが消えたりする可能性があります。
当方では責任を負えませんので、あくまで自己責任で行って下さい。
○必要な環境
1)PC-6001mk2 or PC-6001mk2SR
P6用RS-232Cボード
吸出し用回路(後述)
パソコン側のRS-232Cが読めるハードウエア環境
もしくは
2)PC-6601 or PC-6601SR
6601/6601SR用フロッピーインタフェース(http://sbeach.seesaa.net/article/387861528.html)
P6用RS-232Cボード
吸出し用回路(後述)
パソコン側のRS-232Cが読めるハードウエア環境
吸出し用回路図

○用意
1)吸出し用回路を作成する。面倒ですが...
FDDインタフェースと接続は、出来るだけ短くして、なおかつGNDの線は全部繋いで下さい。
この辺りで手を抜くと、吸い出したデータが化ける事があります(ずいぶん苦労させられました)。
Huカードのコネクタが一番入手が困難だと思います。私はPCエンジン実機から取りました。
また、FDDインタフェースからは電源が取れないので、他に5V電源を用意する必要があります。
(P6のジョイスティック端子から取るのが一番簡単です)
ちなみに作るとこんな感じになりました。かなり汚いですが。


2)必要なソフトウエアを用意する。
P6用:pceload.zip←これを使用して下さ
い。
Winパソコン側:
シリアル通信ソフト Acknowrich(http://www.vector.co.jp/soft/dl/win95/prog/se089304.html)
ROMチェッカー ROM Checker(http://mrchecker.web.fc2.com/)
○使い方
1)それぞれを接続する。ただし吸出し回路の電源SWはOFFにしておく。
2)Acknowrichを起動し、該当するシリアルデバイスを開く。
3)P6側の設定に合わせて、ボーレート、パリティなどを設定する。
例えば、うちの環境だと、P6のボーレートが4800bpsなので、
Acknowrichの設定は、307200bps、Parity=EVEN、StopBit=1.0、Length=8にしています。
(307200 = 4800x64)
4)P6をMODE=5、PAGE=4で起動する。
5)CLOAD、RUNする。PC-6601/PC-6601SRの場合は、RUNする前に、OUT &HB1,4 を入力して下さい。
6)まず p を押して、パラメータ設定を行う。
その後は順に、StopBit=1、Parity=even、Length=8、BautRate=x64 を設定する。
7)Huカードをコネクタに挿す。
8)吸出し回路の電源をONにする
9)Acknowrich のメニューから、編集ーファイル転送を選択し、開いたダイアログの上から4行目の受信オプションにファイル名を入力する。拡張子は〜.pceにする。
10)受信ボタンを押す。ファイルを生成するフォルダを聞いてくるので、選択するとその後に、受信状態になる。
11)P6側で、A を押して、Huカードを読み取らせる。ファイルサイズなどは自動で算出されます。
12)読み込みが終了したら、Acknowrich のダイアログの やめる を押す。
13)ファイルが生成されているので、そのファイルをROMチェッカーで検査する。
14)吸出し回路の電源をOFFにしてから、Huカードを抜く。
ファイルが生成されるが、ROMチェッカーでエラーになるときは、何度か試して下さい。
Huカードを抜き差ししていないのに、ファイル内容が異なる時は、電源周りが怪しいです。
P6のFDDインタフェースを利用した、PCエンジンのHuカードの吸出しプログラムです。
注意事項:
下記の手順に従っても、最悪の場合Huカードが壊れたり、データが消えたりする可能性があります。
当方では責任を負えませんので、あくまで自己責任で行って下さい。
○必要な環境
1)PC-6001mk2 or PC-6001mk2SR
P6用RS-232Cボード
吸出し用回路(後述)
パソコン側のRS-232Cが読めるハードウエア環境
もしくは
2)PC-6601 or PC-6601SR
6601/6601SR用フロッピーインタフェース(http://sbeach.seesaa.net/article/387861528.html)
P6用RS-232Cボード
吸出し用回路(後述)
パソコン側のRS-232Cが読めるハードウエア環境
吸出し用回路図
○用意
1)吸出し用回路を作成する。面倒ですが...
FDDインタフェースと接続は、出来るだけ短くして、なおかつGNDの線は全部繋いで下さい。
この辺りで手を抜くと、吸い出したデータが化ける事があります(ずいぶん苦労させられました)。
Huカードのコネクタが一番入手が困難だと思います。私はPCエンジン実機から取りました。
また、FDDインタフェースからは電源が取れないので、他に5V電源を用意する必要があります。
(P6のジョイスティック端子から取るのが一番簡単です)
ちなみに作るとこんな感じになりました。かなり汚いですが。
2)必要なソフトウエアを用意する。
P6用:pceload.zip←これを使用して下さ
い。
Winパソコン側:
シリアル通信ソフト Acknowrich(http://www.vector.co.jp/soft/dl/win95/prog/se089304.html)
ROMチェッカー ROM Checker(http://mrchecker.web.fc2.com/)
○使い方
1)それぞれを接続する。ただし吸出し回路の電源SWはOFFにしておく。
2)Acknowrichを起動し、該当するシリアルデバイスを開く。
3)P6側の設定に合わせて、ボーレート、パリティなどを設定する。
例えば、うちの環境だと、P6のボーレートが4800bpsなので、
Acknowrichの設定は、307200bps、Parity=EVEN、StopBit=1.0、Length=8にしています。
(307200 = 4800x64)
4)P6をMODE=5、PAGE=4で起動する。
5)CLOAD、RUNする。PC-6601/PC-6601SRの場合は、RUNする前に、OUT &HB1,4 を入力して下さい。
6)まず p を押して、パラメータ設定を行う。
その後は順に、StopBit=1、Parity=even、Length=8、BautRate=x64 を設定する。
7)Huカードをコネクタに挿す。
8)吸出し回路の電源をONにする
9)Acknowrich のメニューから、編集ーファイル転送を選択し、開いたダイアログの上から4行目の受信オプションにファイル名を入力する。拡張子は〜.pceにする。
10)受信ボタンを押す。ファイルを生成するフォルダを聞いてくるので、選択するとその後に、受信状態になる。
11)P6側で、A を押して、Huカードを読み取らせる。ファイルサイズなどは自動で算出されます。
12)読み込みが終了したら、Acknowrich のダイアログの やめる を押す。
13)ファイルが生成されているので、そのファイルをROMチェッカーで検査する。
14)吸出し回路の電源をOFFにしてから、Huカードを抜く。
ファイルが生成されるが、ROMチェッカーでエラーになるときは、何度か試して下さい。
Huカードを抜き差ししていないのに、ファイル内容が異なる時は、電源周りが怪しいです。
2017年04月09日
メガドラのパッドをP6で
以前に書いたかもしれませんが...
P6のジョイスティックは、現在では入手が困難だと思います。
一から作るのもいいんですが、他機種のパッドを改造するのが一番手っ取り早そうです。
入手性がよさそうなのはメガドライブ/マークV系のパッドなので、改造例を以下に記します。
まず、マークV付属のパッドです。

マークVのパッドをP6で使う場合は、右ボタンを押さなければ1ボタンとして使用可能です。
8ピンはP6からの出力のため、最悪"H"を出力している可能性があるため、使用するなら9ピンに接続している線を切る方がいいでしょう。
右ボタンの信号を7ピンに接続できれば2ボタンとして使用する事ができるのですが、付属のパッドでは7ピン自体がないため、コードを変更する必要があります。
次に、メガドライブ付属のパッドです。

メガドライブの3ボタンのパッドをP6で使う場合は、以下を変更します。
変更前→変更後
7ピン→8ピン (パッドの74HC157の1ピンを、P6の8ピンに接続)
8ピン→9ピン (パッドのGNDを、P6の9ピンに接続)
9ピン→7ピン (パッドの74HC157の12ピンを、P6の7ピンに接続)
この変更では、ABCの3ボタン+STARTの4ボタンが使えますが、対応するソフトが必要です。
また、通常の2ボタンとしては使えません。
通常の2ボタンとして使うには、以下のように変更します。
変更前→変更後
7ピン→5ピン (パッドの74HC157の1ピンを、P6の5ピン(VCC)に接続)
8ピン→9ピン (パッドのGNDを、P6の9ピンに接続)
9ピン→7ピン (パッドの74HC157の12ピンを、P6の7ピンに接続)
この場合、Bがトリガ1、Cがトリガ2になります。AとSTARTは読み取りが不可能になります。
最後に、メガドライブの6ボタンのパッドです。これは持っていなかったので、新しく入手しました。中古を買おうと思ったんですが、(パチモンという)コンパチ品が新品で売っていたので、それを購入しました。
以下の写真は、入手したパッドです。

最近出回っているようで、駿河屋で売っていました。
http://www.suruga-ya.jp/product/detail/164000919000
中の基板の写真です。

基板上にベアチップが載っているために、回路図は書いていません。
P6で使用するための改造ですが、3ボタンと同じ改造で動作します。
変更前→変更後
7ピン→8ピン
8ピン→9ピン
9ピン→7ピン
分かりにくいので、図に書きましたが...これでも分かりにくいかも。

右図の 821964357 は、基板上のパッド番号の並びです。
通常の2ボタンとして使う場合も、3ボタンと同じように変更します。
変更前→変更後
7ピン→5ピン
8ピン→9ピン
9ピン→7ピン
この場合、Bがトリガ1、Cがトリガ2になります。それ以外のボタンは読み取りが不可能になります。
6ボタンの読み取りをするプログラムを書きました。表示関連が手抜きですが。
padmd.zip
読み取り方ですが、以下のページを参考にしました。
https://applause.elfmimi.jp/md6bpad.html
P6のジョイスティックは、現在では入手が困難だと思います。
一から作るのもいいんですが、他機種のパッドを改造するのが一番手っ取り早そうです。
入手性がよさそうなのはメガドライブ/マークV系のパッドなので、改造例を以下に記します。
まず、マークV付属のパッドです。
マークVのパッドをP6で使う場合は、右ボタンを押さなければ1ボタンとして使用可能です。
8ピンはP6からの出力のため、最悪"H"を出力している可能性があるため、使用するなら9ピンに接続している線を切る方がいいでしょう。
右ボタンの信号を7ピンに接続できれば2ボタンとして使用する事ができるのですが、付属のパッドでは7ピン自体がないため、コードを変更する必要があります。
次に、メガドライブ付属のパッドです。
メガドライブの3ボタンのパッドをP6で使う場合は、以下を変更します。
変更前→変更後
7ピン→8ピン (パッドの74HC157の1ピンを、P6の8ピンに接続)
8ピン→9ピン (パッドのGNDを、P6の9ピンに接続)
9ピン→7ピン (パッドの74HC157の12ピンを、P6の7ピンに接続)
この変更では、ABCの3ボタン+STARTの4ボタンが使えますが、対応するソフトが必要です。
また、通常の2ボタンとしては使えません。
通常の2ボタンとして使うには、以下のように変更します。
変更前→変更後
7ピン→5ピン (パッドの74HC157の1ピンを、P6の5ピン(VCC)に接続)
8ピン→9ピン (パッドのGNDを、P6の9ピンに接続)
9ピン→7ピン (パッドの74HC157の12ピンを、P6の7ピンに接続)
この場合、Bがトリガ1、Cがトリガ2になります。AとSTARTは読み取りが不可能になります。
最後に、メガドライブの6ボタンのパッドです。これは持っていなかったので、新しく入手しました。中古を買おうと思ったんですが、(パチモンという)コンパチ品が新品で売っていたので、それを購入しました。
以下の写真は、入手したパッドです。
最近出回っているようで、駿河屋で売っていました。
http://www.suruga-ya.jp/product/detail/164000919000
中の基板の写真です。
基板上にベアチップが載っているために、回路図は書いていません。
P6で使用するための改造ですが、3ボタンと同じ改造で動作します。
変更前→変更後
7ピン→8ピン
8ピン→9ピン
9ピン→7ピン
分かりにくいので、図に書きましたが...これでも分かりにくいかも。
右図の 821964357 は、基板上のパッド番号の並びです。
通常の2ボタンとして使う場合も、3ボタンと同じように変更します。
変更前→変更後
7ピン→5ピン
8ピン→9ピン
9ピン→7ピン
この場合、Bがトリガ1、Cがトリガ2になります。それ以外のボタンは読み取りが不可能になります。
6ボタンの読み取りをするプログラムを書きました。表示関連が手抜きですが。
padmd.zip
読み取り方ですが、以下のページを参考にしました。
https://applause.elfmimi.jp/md6bpad.html
2017年04月01日
RGBコンバータ(10)(リリース)
RGBコンバータ(10)(リリース)
RGBコンバータの新しいバージョンをリリースします。
怪しいCycloneIIボード1版(640x480):c2_640x480_ver2.zip
怪しいCycloneIIボード1版(1280x1024):c2_1280x1024_800_ver1.zip
怪しいCycloneIIボード2版(640x480):c2_r_640x480_ver2.zip
怪しいCycloneIIボード2版(1280x1024):c2_r_1280x1024_800_ver1.zip
DE0版(640x480):DE0_640x480_ver2.zip
DE0版(1280x1024):DE0_1280x1024_1000_ver1.zip
DesignWare 2003年10月号付録Cycloneボード版(1280x1024):c1_1280x1024_800_ver1.zip
使用するボード、モニタの解像度に合わせて、使用して下さい。
搭載しているCycloneの内蔵メモリの容量によって、実現できる解像度が異なります。
怪しいCycloneIIボードが、1と2の二つありますが、73ピンのパワーオンリセットの回路のみが違うものがあります。
ボード1:電源投入時、L→H
ボード2:電源投入時、H→L
基板の裏をよーく見るとわかるんですが、面倒な場合はどちらか動く方を使用して下さい。
(リセットが違うので、別バージョンのものを書き込むと、ボタンを押してもLEDが点灯しません)
使用方法などは前回と変わっていません。一応、前回に掲載したものを再掲します。
・使い方
ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。
・怪しいCycloneIIボード版
ボード上のプッシュスイッチを押すと、にじみが出せます。
プッシュスイッチを押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
ボード上の3つのLEDは、以下を示しています。
D2:にじみ処理時、点灯
D4:mk2SR/66SR時、点灯
D5:データ同期時、点灯
・DE0版
ボード上のBUTTON2を押すと、にじみが出せます。
BUTTON2を押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
BUTTON0を押すと、リセットします。
ボード上のLEDは、以下を示しています。
LED0:にじみ処理時、点灯
LED1:mk2SR/66SR時、点灯
LED2:PLLロック時、点灯(普通は常時点灯)
LED3:P6からのクロック入力時、点灯
LED4:P6からのデータ入力時、点灯
LED5:データ同期時、点灯(320x200同期)
LED6:データ同期時、点灯(256x192同期)
ボード上の7SEGは、以下を示します。
左2桁:クロックに対するデータの遅延値
右2桁:クロックに対するHSYNCNの遅延値
下位桁は、1〜7です。単位は10nsです。
RGBコンバータの新しいバージョンをリリースします。
怪しいCycloneIIボード1版(640x480):c2_640x480_ver2.zip
怪しいCycloneIIボード1版(1280x1024):c2_1280x1024_800_ver1.zip
怪しいCycloneIIボード2版(640x480):c2_r_640x480_ver2.zip
怪しいCycloneIIボード2版(1280x1024):c2_r_1280x1024_800_ver1.zip
DE0版(640x480):DE0_640x480_ver2.zip
DE0版(1280x1024):DE0_1280x1024_1000_ver1.zip
DesignWare 2003年10月号付録Cycloneボード版(1280x1024):c1_1280x1024_800_ver1.zip
使用するボード、モニタの解像度に合わせて、使用して下さい。
搭載しているCycloneの内蔵メモリの容量によって、実現できる解像度が異なります。
怪しいCycloneIIボードが、1と2の二つありますが、73ピンのパワーオンリセットの回路のみが違うものがあります。
ボード1:電源投入時、L→H
ボード2:電源投入時、H→L
基板の裏をよーく見るとわかるんですが、面倒な場合はどちらか動く方を使用して下さい。
(リセットが違うので、別バージョンのものを書き込むと、ボタンを押してもLEDが点灯しません)
使用方法などは前回と変わっていません。一応、前回に掲載したものを再掲します。
・使い方
ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。
・怪しいCycloneIIボード版
ボード上のプッシュスイッチを押すと、にじみが出せます。
プッシュスイッチを押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
ボード上の3つのLEDは、以下を示しています。
D2:にじみ処理時、点灯
D4:mk2SR/66SR時、点灯
D5:データ同期時、点灯
・DE0版
ボード上のBUTTON2を押すと、にじみが出せます。
BUTTON2を押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
BUTTON0を押すと、リセットします。
ボード上のLEDは、以下を示しています。
LED0:にじみ処理時、点灯
LED1:mk2SR/66SR時、点灯
LED2:PLLロック時、点灯(普通は常時点灯)
LED3:P6からのクロック入力時、点灯
LED4:P6からのデータ入力時、点灯
LED5:データ同期時、点灯(320x200同期)
LED6:データ同期時、点灯(256x192同期)
ボード上の7SEGは、以下を示します。
左2桁:クロックに対するデータの遅延値
右2桁:クロックに対するHSYNCNの遅延値
下位桁は、1〜7です。単位は10nsです。
2017年03月28日
RGBコンバータ(9)
RGBコンバータ(9)
一つ前の書き込みの『一部のモニタでは動作しません』に関してですが、改良を加えている最中です。
多分、大抵のモニタで動作するように出来そうですが、出来るまでにもうちょっと時間が掛かりそうです。
しばしお待ちを。
一つ前の書き込みの『一部のモニタでは動作しません』に関してですが、改良を加えている最中です。
多分、大抵のモニタで動作するように出来そうですが、出来るまでにもうちょっと時間が掛かりそうです。
しばしお待ちを。
2017年03月24日
RGBコンバータ(8)
RGBコンバータ(8)
ばくてんさんが基板配布を行うという事で、注意点を書いておきます。
1.今のバージョンでは、mk2/66/mk2SR/66SRの画像を、VGA(640x200)のモニタに出力するものですが、一部のモニタでは動作しません。というか動作するモニタの方が少ないかもしれません。
動作するモニタを増やそうとは思っていますが...
2.配布基板以外に、FPGA基板、FPGA書き込み用のライタを入手する必要があります。
3.FPGA基板にユーザ自身でデータを書き込む必要があります。
FPGAへの書き込み手順は、後ほどこのブログに掲載予定です。
ばくてんさんが基板配布を行うという事で、注意点を書いておきます。
1.今のバージョンでは、mk2/66/mk2SR/66SRの画像を、VGA(640x200)のモニタに出力するものですが、一部のモニタでは動作しません。というか動作するモニタの方が少ないかもしれません。
動作するモニタを増やそうとは思っていますが...
2.配布基板以外に、FPGA基板、FPGA書き込み用のライタを入手する必要があります。
3.FPGA基板にユーザ自身でデータを書き込む必要があります。
FPGAへの書き込み手順は、後ほどこのブログに掲載予定です。
RGBコンバータ(7)
RGBコンバータ(7)
怪しいCycloneIIバージョンに載せる基板を、ばくてんさんが作成して下さっていました。
さっそく、配布前の物を入手して組み立ててみました。
(チップ部品の半田付けが結構大変です)
実際に組み立てた基板と、動作させた写真をアップします。
組み立て後


mk2動作写真(1)

mk2動作写真(2)色ずれなし

mk2動作写真(3)色ずれ赤/青

mk2動作写真(4)色ずれ桃/緑

mk2SR動作写真(1)

mk2SR動作写真(2)320x200x16色

mk2SR動作写真(3)320x200x16色

mk2SR動作写真(4)640x200x4色

mk2SR動作写真(5)640x200x4色

ついでに、CycloneI版(DesignWare 2003年10月号付録)の基板写真をアップします。


怪しいCycloneIIバージョンに載せる基板を、ばくてんさんが作成して下さっていました。
さっそく、配布前の物を入手して組み立ててみました。
(チップ部品の半田付けが結構大変です)
実際に組み立てた基板と、動作させた写真をアップします。
組み立て後
mk2動作写真(1)
mk2動作写真(2)色ずれなし
mk2動作写真(3)色ずれ赤/青
mk2動作写真(4)色ずれ桃/緑
mk2SR動作写真(1)
mk2SR動作写真(2)320x200x16色
mk2SR動作写真(3)320x200x16色
mk2SR動作写真(4)640x200x4色
mk2SR動作写真(5)640x200x4色
ついでに、CycloneI版(DesignWare 2003年10月号付録)の基板写真をアップします。
2016年11月23日
RGBコンバータ(6)
RGBコンバータの件
動作しないモニタがありました。
・DELL E197FP
・SHARP AQUOS LC-22K5
AQUOSの方は、映るんですが画面が小刻みに上下します。
理由も大体分かっていて(VSYNCをたまに間引いているから)、直せるかもしれません。
問題はDELLのモニタの方で、31KHz×60Hzと認識してくれません。
原因は全くわかっていません。対処しないかも...
上記の結果なので、他のモニタでも同様の症状が出る可能性があります。
動作しないモニタがありました。
・DELL E197FP
・SHARP AQUOS LC-22K5
AQUOSの方は、映るんですが画面が小刻みに上下します。
理由も大体分かっていて(VSYNCをたまに間引いているから)、直せるかもしれません。
問題はDELLのモニタの方で、31KHz×60Hzと認識してくれません。
原因は全くわかっていません。対処しないかも...
上記の結果なので、他のモニタでも同様の症状が出る可能性があります。
RGBコンバータ(5)(リリースc1)
RGBコンバータの件
DesignWare 2003年10月号付録Cycloneボード版をリリースします。
ver4_c1.zip
多分、マルツで売られているボードでも動作すると思います。
付録のボードの場合、コンフィグ用ROMが付いていないので、入手する必要があります。
EPCS1 が必要なんですが、EPCS4以上でも代用が効きます。
さらに、EPCSシリーズの代わりに、STマイクロのM25Pシリーズが使えます。
http://www.hdl.co.jp/altera/epcs_m25p/index.html
EPCS4相当が、M25P40になります。
アマゾンで売っていましたので購入しました。5個セットでしたが...
https://www.amazon.co.jp/MICRON-M25P40-VMN6TPB-5%E5%80%8B%E3%82%BB%E3%83%83%E3%83%88/dp/B01B1E1C1O/ref=sr_1_1?
ie=UTF8&qid=1479903193&sr=8-1&keywords=M25P40
円高のせいか、一ヶ月前は972円だったのが、今日は1125円です。
DesignWare 2003年10月号付録Cycloneボード版をリリースします。
ver4_c1.zip
多分、マルツで売られているボードでも動作すると思います。
付録のボードの場合、コンフィグ用ROMが付いていないので、入手する必要があります。
EPCS1 が必要なんですが、EPCS4以上でも代用が効きます。
さらに、EPCSシリーズの代わりに、STマイクロのM25Pシリーズが使えます。
http://www.hdl.co.jp/altera/epcs_m25p/index.html
EPCS4相当が、M25P40になります。
アマゾンで売っていましたので購入しました。5個セットでしたが...
https://www.amazon.co.jp/MICRON-M25P40-VMN6TPB-5%E5%80%8B%E3%82%BB%E3%83%83%E3%83%88/dp/B01B1E1C1O/ref=sr_1_1?
ie=UTF8&qid=1479903193&sr=8-1&keywords=M25P40
円高のせいか、一ヶ月前は972円だったのが、今日は1125円です。
FPGAボードとUSB Blasterの話(3)
怪しいボードの追記。
CycloneIIボード
https://www.amazon.co.jp/gp/product/B016K4XE3E/ref=pd_sim_sbs_23_1?ie=UTF8&psc=1&refRID=7EAYPVFEJ0QA1E201SZA
安い方が売り切れてるようです。
会社が中国ですが、ほぼ同じボードがあります。
https://www.amazon.co.jp/LILLY%E3%82%A8%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AD%E3%83%8B%E3%82%AF%E3%82%B9-ALTERA-FPGA-Cyclone-II%E3%81%AEEP2C5T144%E6%9C%80%E5%B0%8F%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E9%96%8B%E7%99%BA%E3%83%9C%E3%83%BC%E3%83%89/dp/B01A8B0Q2W/ref=pd_sim_sbs_147_2?_encoding=UTF8&psc=1&refRID=BFSVHF7DH79TCTANP52M
ほぼ、同じというのは、写真を見る限り、どうも73ピンの動作が違いそうです。
PWRONRSTN(73ピン):パワーオンリセット。電源投入時に、L→H のようです。
回路図と同じようですし、私が購入した売り切れている方が、コピー品じゃないかと思います。
CycloneIIボード
https://www.amazon.co.jp/gp/product/B016K4XE3E/ref=pd_sim_sbs_23_1?ie=UTF8&psc=1&refRID=7EAYPVFEJ0QA1E201SZA
安い方が売り切れてるようです。
会社が中国ですが、ほぼ同じボードがあります。
https://www.amazon.co.jp/LILLY%E3%82%A8%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AD%E3%83%8B%E3%82%AF%E3%82%B9-ALTERA-FPGA-Cyclone-II%E3%81%AEEP2C5T144%E6%9C%80%E5%B0%8F%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E9%96%8B%E7%99%BA%E3%83%9C%E3%83%BC%E3%83%89/dp/B01A8B0Q2W/ref=pd_sim_sbs_147_2?_encoding=UTF8&psc=1&refRID=BFSVHF7DH79TCTANP52M
ほぼ、同じというのは、写真を見る限り、どうも73ピンの動作が違いそうです。
PWRONRSTN(73ピン):パワーオンリセット。電源投入時に、L→H のようです。
回路図と同じようですし、私が購入した売り切れている方が、コピー品じゃないかと思います。
2016年11月22日
RGBコンバータ(4)(リリース)
RGBコンバータの件
やっと完成しましたので、リリースします。
DE0版:ver4_DE0.zip
怪しいCycloneIIボード版:ver4_c2.zip
回路図も同梱していますので、そちらを参考にして下さい。
DE0版では、2種類(74LCX245を使っているのと、使っていないの)あります。
多分、両方動作すると思うんですが、74LCX245を使っていないバージョンは試してません(^^;)
74LCX245ですが、5V→3.3Vへの変換用なので、トレランス機能を持っているものなら何でもいいかと思います(ex.74VHC245)
・使い方
ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。
・怪しいCycloneIIボード版
ボード上のプッシュスイッチを押すと、にじみが出せます。
プッシュスイッチを押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
ボード上の3つのLEDは、以下を示しています。
D2:にじみ処理時、点灯
D4:mk2SR/66SR時、点灯
D5:データ同期時、点灯
・DE0版
ボード上のBUTTON2を押すと、にじみが出せます。
BUTTON2を押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
BUTTON0を押すと、リセットします。
ボード上のLEDは、以下を示しています。
LED0:にじみ処理時、点灯
LED1:mk2SR/66SR時、点灯
LED2:PLLロック時、点灯(普通は常時点灯)
LED3:P6からのクロック入力時、点灯
LED4:P6からのデータ入力時、点灯
LED5:データ同期時、点灯(320x200同期)
LED6:データ同期時、点灯(256x192同期)
ボード上の7SEGは、以下を示します。
左2桁:クロックに対するデータの遅延値
右2桁:クロックに対するHSYNCNの遅延値
下位桁は、1〜7です。単位は10nsです。
やっと完成しましたので、リリースします。
DE0版:ver4_DE0.zip
怪しいCycloneIIボード版:ver4_c2.zip
回路図も同梱していますので、そちらを参考にして下さい。
DE0版では、2種類(74LCX245を使っているのと、使っていないの)あります。
多分、両方動作すると思うんですが、74LCX245を使っていないバージョンは試してません(^^;)
74LCX245ですが、5V→3.3Vへの変換用なので、トレランス機能を持っているものなら何でもいいかと思います(ex.74VHC245)
・使い方
ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。
・怪しいCycloneIIボード版
ボード上のプッシュスイッチを押すと、にじみが出せます。
プッシュスイッチを押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
ボード上の3つのLEDは、以下を示しています。
D2:にじみ処理時、点灯
D4:mk2SR/66SR時、点灯
D5:データ同期時、点灯
・DE0版
ボード上のBUTTON2を押すと、にじみが出せます。
BUTTON2を押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
BUTTON0を押すと、リセットします。
ボード上のLEDは、以下を示しています。
LED0:にじみ処理時、点灯
LED1:mk2SR/66SR時、点灯
LED2:PLLロック時、点灯(普通は常時点灯)
LED3:P6からのクロック入力時、点灯
LED4:P6からのデータ入力時、点灯
LED5:データ同期時、点灯(320x200同期)
LED6:データ同期時、点灯(256x192同期)
ボード上の7SEGは、以下を示します。
左2桁:クロックに対するデータの遅延値
右2桁:クロックに対するHSYNCNの遅延値
下位桁は、1〜7です。単位は10nsです。
2016年11月15日
RGBコンバータ(3)
RGBコンバータの件
P6からクロックを貰えれば簡単かと思いますが、mk2SR/66SRの方は一筋縄では行かなかった...
RGB出力は特殊かも知れませんが、通常データとクロックを両方出力しているような場合は、その先の回路ではそのクロックでデータを叩けばちゃんと動く回路が出来ます。mk2/66の場合だと、ちゃんとそうなっています。
問題のmk2SR/66SRですが...
1)データ出力が14MHzで叩かれたデータなのに、クロック出力が3.58MHzである(14MHzの4分周)。
2)3.58MHzクロック出力とデータの位相関係が、リセット押下するごとに変わる。
3)3.58MHzクロック出力とデータの遅延値が、電源投入後から徐々に変化する。
1)や2)はまだ回避方法があるのですが、最悪なのが3)です。
具体的には、3.58MHzクロック出力を基準にしたHSYNC遅延値が、電源投入してからずるずると変わっていきます。実測値では、大体30nsほど減少します。14MHzが70ns程度なので結構ひどい数値です。
画像信号のRGBHはほとんど変化しないので、HSYNCを生成している回路に問題がありそうです。
回路図を見ると、変なLRCが途中に入っているので、この辺りが悪さをしているんじゃないかと思います。
mk2SR/66SR は、カスタムLSIや基板設計が、結構お粗末やなー、と思っていたんですが、また一つ悪いものを見つけた感じです。
P6からクロックを貰えれば簡単かと思いますが、mk2SR/66SRの方は一筋縄では行かなかった...
RGB出力は特殊かも知れませんが、通常データとクロックを両方出力しているような場合は、その先の回路ではそのクロックでデータを叩けばちゃんと動く回路が出来ます。mk2/66の場合だと、ちゃんとそうなっています。
問題のmk2SR/66SRですが...
1)データ出力が14MHzで叩かれたデータなのに、クロック出力が3.58MHzである(14MHzの4分周)。
2)3.58MHzクロック出力とデータの位相関係が、リセット押下するごとに変わる。
3)3.58MHzクロック出力とデータの遅延値が、電源投入後から徐々に変化する。
1)や2)はまだ回避方法があるのですが、最悪なのが3)です。
具体的には、3.58MHzクロック出力を基準にしたHSYNC遅延値が、電源投入してからずるずると変わっていきます。実測値では、大体30nsほど減少します。14MHzが70ns程度なので結構ひどい数値です。
画像信号のRGBHはほとんど変化しないので、HSYNCを生成している回路に問題がありそうです。
回路図を見ると、変なLRCが途中に入っているので、この辺りが悪さをしているんじゃないかと思います。
mk2SR/66SR は、カスタムLSIや基板設計が、結構お粗末やなー、と思っていたんですが、また一つ悪いものを見つけた感じです。
2016年11月14日
RGBコンバータ(2)
RGBコンバータの件
HSYNCからクロックを再生していたんですが...
よく考えたら、P6から直接クロックを入力して、それを100MHzでサンプリングするのが一番簡単な方法だという事に気付きました。
とりあえずそのバージョンを適当に作って動かしていますが、安定して動作しています。
ただ、今の回路だと、調整用のDIPSWが必要になる(7PIN程度)のが気に入らないんですねぇ...
クロックからの遅延値が、P6の個体や、RGBコンバータ側の回路などで異なるため、それを吸収するために調整が必要なのは仕方ないんですが、何とか調整を自動化して、外部からは最小限にしたい所です。
回路の実装は、DE0版と、怪しいCycloneII版で行っています。デザインウエーブ付録のCyclone版も作るつもりです。
HSYNCからクロックを再生していたんですが...
よく考えたら、P6から直接クロックを入力して、それを100MHzでサンプリングするのが一番簡単な方法だという事に気付きました。
とりあえずそのバージョンを適当に作って動かしていますが、安定して動作しています。
ただ、今の回路だと、調整用のDIPSWが必要になる(7PIN程度)のが気に入らないんですねぇ...
クロックからの遅延値が、P6の個体や、RGBコンバータ側の回路などで異なるため、それを吸収するために調整が必要なのは仕方ないんですが、何とか調整を自動化して、外部からは最小限にしたい所です。
回路の実装は、DE0版と、怪しいCycloneII版で行っています。デザインウエーブ付録のCyclone版も作るつもりです。
FPGAボードとUSB Blasterの話(2)
怪しいボードと怪しいUSB Blasterの追記です。
CycloneIIボード
https://www.amazon.co.jp/gp/product/B016K4XE3E/ref=pd_sim_sbs_23_1?ie=UTF8&psc=1&refRID=7EAYPVFEJ0QA1E201SZA
USB Blaster
https://www.amazon.co.jp/%E6%82%9F%E7%A9%BA-ALTERA-USB-Blaster%E4%BA%92%E6%8F%9BJTag%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB-%E4%B8%A6%E8%A1%8C%E8%BC%B8%E5%85%A5%E5%93%81/dp/B00VUWNN74/ref=sr_1_1?ie=UTF8&qid=1478411751&sr=8-1&keywords=USB+Blaster
信号説明が一つ抜けていました。
PWRONRST(73ピン):パワーオンリセット。電源投入時に、H→Lになります。
前回掲載したテスト用回路では、PWRONRSTN となっていますが、PWRONRST が正解です。
https://www.openimpulse.com/blog/products-page/product-category/ep2c5t144-altera-cyclone-ii-fpga-development-board/
ここの回路図を参考にしたのですが、この回路図が間違っています。
73ピンに、抵抗を介して3.3V、コンデンサを介してGNDとなっていますが、実際の基板は抵抗を介してGND、コンデンサを介して3.3Vです。
USB Blasterの方は、モノ自体は普通に動作するのですが、付属のUSBケーブルがイマイチでした。USB Blasterと繋がる方のUSBコネクタとの接触が悪く、認識しない事がありました。
DE0-nanoに付属していた、USBケーブルでは全く問題が発生していません。
CycloneIIボード
https://www.amazon.co.jp/gp/product/B016K4XE3E/ref=pd_sim_sbs_23_1?ie=UTF8&psc=1&refRID=7EAYPVFEJ0QA1E201SZA
USB Blaster
https://www.amazon.co.jp/%E6%82%9F%E7%A9%BA-ALTERA-USB-Blaster%E4%BA%92%E6%8F%9BJTag%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB-%E4%B8%A6%E8%A1%8C%E8%BC%B8%E5%85%A5%E5%93%81/dp/B00VUWNN74/ref=sr_1_1?ie=UTF8&qid=1478411751&sr=8-1&keywords=USB+Blaster
信号説明が一つ抜けていました。
PWRONRST(73ピン):パワーオンリセット。電源投入時に、H→Lになります。
前回掲載したテスト用回路では、PWRONRSTN となっていますが、PWRONRST が正解です。
https://www.openimpulse.com/blog/products-page/product-category/ep2c5t144-altera-cyclone-ii-fpga-development-board/
ここの回路図を参考にしたのですが、この回路図が間違っています。
73ピンに、抵抗を介して3.3V、コンデンサを介してGNDとなっていますが、実際の基板は抵抗を介してGND、コンデンサを介して3.3Vです。
USB Blasterの方は、モノ自体は普通に動作するのですが、付属のUSBケーブルがイマイチでした。USB Blasterと繋がる方のUSBコネクタとの接触が悪く、認識しない事がありました。
DE0-nanoに付属していた、USBケーブルでは全く問題が発生していません。
2016年11月12日
RGBコンバータ(1)
RGBコンバータの件
ほとんど設計は完了して、実際に使っているのですがどうも不安定です。
いろいろと作り方はあると思うのですが、今回は以下のように作っています。
1)P6からはクロックを貰わない
2)P6からのHSYNCパルスを元に、14.318MHzクロックを再生する。
→基板クロックから内部100MHzを作り、デジタルPLLっぽい事をする。
3)出力は、VGAの640x480に対応する。出力クロックは、100MHzの1/4の25MHz。
4)横方向はそのまま出力。縦方向は、P6のデータ1ラインに対して、VGAのデータ2ラインを出力する。
5)4)の実現のため、4ライン分のDPRAMを設ける。
6)P6からの入力の方がVGA出力よりも速いので、VGAへのVSYNC出力を変化させる。通常は524ラインで、たまに523ラインで出力する(規格は525ライン)。
上記の方式で設計すると、mk2では普通に動くのですが、mk2SRでは画像にノイズが乗りました。
2)のクロック再生がうまく動作していなくて、データをたまに取りこぼしています。
調べてみると、mk2SRの場合、内部14.318MHzに対して、HSYNCの出力の遅延値が一定ではなく、20ns以上もずれる事がある事が判明しました(VSYNC=Lを出力する時に大きくずれる)。
結局、HSYNC×VSYNC の周期、つまり1画面分を元に、デジタルPLLっぽい事をすると、安定して動作するようになりました。
これでリリースしようとしていたのですが...長時間使用していると、最初に合わせた位置からずれてきます。
多分、熱などの影響で、遅延値が変わるためだと思われます。
このままでも使用できなくはないのですが、やはり自動追従した方がよさそうなので、リリースはもうちょっと後になります。
年内に終わればいいな...
ほとんど設計は完了して、実際に使っているのですがどうも不安定です。
いろいろと作り方はあると思うのですが、今回は以下のように作っています。
1)P6からはクロックを貰わない
2)P6からのHSYNCパルスを元に、14.318MHzクロックを再生する。
→基板クロックから内部100MHzを作り、デジタルPLLっぽい事をする。
3)出力は、VGAの640x480に対応する。出力クロックは、100MHzの1/4の25MHz。
4)横方向はそのまま出力。縦方向は、P6のデータ1ラインに対して、VGAのデータ2ラインを出力する。
5)4)の実現のため、4ライン分のDPRAMを設ける。
6)P6からの入力の方がVGA出力よりも速いので、VGAへのVSYNC出力を変化させる。通常は524ラインで、たまに523ラインで出力する(規格は525ライン)。
上記の方式で設計すると、mk2では普通に動くのですが、mk2SRでは画像にノイズが乗りました。
2)のクロック再生がうまく動作していなくて、データをたまに取りこぼしています。
調べてみると、mk2SRの場合、内部14.318MHzに対して、HSYNCの出力の遅延値が一定ではなく、20ns以上もずれる事がある事が判明しました(VSYNC=Lを出力する時に大きくずれる)。
結局、HSYNC×VSYNC の周期、つまり1画面分を元に、デジタルPLLっぽい事をすると、安定して動作するようになりました。
これでリリースしようとしていたのですが...長時間使用していると、最初に合わせた位置からずれてきます。
多分、熱などの影響で、遅延値が変わるためだと思われます。
このままでも使用できなくはないのですが、やはり自動追従した方がよさそうなので、リリースはもうちょっと後になります。
年内に終わればいいな...
2016年11月06日
FPGAボードとUSB Blasterの話
前回紹介した、怪しいボードの話の続きです。
https://www.amazon.co.jp/gp/product/B016K4XE3E/ref=pd_sim_sbs_23_1?ie=UTF8&psc=1&refRID=7EAYPVFEJ0QA1E201SZA
実際に使ってみました。
...その前に、Altera のFPGAに対して、コンフィグする手段がなかった事に気付きました(^^;)
=====================
DE0などは、USB経由のコンフィグ手段が、ボード上に実装されているので何も要らないのですが、普通はコンフィグ用にByteBlasterや、USB Blaster などが必要になります。
基本的にお金を掛けたくないので、自作しようとしていたのですが、Alteraの場合だと結構面倒なようです。
Xilinxの場合だと、FT2232Dを使う手段があります。
http://www.hmwr-lsi.co.jp/fpga/fpga_1.htm
このページを参考に clbsrv を使用すると、iMPACTを使用してFPGAやコンフィグ用ROMに対してコンフィグが可能です。
Alteraの場合だと、同じように出来そうなのですが、Quartusから書き込めるソフトは存在しないようです。
そのため、新しいシリーズ(例えば、CycloneII)に対応していなかったり、コンフィグROMに書き込む事ができなかったりします。
結局、アマゾンでこのUSBブラスターを買いました。パチもんですが。
https://www.amazon.co.jp/%E6%82%9F%E7%A9%BA-ALTERA-USB-Blaster%E4%BA%92%E6%8F%9BJTag%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB-%E4%B8%A6%E8%A1%8C%E8%BC%B8%E5%85%A5%E5%93%81/dp/B00VUWNN74/ref=sr_1_1?ie=UTF8&qid=1478411751&sr=8-1&keywords=USB+Blaster
実際に使ってみましたが、問題なく使えています。
箱がちょっと歪んでいました。適当に組み立てた感じです。
中を開けてみると、PIC18F14K50と、LVC244と、若干のCRのみです。
多分、ここのページのを実装しているようです。
http://sa89a.net/mp.cgi/ele/ub.htm
さすがに、5V/3.3V変換には、LVC244が行っています。
初めから同人ハードだと思うと、全く問題ない範囲ですね(^^;)
=====================
というわけで、怪しいCycloneIIボードに、怪しいUSB Blasterで書き込みテストを行いました。
テスト用の回路です→test2.zip
テスト用の記述と、I/Oポート、タイミングの設定などを行っていますので、展開後、quartusの下の TEST.qpf をダブルクリックして、QuartusIIを起動後、コンパイルして下さい。
端子名に関しては、VHDL記述の最初の方にコメント文で記載しています(元のpin??では使いにくいので)。
端子に関しては、注意点がいくつかあります。
・LEDGN(2:0) ボード上のLEDと、外部ピンに接続しています。"L"でLEDが点灯します。
・PUSHSWN ボード上のプッシュSWに接続しています。押した時に"L"ですが、離した時にオープンになるので、FPGA側でプルアップする必要があります。(TEST.qsf内の set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to PUSHSWN がプルアップ指定です)
・CLK50MIN ボード上の50Mの水晶発振器に接続されています。変更はできません。
・CLKIN(6:0) 外部ピンに接続されている、入力専用ピンです。FPGA内部のPLLへ入力したい時などに使いますが、通常の入力信号を繋いでも構いません。このピンは入力専用のため、FPGA側でプルアップなどの処理ができません。そのため、ボード外でプルアップなどをするか、常に入力信号が入るようにする必要があります。
・GPIO0_D(9:0) チップ左側の外部ピンに繋がれている、汎用の入出力ピンです。未使用時はオープンにならないように、プルアップするか、出力信号とするかをする必要があります。(TEST.qsf内の set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to GPIO0_D* がプルアップ指定です)
・GPIO1_D(23:0) チップ下側の外部ピンに繋がれている、汎用の入出力ピンです。GPIO0_D と同様です。
・GPIO2_D(17:0) チップ右側の外部ピンに繋がれている、汎用の入出力ピンです。GPIO0_D と同様です。
・GPIO3_D(21:0) チップ上側の外部ピンに繋がれている、汎用の入出力ピンです。GPIO0_D と同様です。
入力専用ピンが7本もあり、これをプルアップなどの処理をする必要があるのが、ちょっと面倒ですね。
テスト時などは、最悪オープンでもいいと思いますが、通常運用時などはちゃんと処理した方がいいと思います。
=====================
分かっている人には必要ないかも知れませんが、コンフィグの仕方を、怪しいCycloneIIボードを例にして説明します。
その1)FPGAのSRAMに書き込む
コンパイル時に生成されている、test.sof を書き込みます。電源を切ると書き込んだ内容が消えます(コンフィグROMの内容が実行されます)。
まずセットアップをします。
1)USB-Blasterを、基板のJTAG端子に挿します。内側の方で、外側のASPの方ではありません。
2)CycloneIIボードに、DCジャックまたは基板テストポートから、5Vを供給します。基板に逆電圧防止用のダイオードがないので、プラスマイナスを間違えないように注意して下さい。間違えると一発で壊れる可能性もあります。
電源が供給されると、コンフィグROMの内容が実行されます。初期状態なら、LEDが点滅すると思います。
3)USB-Blasterを、パソコンのUSB端子と接続します。最初に接続する場合は、何かメッセージが出るかも知れません。
一度もUSB-Blasterを使った事がない場合は、ドライバをインストールする必要があるかも知れません。
4)QuartusIIのProgrammerを起動します。画面が小さいので広げておきます。USB-Blasterが正常に認識できている場合は、上部に「USB-Blaster [USB-0] 」などと表示されているはずです。表示されていない場合は、左上のHardware Setup を押して、USB-Blasterを選びます。
5)上部のModeを、JTAG になっている事を確認します。Programmer起動時はJTAGになっていると思います。
6)左側のSTARTを押します。右上の Progress が進んで、すぐに書き込みが終了します。電源を切ると初期化されるので、このモードは、全部接続したままになります。

その2)コンフィグROMに書き込む1
1)USB-Blasterを、基板のASP端子に挿します。外側の方です。
2)〜4)は上記と同様です。
5)上部のModeを、Active Serial Programming にします。何かメッセージが出ますので、OKを押します。
6)左側の Add File を押して、TEST.pof を選びます。
7)Program/Configure、Verify、Blank-Check の下の四角を押して、チェックを付けます。
8)左側のSTARTを押します。右上の Progress が進んで、書き込みが終了します。FPGAは書き込んだ内容で動作していて、電源を切った後でも、再度電源を入れるとコンフィグROMに書き込んだ内容で動作します。

その3)コンフィグROMに書き込む2
0)QuartusIIのメニューのFile-ConvertFiles を選んで、ファイル変換プログラムを起動します。
上から2段目のProgramming File Typeを、JTAG Indirect Configuration File (.jic) を選択します。
その下のConfiguration decive を、ターゲットのコンフィグROM(今回は、EPCS4)を選びます。
その下のファイル名は適当に名前を付けます。
一番下の大きいウインド内の、一番上の行のFlash Loader を選び、その右のAdd Deviceを押して、FPGAを選びます(今回は、CycloneIIのEP2CS5)。
その下の SOF Data を選び、Add File を選び、TEST.sofを選びます。
この状態で、一番下の Generate を押すと、〜.jic が生成されます。
1)USB-Blasterを、基板のJTAG端子に挿します。内側の方で、外側のASPの方ではありません。
2)〜4)は上記と同様です。
5)上部のModeを、JTAG になっている事を確認します。Programmer起動時はJTAGになっていると思います。
6)最初に表示されている、TEST.sof を選び、左側の Delete を押して選択を外します。
7)左側の Add File を押して、〜.jic を選びます。
8)Program/Configure、Verify、Blank-Check の下の四角を押して、チェックを付けます。上側はチェック出来ないので、下側のみです。
9)左側のSTARTを押します。右上の Progress が進んで、書き込みが終了します。書き込んだ直後は、FPGAは動作していないので、一度電源を切ります。再度電源を入れるとコンフィグROMに書き込んだ内容で動作します。


結果は、コンフィグROMに書き込む1と同じなのですが、ASP端子が不要なので基板設計などがラクになります。
https://www.amazon.co.jp/gp/product/B016K4XE3E/ref=pd_sim_sbs_23_1?ie=UTF8&psc=1&refRID=7EAYPVFEJ0QA1E201SZA
実際に使ってみました。
...その前に、Altera のFPGAに対して、コンフィグする手段がなかった事に気付きました(^^;)
=====================
DE0などは、USB経由のコンフィグ手段が、ボード上に実装されているので何も要らないのですが、普通はコンフィグ用にByteBlasterや、USB Blaster などが必要になります。
基本的にお金を掛けたくないので、自作しようとしていたのですが、Alteraの場合だと結構面倒なようです。
Xilinxの場合だと、FT2232Dを使う手段があります。
http://www.hmwr-lsi.co.jp/fpga/fpga_1.htm
このページを参考に clbsrv を使用すると、iMPACTを使用してFPGAやコンフィグ用ROMに対してコンフィグが可能です。
Alteraの場合だと、同じように出来そうなのですが、Quartusから書き込めるソフトは存在しないようです。
そのため、新しいシリーズ(例えば、CycloneII)に対応していなかったり、コンフィグROMに書き込む事ができなかったりします。
結局、アマゾンでこのUSBブラスターを買いました。パチもんですが。
https://www.amazon.co.jp/%E6%82%9F%E7%A9%BA-ALTERA-USB-Blaster%E4%BA%92%E6%8F%9BJTag%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB-%E4%B8%A6%E8%A1%8C%E8%BC%B8%E5%85%A5%E5%93%81/dp/B00VUWNN74/ref=sr_1_1?ie=UTF8&qid=1478411751&sr=8-1&keywords=USB+Blaster
実際に使ってみましたが、問題なく使えています。
箱がちょっと歪んでいました。適当に組み立てた感じです。
中を開けてみると、PIC18F14K50と、LVC244と、若干のCRのみです。
多分、ここのページのを実装しているようです。
http://sa89a.net/mp.cgi/ele/ub.htm
さすがに、5V/3.3V変換には、LVC244が行っています。
初めから同人ハードだと思うと、全く問題ない範囲ですね(^^;)
=====================
というわけで、怪しいCycloneIIボードに、怪しいUSB Blasterで書き込みテストを行いました。
テスト用の回路です→test2.zip
テスト用の記述と、I/Oポート、タイミングの設定などを行っていますので、展開後、quartusの下の TEST.qpf をダブルクリックして、QuartusIIを起動後、コンパイルして下さい。
端子名に関しては、VHDL記述の最初の方にコメント文で記載しています(元のpin??では使いにくいので)。
端子に関しては、注意点がいくつかあります。
・LEDGN(2:0) ボード上のLEDと、外部ピンに接続しています。"L"でLEDが点灯します。
・PUSHSWN ボード上のプッシュSWに接続しています。押した時に"L"ですが、離した時にオープンになるので、FPGA側でプルアップする必要があります。(TEST.qsf内の set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to PUSHSWN がプルアップ指定です)
・CLK50MIN ボード上の50Mの水晶発振器に接続されています。変更はできません。
・CLKIN(6:0) 外部ピンに接続されている、入力専用ピンです。FPGA内部のPLLへ入力したい時などに使いますが、通常の入力信号を繋いでも構いません。このピンは入力専用のため、FPGA側でプルアップなどの処理ができません。そのため、ボード外でプルアップなどをするか、常に入力信号が入るようにする必要があります。
・GPIO0_D(9:0) チップ左側の外部ピンに繋がれている、汎用の入出力ピンです。未使用時はオープンにならないように、プルアップするか、出力信号とするかをする必要があります。(TEST.qsf内の set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to GPIO0_D* がプルアップ指定です)
・GPIO1_D(23:0) チップ下側の外部ピンに繋がれている、汎用の入出力ピンです。GPIO0_D と同様です。
・GPIO2_D(17:0) チップ右側の外部ピンに繋がれている、汎用の入出力ピンです。GPIO0_D と同様です。
・GPIO3_D(21:0) チップ上側の外部ピンに繋がれている、汎用の入出力ピンです。GPIO0_D と同様です。
入力専用ピンが7本もあり、これをプルアップなどの処理をする必要があるのが、ちょっと面倒ですね。
テスト時などは、最悪オープンでもいいと思いますが、通常運用時などはちゃんと処理した方がいいと思います。
=====================
分かっている人には必要ないかも知れませんが、コンフィグの仕方を、怪しいCycloneIIボードを例にして説明します。
その1)FPGAのSRAMに書き込む
コンパイル時に生成されている、test.sof を書き込みます。電源を切ると書き込んだ内容が消えます(コンフィグROMの内容が実行されます)。
まずセットアップをします。
1)USB-Blasterを、基板のJTAG端子に挿します。内側の方で、外側のASPの方ではありません。
2)CycloneIIボードに、DCジャックまたは基板テストポートから、5Vを供給します。基板に逆電圧防止用のダイオードがないので、プラスマイナスを間違えないように注意して下さい。間違えると一発で壊れる可能性もあります。
電源が供給されると、コンフィグROMの内容が実行されます。初期状態なら、LEDが点滅すると思います。
3)USB-Blasterを、パソコンのUSB端子と接続します。最初に接続する場合は、何かメッセージが出るかも知れません。
一度もUSB-Blasterを使った事がない場合は、ドライバをインストールする必要があるかも知れません。
4)QuartusIIのProgrammerを起動します。画面が小さいので広げておきます。USB-Blasterが正常に認識できている場合は、上部に「USB-Blaster [USB-0] 」などと表示されているはずです。表示されていない場合は、左上のHardware Setup を押して、USB-Blasterを選びます。
5)上部のModeを、JTAG になっている事を確認します。Programmer起動時はJTAGになっていると思います。
6)左側のSTARTを押します。右上の Progress が進んで、すぐに書き込みが終了します。電源を切ると初期化されるので、このモードは、全部接続したままになります。
その2)コンフィグROMに書き込む1
1)USB-Blasterを、基板のASP端子に挿します。外側の方です。
2)〜4)は上記と同様です。
5)上部のModeを、Active Serial Programming にします。何かメッセージが出ますので、OKを押します。
6)左側の Add File を押して、TEST.pof を選びます。
7)Program/Configure、Verify、Blank-Check の下の四角を押して、チェックを付けます。
8)左側のSTARTを押します。右上の Progress が進んで、書き込みが終了します。FPGAは書き込んだ内容で動作していて、電源を切った後でも、再度電源を入れるとコンフィグROMに書き込んだ内容で動作します。
その3)コンフィグROMに書き込む2
0)QuartusIIのメニューのFile-ConvertFiles を選んで、ファイル変換プログラムを起動します。
上から2段目のProgramming File Typeを、JTAG Indirect Configuration File (.jic) を選択します。
その下のConfiguration decive を、ターゲットのコンフィグROM(今回は、EPCS4)を選びます。
その下のファイル名は適当に名前を付けます。
一番下の大きいウインド内の、一番上の行のFlash Loader を選び、その右のAdd Deviceを押して、FPGAを選びます(今回は、CycloneIIのEP2CS5)。
その下の SOF Data を選び、Add File を選び、TEST.sofを選びます。
この状態で、一番下の Generate を押すと、〜.jic が生成されます。
1)USB-Blasterを、基板のJTAG端子に挿します。内側の方で、外側のASPの方ではありません。
2)〜4)は上記と同様です。
5)上部のModeを、JTAG になっている事を確認します。Programmer起動時はJTAGになっていると思います。
6)最初に表示されている、TEST.sof を選び、左側の Delete を押して選択を外します。
7)左側の Add File を押して、〜.jic を選びます。
8)Program/Configure、Verify、Blank-Check の下の四角を押して、チェックを付けます。上側はチェック出来ないので、下側のみです。
9)左側のSTARTを押します。右上の Progress が進んで、書き込みが終了します。書き込んだ直後は、FPGAは動作していないので、一度電源を切ります。再度電源を入れるとコンフィグROMに書き込んだ内容で動作します。
結果は、コンフィグROMに書き込む1と同じなのですが、ASP端子が不要なので基板設計などがラクになります。
2016年10月31日
FPGA購入の話
ザナドゥ、MeltDown、と 解像度が 640x200 のソフトをP6用に移植しました。
この後のゲームも、偶然にも解像度が 640x200 がベストなソフトでした。
現在デバッグ中というか実機でプレイ中なんですが、うちの環境ではまともに640x200が表示できていません。
西田ラジオさんで購入した P6用RGBコンポーネントアダプタで、かろうじて見える程度で、これでもはっきりとは映りません。
普通のVGAモニタにそのまま表示させたいので、メモリ+制御回路などが必要になるため、FPGAで実現するのが一番簡単だと思います。とりあえずは、ずいぶん前に作成したRGBコンバータをSR用に作り直しています。
http://sbeach.seesaa.net/article/387861423.html
ただ、DE0をRGBコンバータだけに使うのはもったいないので、他のFPGAボードやFPGA単体をいろいろと調査しています(やっと表題の内容です...)。
●FPGAはどこで売っているか?
なぜか分かりませんが、よく使うパーツショップ店頭や通信販売先(秋月、共立、マルツなど)ではほとんど売っていません。
DigiKey だと、かなりいろんな種類のFPGAやその他の部品を購入出来ますが、7500円未満なら送料2000円を取られるのがちょっと、という感じです。
また、アマゾンから購入する事が可能です(調べてちょっと意外だったのですが)。
ただ、検索エンジンが全く使えない代物なので、型番を全て入れてやる必要があります。
例えば、デザインウエーブマガジン2003年10月のコンフィグ用ROMのEPCS1だと、EPCS1SI8N と入れる必要があります。
さらにチップ写真に意味がないので、他で調べる必要があります。
チップ型番が分からずに探す場合
1)『産業・研究開発用品』のカテゴリで、ALTERA や XILINX と入力して検索する。
2)発売メーカがALTERA/XILINXのものを選んで、そのチップのページを表示させる。
3)チップのページの品名の下の「ALTERA/XILINX」を選ぶと、そのメーカのチップが全部表示される。
という手順で探せます。
また、ALTERA限定ですが、日本の代理店から購入する事ができるようです。5000円未満なら送料450円、5000円以上で送料無料のようです。
マクニカオンラインストア https://store.macnica.co.jp/
●FPGAボードについて
安そうなFPGAボードを探してみました。
デザインウエーブマガジン2003年10月号(ALTERA)
デザインウエーブマガジン2005年1月号(XILINX)
デザインウエーブマガジン2007年7月号(XILINX)
付録に基板が付いていました。オークションなどで入手が出来れば、ですね。
また、コンフィグ用ROMが付いてませんので、自分で何とかする必要があります。
マルツオンライン
http://www.marutsu.co.jp/pc/i/65176/
http://www.marutsu.co.jp/pc/i/65177/
両方とも5000円です。上の2003年10月号付録、2007年7月号付録のコンパチだと思われます。
アマゾン経由でも購入できますが、1000円以上高いです。
アマゾンで見つけた怪しいボード
https://www.amazon.co.jp/gp/product/B016K4XE3E/ref=pd_sim_sbs_23_1?ie=UTF8&psc=1&refRID=7EAYPVFEJ0QA1E201SZA
表題の価格では、26342円ですが、別業者が 2550円で売っています。怪しいです...
どうもEbay辺りで売っているようで、$26 みたいです。
この辺りにイロイロ書かれています。http://www.leonheller.com/FPGA/FPGA.html
実際に買ってみました。国際郵便でさっき到着しました。
基板をぱっと見る限り、チープという表現がぴったりです...
基板裏面が汚く、洗浄がちゃんと出来ていないようです。
実装後のテストをしているかどうかも怪しく、半田付けも不安があるので、自分で何とかできる人向けですね。
また基板だけで、データシートなどはありません。
この辺りにデータがあります。
https://www.openimpulse.com/blog/products-page/product-category/ep2c5t144-altera-cyclone-ii-fpga-development-board/
回路図もありますが、抵抗などの値は違うようです。また、サンプル回路も付いていますが、入力がオープンのままになっていたりするので、使わない方がいいかも...
とりあえず使えるかどうか、現在試用中です。
この後のゲームも、偶然にも解像度が 640x200 がベストなソフトでした。
現在デバッグ中というか実機でプレイ中なんですが、うちの環境ではまともに640x200が表示できていません。
西田ラジオさんで購入した P6用RGBコンポーネントアダプタで、かろうじて見える程度で、これでもはっきりとは映りません。
普通のVGAモニタにそのまま表示させたいので、メモリ+制御回路などが必要になるため、FPGAで実現するのが一番簡単だと思います。とりあえずは、ずいぶん前に作成したRGBコンバータをSR用に作り直しています。
http://sbeach.seesaa.net/article/387861423.html
ただ、DE0をRGBコンバータだけに使うのはもったいないので、他のFPGAボードやFPGA単体をいろいろと調査しています(やっと表題の内容です...)。
●FPGAはどこで売っているか?
なぜか分かりませんが、よく使うパーツショップ店頭や通信販売先(秋月、共立、マルツなど)ではほとんど売っていません。
DigiKey だと、かなりいろんな種類のFPGAやその他の部品を購入出来ますが、7500円未満なら送料2000円を取られるのがちょっと、という感じです。
また、アマゾンから購入する事が可能です(調べてちょっと意外だったのですが)。
ただ、検索エンジンが全く使えない代物なので、型番を全て入れてやる必要があります。
例えば、デザインウエーブマガジン2003年10月のコンフィグ用ROMのEPCS1だと、EPCS1SI8N と入れる必要があります。
さらにチップ写真に意味がないので、他で調べる必要があります。
チップ型番が分からずに探す場合
1)『産業・研究開発用品』のカテゴリで、ALTERA や XILINX と入力して検索する。
2)発売メーカがALTERA/XILINXのものを選んで、そのチップのページを表示させる。
3)チップのページの品名の下の「ALTERA/XILINX」を選ぶと、そのメーカのチップが全部表示される。
という手順で探せます。
また、ALTERA限定ですが、日本の代理店から購入する事ができるようです。5000円未満なら送料450円、5000円以上で送料無料のようです。
マクニカオンラインストア https://store.macnica.co.jp/
●FPGAボードについて
安そうなFPGAボードを探してみました。
デザインウエーブマガジン2003年10月号(ALTERA)
デザインウエーブマガジン2005年1月号(XILINX)
デザインウエーブマガジン2007年7月号(XILINX)
付録に基板が付いていました。オークションなどで入手が出来れば、ですね。
また、コンフィグ用ROMが付いてませんので、自分で何とかする必要があります。
マルツオンライン
http://www.marutsu.co.jp/pc/i/65176/
http://www.marutsu.co.jp/pc/i/65177/
両方とも5000円です。上の2003年10月号付録、2007年7月号付録のコンパチだと思われます。
アマゾン経由でも購入できますが、1000円以上高いです。
アマゾンで見つけた怪しいボード
https://www.amazon.co.jp/gp/product/B016K4XE3E/ref=pd_sim_sbs_23_1?ie=UTF8&psc=1&refRID=7EAYPVFEJ0QA1E201SZA
表題の価格では、26342円ですが、別業者が 2550円で売っています。怪しいです...
どうもEbay辺りで売っているようで、$26 みたいです。
この辺りにイロイロ書かれています。http://www.leonheller.com/FPGA/FPGA.html
実際に買ってみました。国際郵便でさっき到着しました。
基板をぱっと見る限り、チープという表現がぴったりです...
基板裏面が汚く、洗浄がちゃんと出来ていないようです。
実装後のテストをしているかどうかも怪しく、半田付けも不安があるので、自分で何とかできる人向けですね。
また基板だけで、データシートなどはありません。
この辺りにデータがあります。
https://www.openimpulse.com/blog/products-page/product-category/ep2c5t144-altera-cyclone-ii-fpga-development-board/
回路図もありますが、抵抗などの値は違うようです。また、サンプル回路も付いていますが、入力がオープンのままになっていたりするので、使わない方がいいかも...
とりあえず使えるかどうか、現在試用中です。
2013年08月31日
初代機コンポーネント出力
乙女座軍団のえすびです。
だいぶ、更新が止まっていました。
うちには初代機PC-6001が2台ありますが、両方とも画像出力が非常に汚いです。
(1台目の出力が汚かったので、2台目を買ったんだけどほとんど同じだったというオチ...)
で、西田さんところの初代機用コンポーネントアダプタを購入しました(現在は、販売中止中です)。
実際に使ってみると、かなり綺麗になりました。特にスクリーン1の文字の読みづらさが嘘のように綺麗になっています。
左(上):ビデオ出力、右(下):コンポーネント出力








当たり前ですが、色ずれの影響がなくなって、文字がくっきりと読めます。
スクリーン3は色の調子がちょっと違うため、抵抗値を変更をして色を合わせました。
(R12,R19 を 75Ω → 33Ωに変更)


スクリーン4を白黒で表示した場合は、はっきりと見えます。

ただ、スクリーン4の擬似色付け機能がちゃんと機能していません。


どうもうちのP6の色ずれの度合いが大きすぎるようです。
そのため、擬似色付け回路を自分で組んでみました。

74HC86 を使っていますが、手持ちに 74HC04 がなかったためです。
シュミットトリガの74HC14 を使うのがベストだと思います。
ただ、この回路でもダメな場合があると思いますので、注意して下さい。
この回路で実行させた結果は以下の通りです。



今までの汚い画像出力に比べたら、はっきりくっきりです。
だいぶ、更新が止まっていました。
うちには初代機PC-6001が2台ありますが、両方とも画像出力が非常に汚いです。
(1台目の出力が汚かったので、2台目を買ったんだけどほとんど同じだったというオチ...)
で、西田さんところの初代機用コンポーネントアダプタを購入しました(現在は、販売中止中です)。
実際に使ってみると、かなり綺麗になりました。特にスクリーン1の文字の読みづらさが嘘のように綺麗になっています。
左(上):ビデオ出力、右(下):コンポーネント出力
当たり前ですが、色ずれの影響がなくなって、文字がくっきりと読めます。
スクリーン3は色の調子がちょっと違うため、抵抗値を変更をして色を合わせました。
(R12,R19 を 75Ω → 33Ωに変更)
スクリーン4を白黒で表示した場合は、はっきりと見えます。
ただ、スクリーン4の擬似色付け機能がちゃんと機能していません。
どうもうちのP6の色ずれの度合いが大きすぎるようです。
そのため、擬似色付け回路を自分で組んでみました。
74HC86 を使っていますが、手持ちに 74HC04 がなかったためです。
シュミットトリガの74HC14 を使うのがベストだと思います。
ただ、この回路でもダメな場合があると思いますので、注意して下さい。
この回路で実行させた結果は以下の通りです。
今までの汚い画像出力に比べたら、はっきりくっきりです。
2013年06月02日
FPGAボード(AZPR EvBoard)
先日、秋葉原でこんなのを見つけました。
http://www.respon.org/
http://yone2.net/azpr_evboard
同人で作っている、FPGAボードです。基板の裏が最大の特徴です、多分。
マルツや共立で入手できるようです。
搭載されているFPGAですが、xilinx の XC3S500E のようです。
DE0 と比較すると、メーカが違うので直接の比較は出来ませんが、ゲート規模は同程度か少ないようです(間違えていたらゴメンナサイ)。
xilinx 遣いの人にはお勧めかも知れません。
私は、xilinx はかなり長い間触ってませんので、特別な理由がない限りは、今の DE0/DE0nano からは変更する気はありませんが...
http://www.respon.org/
http://yone2.net/azpr_evboard
同人で作っている、FPGAボードです。基板の裏が最大の特徴です、多分。
マルツや共立で入手できるようです。
搭載されているFPGAですが、xilinx の XC3S500E のようです。
DE0 と比較すると、メーカが違うので直接の比較は出来ませんが、ゲート規模は同程度か少ないようです(間違えていたらゴメンナサイ)。
xilinx 遣いの人にはお勧めかも知れません。
私は、xilinx はかなり長い間触ってませんので、特別な理由がない限りは、今の DE0/DE0nano からは変更する気はありませんが...
2013年03月15日
6601/6601SR用フロッピーインタフェース
PC-6601とPC-6601SR用の外部フロッピードライブのインタフェース回路を作成しました。
回路はかなり簡単で、以下の通りです。

入手しにくい部品は8255ですが、私は共立電子で新品を買いました(300円)。
購入した8255は、TMP82C55 でCMOSなんですが、元々の8255の置き換えを想定しているらしく、インタフェースレベルなどはそのままで動作します。
回路が分かる人は、何で CS 端子を使わずに、LS32を使っているのかと疑問を持つと思いますが、こうしないと動作しません。(8255が、CS WR や RD が "L" の間に、WR や RD CS が変化してはいけない仕様のようです)
初代6001は、上記回路は使えません。nOCS5 をいう信号が出ていないためで、代わりに自分でデコードして信号を作ってやる必要があります。さらに、BASICでサポートするには、拡張BASICを載せたり、RAMを32Kにしたりする必要があるので、ちょっと面倒です。
66も66SRも外付けドライブを想定しているらしく、インタフェース回路を作るだけでBASICで普通にアクセスできます。
ただし、内蔵ドライブ2つまでと外付けドライブ2つまでしかサポートしていません。
ドライブ番号は、内蔵#1、#2、外付け#1、#2の順に割り当てます。
例えば、内蔵ドライブ数を1にした場合は、
1:内蔵#1(起動ドライブ)
2:外付#1
3:外付#2
になります。
また、内蔵ドライブ数を0にした場合は、
1:外付#1(起動ドライブ)
2:外付#2
となり、外付けドライブから起動が可能になります。
そのため、この状態で SD6031 を繋ぐと、ちゃんとイメージファイルの選択が出来るようになります。
この外部インタフェース回路を使うと、3.5インチ/5インチのコピーや、SD6031と3.5インチのコピーなどが簡単に出来るようになります。
CP/M がこの辺りをサポートしているのかは未確認です。
実際に作った基板です。


ただ、これは直接6601に挿すのではなく、エキスパンダー(拡張コネクタを拡張するもの)を経由して接続するようにしました。
エキスパンダーですが、PC-6006のカートリッジを使って作りました。



単純に拡張コネクタの線を外に出しているだけです。
拡張コネクタに挿す基板が入手困難なため、こういうものを作った方が後で便利かなーと思いまして。
回路はかなり簡単で、以下の通りです。
入手しにくい部品は8255ですが、私は共立電子で新品を買いました(300円)。
購入した8255は、TMP82C55 でCMOSなんですが、元々の8255の置き換えを想定しているらしく、インタフェースレベルなどはそのままで動作します。
回路が分かる人は、何で CS 端子を使わずに、LS32を使っているのかと疑問を持つと思いますが、こうしないと動作しません。(8255が、
初代6001は、上記回路は使えません。nOCS5 をいう信号が出ていないためで、代わりに自分でデコードして信号を作ってやる必要があります。さらに、BASICでサポートするには、拡張BASICを載せたり、RAMを32Kにしたりする必要があるので、ちょっと面倒です。
66も66SRも外付けドライブを想定しているらしく、インタフェース回路を作るだけでBASICで普通にアクセスできます。
ただし、内蔵ドライブ2つまでと外付けドライブ2つまでしかサポートしていません。
ドライブ番号は、内蔵#1、#2、外付け#1、#2の順に割り当てます。
例えば、内蔵ドライブ数を1にした場合は、
1:内蔵#1(起動ドライブ)
2:外付#1
3:外付#2
になります。
また、内蔵ドライブ数を0にした場合は、
1:外付#1(起動ドライブ)
2:外付#2
となり、外付けドライブから起動が可能になります。
そのため、この状態で SD6031 を繋ぐと、ちゃんとイメージファイルの選択が出来るようになります。
この外部インタフェース回路を使うと、3.5インチ/5インチのコピーや、SD6031と3.5インチのコピーなどが簡単に出来るようになります。
CP/M がこの辺りをサポートしているのかは未確認です。
実際に作った基板です。
ただ、これは直接6601に挿すのではなく、エキスパンダー(拡張コネクタを拡張するもの)を経由して接続するようにしました。
エキスパンダーですが、PC-6006のカートリッジを使って作りました。
単純に拡張コネクタの線を外に出しているだけです。
拡張コネクタに挿す基板が入手困難なため、こういうものを作った方が後で便利かなーと思いまして。
2012年12月12日
マウス変換コネクタの補足
先日アップしたマウス変換コネクタの回路(というかAVRのプログラム)に関してです。
手持ちのPS/2のマウスで試したんですが、どうも動作しないマウスもあるようです。
4種類中1個がダメでした。
現象としては、マウスのボタンは検出するんだけど、マウスの移動が検出できないというものです。
原因は判明していません。
もし、工作したのに動かない人がいたらごめんなさい。
手持ちのPS/2のマウスで試したんですが、どうも動作しないマウスもあるようです。
4種類中1個がダメでした。
現象としては、マウスのボタンは検出するんだけど、マウスの移動が検出できないというものです。
原因は判明していません。
もし、工作したのに動かない人がいたらごめんなさい。
2012年11月25日
マウス変換コネクタ
P6系で使えるマウスはMSX用などですが、多分現在ではほとんど入手が困難だと思います。
なので、PS/2 のマウスをMSX用(というかP6用?)に変換するコネクタを作りました。
FM-TOWNS用で同様のものがあるようですが、今回の製作のコンセプトは、「出来るだけ簡単に作る」です。
注)使用する際は、使用者個人責任で行ってください。実行した結果によって、いかなる結果になっても、作者は一切責任を負いませんので、ご了承下さい。
(今更ですが)
回路図がこれになります。

AVR の中で、安価でI/O数があるATtine2313 を使いました(240円)。
AVR 内の POWER ON リセットを使用しているので、リセット回路はありません。
データの焼きこみを他で行うのなら、ISPコネクタも不要です。
パスコンの値は適当です。
PS/2 が挿さるコネクタは、mini-DIN の6ピンです。
P6に挿すコネクタは Dsub 9ピンですが、普通のではそのまま挿せないため、金属ケースを取り除いて中身だけを使います。

こんな感じです。左右の出ている金属部分をペンチで何度か曲げていると、ねじ切ることができます。
Dsub 9ピンのピンの間に、ユニバーサル基板を挟むような感じで組み上げます。
実際に組み立てたものがこれです。ちょっと安っぽいです...

裏面はこんな感じです。あまりキレイではありません。

AVR のプログラムですが、C+アセンブラになります。
MOUSECONV.zip
FUSE ビットは、デフォルトのまま使用しています。
使い方ですが、必ずマウスを変換コネクタに挿してから、P6 に変換コネクタを挿して下さい。
途中でマウスを抜き差しすると、誤動作する可能性があります。
P6 の電源を入れている時に変換コネクタを抜き差しした場合、論理動作は正常に動くと思うんですが、物理的にやられる可能性がありますので、注意して下さい。
PS/2 のマウスは中トリガがあるものがありますが、これを押すと移動量を変化させるようにしました。押すたびに、1/1 、1/2 、1/4 、1/1 、・・・、となります。
mk2、P6F では当然使えたんですが、MSX や FM-TOWNS で使用できるかどうかは、試していません(使えるはずですが)。
なので、PS/2 のマウスをMSX用(というかP6用?)に変換するコネクタを作りました。
FM-TOWNS用で同様のものがあるようですが、今回の製作のコンセプトは、「出来るだけ簡単に作る」です。
注)使用する際は、使用者個人責任で行ってください。実行した結果によって、いかなる結果になっても、作者は一切責任を負いませんので、ご了承下さい。
(今更ですが)
回路図がこれになります。
AVR の中で、安価でI/O数があるATtine2313 を使いました(240円)。
AVR 内の POWER ON リセットを使用しているので、リセット回路はありません。
データの焼きこみを他で行うのなら、ISPコネクタも不要です。
パスコンの値は適当です。
PS/2 が挿さるコネクタは、mini-DIN の6ピンです。
P6に挿すコネクタは Dsub 9ピンですが、普通のではそのまま挿せないため、金属ケースを取り除いて中身だけを使います。
こんな感じです。左右の出ている金属部分をペンチで何度か曲げていると、ねじ切ることができます。
Dsub 9ピンのピンの間に、ユニバーサル基板を挟むような感じで組み上げます。
実際に組み立てたものがこれです。ちょっと安っぽいです...
裏面はこんな感じです。あまりキレイではありません。
AVR のプログラムですが、C+アセンブラになります。
MOUSECONV.zip
FUSE ビットは、デフォルトのまま使用しています。
使い方ですが、必ずマウスを変換コネクタに挿してから、P6 に変換コネクタを挿して下さい。
途中でマウスを抜き差しすると、誤動作する可能性があります。
P6 の電源を入れている時に変換コネクタを抜き差しした場合、論理動作は正常に動くと思うんですが、物理的にやられる可能性がありますので、注意して下さい。
PS/2 のマウスは中トリガがあるものがありますが、これを押すと移動量を変化させるようにしました。押すたびに、1/1 、1/2 、1/4 、1/1 、・・・、となります。
mk2、P6F では当然使えたんですが、MSX や FM-TOWNS で使用できるかどうかは、試していません(使えるはずですが)。
2012年06月25日
RGBコンバータの設計(2)
RGBコンバータの続きです。
実際に動かしてみた結果、写真の通りノイズがかなりあります。
原因は多分...
・IC のパスコンを入れていない。
・空中配線がノイズを拾っている。
・コネクタからICまでの線をシールドしていない。
かと思います。
特にIC の3.3V 電源は細い線1本なので、こいつが元凶かも。
また、回路構成ですが、
P6からの水平同期信号
↓
DE0 内の 50MHz クロックでサンプリングする。
↓
擬似的な、7.16MHz を生成する。
実際には、50MHz クロックで、数回に1回イネーブルを生成する。
↓
P6F のVGAOUT の回路に入力する(クロック乗せ換えをして、VGA信号を生成)
サンプリングして、擬似7.16MHz を作るのがミソですね。
ところで、このRGBコンバータ、使う人いるのかなぁ...
需要がありそうなら、SR対応とかもするんですが、今の所はこれ以上は改定しないつもりです。
実際に動かしてみた結果、写真の通りノイズがかなりあります。
原因は多分...
・IC のパスコンを入れていない。
・空中配線がノイズを拾っている。
・コネクタからICまでの線をシールドしていない。
かと思います。
特にIC の3.3V 電源は細い線1本なので、こいつが元凶かも。
また、回路構成ですが、
P6からの水平同期信号
↓
DE0 内の 50MHz クロックでサンプリングする。
↓
擬似的な、7.16MHz を生成する。
実際には、50MHz クロックで、数回に1回イネーブルを生成する。
↓
P6F のVGAOUT の回路に入力する(クロック乗せ換えをして、VGA信号を生成)
サンプリングして、擬似7.16MHz を作るのがミソですね。
ところで、このRGBコンバータ、使う人いるのかなぁ...
需要がありそうなら、SR対応とかもするんですが、今の所はこれ以上は改定しないつもりです。
RGBコンバータの設計(1)
P6 オフに持っていこうと思って、間に合わなかったものです(^^;
PC-6001mkII 以上のマシンのRGB出力を、VGAモニタに出力するためのコンバータを作りました。
とりあえず版なので、いろいろといい加減な部分があります。
論理回路の実装のために、DE0 を使用しました(とりあえず版なので)。
DE0を使うと、回路のほとんどがFPGA内部で出来るのですが、P6のRGB出力を受信する部分が必要になります。
やっかいな事に、P6の出力は、5V のTTL レベル出力で、DE0 は3.3V までしか受けられません。
そのために 74LCX を使って、レベル変換を行っています。
今回は、74LCX244 を使っていますが、74VHC や 74LVX でも構いません。
また、244 は 245 でも構いません(端子処理に注意が必要ですが)。
今回は試していませんが、単に抵抗分割で構わないような気もします。
外付け回路はこんな感じです。

端子は、音声基板で使用していない端子を使いました。
実際に組み立てたのがこれです。


74LCX244 が、面実装タイプしか手に入らないので、工作が大変になっています。
74LCX244 を裏向けにして、両面テープで貼り付け、4隅のピンを半田付けで基板に固定しています。
その後で、浮いているピンを配線しています。それをまとめてエナメル線で縛って固定しています。
DE0へのコネクタとの結線は適当です(^^; テヌキデスネ...
コネクタ間は、40ピンのフラットケーブルで繋いでいます。
ちゃんと線を買って、コネクタを圧着してもいいんですが、中古のパソコンショップで、SCSIケーブルを探すのが安く上がります。
コネクタの穴が塞がっているものがあるので注意が必要ですが。
実機につないで動作させてみました。実行結果です。

66 につないで、VGAモニタに出力させています。

上の拡大写真。字の所にノイズが出ています。
どうも、P6 → DE0 に入る間のどこかでノイズが乗っているようです。

オフの時に手に入れた、FDD版ベルーガを写してみました。

左端の拡大写真です。ノイズがはっきり分かります。

スクリーン4にすると、同期が外れる時があります。
これは多分、水平同期にノイズが乗っているんだと思います。

普通のRGBコンバータでは出来ない芸当。
色ずれモードを再現しています。
単純に、P6F のモジュールをそのまま使っているだけなんですが。

66SR の起動画面。
なぜか、66SR の方がノイズが大きいようです。
水平同期にノイズが入っています。

66SR の起動画面2。
こっちはまだキレイですが、でもノイズがあります。

ついでに液晶モニタにも映してみました。
66 の起動画面です。絵がぼけてるのは写真のせいです。本物はキレイです(ただしノイズあり)。

66SR の起動画面です。
PC-6001mkII 以上のマシンのRGB出力を、VGAモニタに出力するためのコンバータを作りました。
とりあえず版なので、いろいろといい加減な部分があります。
論理回路の実装のために、DE0 を使用しました(とりあえず版なので)。
DE0を使うと、回路のほとんどがFPGA内部で出来るのですが、P6のRGB出力を受信する部分が必要になります。
やっかいな事に、P6の出力は、5V のTTL レベル出力で、DE0 は3.3V までしか受けられません。
そのために 74LCX を使って、レベル変換を行っています。
今回は、74LCX244 を使っていますが、74VHC や 74LVX でも構いません。
また、244 は 245 でも構いません(端子処理に注意が必要ですが)。
今回は試していませんが、単に抵抗分割で構わないような気もします。
外付け回路はこんな感じです。
端子は、音声基板で使用していない端子を使いました。
実際に組み立てたのがこれです。
74LCX244 が、面実装タイプしか手に入らないので、工作が大変になっています。
74LCX244 を裏向けにして、両面テープで貼り付け、4隅のピンを半田付けで基板に固定しています。
その後で、浮いているピンを配線しています。それをまとめてエナメル線で縛って固定しています。
DE0へのコネクタとの結線は適当です(^^; テヌキデスネ...
コネクタ間は、40ピンのフラットケーブルで繋いでいます。
ちゃんと線を買って、コネクタを圧着してもいいんですが、中古のパソコンショップで、SCSIケーブルを探すのが安く上がります。
コネクタの穴が塞がっているものがあるので注意が必要ですが。
実機につないで動作させてみました。実行結果です。
66 につないで、VGAモニタに出力させています。
上の拡大写真。字の所にノイズが出ています。
どうも、P6 → DE0 に入る間のどこかでノイズが乗っているようです。
オフの時に手に入れた、FDD版ベルーガを写してみました。
左端の拡大写真です。ノイズがはっきり分かります。
スクリーン4にすると、同期が外れる時があります。
これは多分、水平同期にノイズが乗っているんだと思います。
普通のRGBコンバータでは出来ない芸当。
色ずれモードを再現しています。
単純に、P6F のモジュールをそのまま使っているだけなんですが。
66SR の起動画面。
なぜか、66SR の方がノイズが大きいようです。
水平同期にノイズが入っています。
66SR の起動画面2。
こっちはまだキレイですが、でもノイズがあります。
ついでに液晶モニタにも映してみました。
66 の起動画面です。絵がぼけてるのは写真のせいです。本物はキレイです(ただしノイズあり)。
66SR の起動画面です。

