OLD WORKS

8pin PIC 電子工作

o PS/2 Mouse to SUN Mouse
o JoyPad PS/2 Mouse
o JoyPad PS/2 Wheel Mouse
o JoyPad USB Wheel Mouse
o JoyPad SUN Mouse
o PS/2 DEBUG CIRCUIT
o Universal Timer Controller
o 'SAIKORO' (Dice)
o RS-232C to IrDA Converter II
o 4CH Digital Volt Meter ( IrDA/RS-232C)

番外編 電子工作

o SD Card adaptor for GameCube
o ADuC70xx I2C writer
o JoyPad USB Wheel Mouse for PIC16F84
o JoyPad USB Wheel Mouse for UEC-Z07 CPU Board
o JoyPad PS/2 Wheel Mouse for AKI-ARM CPU Board
o JoyPad USB Wheel Mouse for AKI-ARM CPU Board
o JoyPad USB Wheel Mouse for AKI-H8/3664 CPU Board
o ペルソナで PIC 開発
o RS-232C to IrDA Converter
o JoyPad USB Wheel Mouse for Visual Memory
o JoyPad USB Wheel Mouse for Dreamcast
o JoyPad USB Wheel Mouse for Dreamcast (G2 BUS)
o Dreamcast Parallel Port Rip
o NAOMI PIC ParallelPort Rip
ENC28J60 LAN Adapter for DC Serial
Dreamcast SD Loader ver1.0 1 . / NAOMI PIC ParallelPort Rip
Dreamcast SD Rip ver1.0 1 2 3 4 . . / dcpprip ver1.2 (for Bad CRC Dreamcast)
dcpprip ver1.1 (pre gap bug fix) / Dreamcast tools sum iso2bin bin2iso tt2gdi
LAN Adapter HIT-0300 clone clone 2 / gcsw / TMP92CM22F 1 2 / ? FR60 1 ?
SD Card i/f for DC Serial / RTL8019AS LAN Adapter for Dreamcast / riaa
about Dreamcast G2 bus 1 2 3 4 / Dreamcast G2 bus <=> USBN9603 interface
Dreamcast Serial Port & FT232BM (external baud rate clock) => 1 2 3 4 5 6 7 8
dcpprip って何? 詳細は 「そこぬけろ!」 の 掲示板 にあります。 3b 3c 3d 3e
試運転さん より dcpprip実験レポート 1 2 3 4 を頂きました(原文のまま掲載します)
DC-serial→RAS Server→LAN 計画 / DC を静かにしてみる(by 試運転さん
アプローズから無料サンプル AP4010 (ARM CPU) 届きました!何作ろう? 1 2 3 4 ?

2024(H36)/04/24()


00235010

phpdot

画像 (JPEG/GIF/PNG) を の HTML に変換します。 sample

変換したい 画像 ファイルを入れて [to HTML] ボタンを押してください。
(ファイルサイズは 200K 未満)

jj1odm        phpdot : PHP 4.4.2 + GD 2.0 or higher




◆◆ 8pin PIC 電子工作 ◆◆

◆ PS/2 Mouse to SUN Mouse Converter ◆

PS/2 マウスを SUN のマウスに変換する装置、SUN 4 Solaris/OpenBSD で使用中。

CPU は PIC12C509 を使用、回路図 中のジャンパーはショートで2ボタンマウスを
3ボタンマウスにエミュレーションします。(左右同時押しでセンターボタン)

スクロールマウス(コロコロマウス)のいくつかは2ボタンとしてしか認識しません。
その場合もジャンパーをショートして3ボタンエミュレーションで使用します。

pic circuit pinouts ps2sunm.hex  top
◆ JoyPad PS/2 Mouse ◆

JoyPad 型 PS/2 マウスです。 CPU は PIC12C509 (内部 CR 発振モード)

circuit1 は JoyPad 組込み型の回路、cicuit2 は JoyPad アダプター型の回路
どちらも同じ hex ファイルで動作します。

pic circuit1 circuit2 pinouts padps2m.hex  top
◆ JoyPad PS/2 Wheel Mouse ◆

 ホイール機能付 JoyPad 型 PS/2 マウスです。 CPU は PIC12F629 (内部 CR 発振モード) 
(ワークRAM とプログラムコードの制限が厳しくなって来たので PIC12F629 を使用)

回路は上記 JoyPad 型 PS/2 マウスと同じで Wheel Mode Switch を追加します。
(組込み型アダプター型 で Wheel Mode Switch の付け方が若干異なります。)

操作はスクロールが有効なウインドウ上で Wheel Mode Switch を押している間
カーソル上下操作でホイール動作になり、離せば通常のマウスカーソル移動になります。
センターボタンは左右のトリガーボタンを同時に押すことでエミュレーションします。

(写真の Wheel Mode Switch は実験的な仮止め状態ですが、この辺りに取り付けて
人差し指で操作すると具合が良いようです。)

(その後、少し柄の長いタクトスイッチを JoyPad に穴をあけて取りつけ
アダプター型の回路を DSUB-9pin のハウジングに入れてみました pic1 pic2 pic3)

circuit1 は JoyPad 組込み型の回路、cicuit2 は JoyPad アダプター型の回路
どちらも同じ hex ファイルで動作します。

pic circuit1 circuit2 pinouts padps2wm.hex  top
◆ JoyPad USB Wheel Mouse ◆

ホイール機能付 JoyPad 型 USB マウスです。 CPU は PIC12F629 (内部 CR 発振モード)
操作は上記 JoyPad PS/2 Wheel Mouse と同じです。

USB コントローラには以前に ユニット化 した USBN9603 を使用しています。

注:回路図中の USB 4pin Header はボード内で扱うレイアウトで
実際の USB ピン配置とは異なります。

pic circuit1 circuit2 padusbwm.hex  top
◆ JoyPad SUN Mouse ◆

JoyPad 型 SUN用 マウスです。 CPU は PIC12C509 (内部 CR 発振モード)
センターボタンはトリガーボタン2つ同時押しで対応。

circuit1 は JoyPad 組込み型の回路、cicuit2 は JoyPad アダプター型の回路
どちらも同じ hex ファイルで動作します。

注) 内部 CR 発振 4MHz から 1200BPS シリアル信号を作るため個体差によっては
誤動作するかもしれません。手元の3個のCPUでは問題無く動作しています。

circuit1 circuit2 pinouts padsunm.hex  top
◆ PS/2 DEBUG CIRCUIT ◆

これは PS/2 物のデバッグ用に作った治具です。

液晶表示/JoyPadのキースキャン/ミニスピーカーによるBEEP音の為に
シフトレジスターを使って 8pin PIC の少ない I/O を補っています。

デバッグ時の CPU は PIC12F629 を使用しています。

写真では光って見ずらいですが液晶表示に表示されたHEX文字列は
PS/2物を扱っているプログラマーなら意味が分かると思います。

(ホストは FMV-5233NU/W ノート、ホットプラグでマウス(ID 0x00) として認識
させた状態です。以降 0x10 が約1秒おきに送られてきます。(非操作時))

pic circuit  top
◆ Universal Timer Controller ◆

汎用タイマーコントローラ PIC12F629 使用。(内部 CR 発信モード)

風呂の換気扇用に作った物ですが値を変更すれば分単位で最大 256分 X 3
現在の HEXファイル の設定値では最大3時間 (60分 X 3) になります。

動作はスイッチを押すと最大時間でタイマーがスタートします。 キーを押してから
3秒以内にさらにキーを押していくと3段階のタイマー設定とOFF状態を繰り返します。
設定後 3秒経過すると点滅が始まり設定モードから運転モードになります。
運転モード (点滅状態) 中にキーを押すとタイマーを終了しOFF状態になります。

タイマーの時間を変更したい場合はプログラムコードの 1 から 3番地の RETLW 値を
変更します。 (現在値はそれぞれ RETLW 60 (343CH)、たとえばこれを RETLW 1
(3401H) に変更すると 3分タイマーになります。) 1 から 3番地のプログラムコードは
LED1 から LED3 のタイマー値に対応します。

時間の誤差が大きい場合はキーを押しながら電源を投入すると LED1端子に 4MHzの
1/32 (125KHz) を出力するので 3FFH 番地の補正値を増減して 125KHz に近くなる
ように修正してください。(補正値は1ステップ 1KHz 位変化します。 大きくすると
周波数は高くなり小さくすれば低くなります。但し内部 CR 発信の周波数は温度や
電源電圧に影響されやすいので長時間タイマーほど誤差は大きくなります。)
注:テストクロックはキーを押している間のみ出力され離すと通常動作になります。

回路図中 の LED1 から LED3 が各タイマー状態表示用で LED4 は蛍スイッチ
のようなスイッチ内に付けるLEDランプ用 (常時点灯) です。(ちなみに LED1 から
LED4 は消費電流を抑えるためダイナミック点灯させています。)

pic circuit timer.hex  top
◆ 'SAIKORO' (Dice) ◆

電子サイコロ PIC12F629 使用。(内部 CR 発信モード)

その名の通りサイコロです、お正月のテーブルゲーム用に作ってみました。
回路図中の左側3個のLEDと残り4個のLEDは極性が逆になっているので注意。
(LEDダイナミック点灯回路の部品点数を減らす為の工夫です。)

pic circuit saikoro.hex  top
◆ RS-232C to IrDA Converter II ◆

番外編の RS-232C to IrDA Converter を 8pin PIC に置き換えた物です。PIC12F629 使用。

通信スピードは 9600bps 固定 (8N1)、CPU を変更しただけなので詳細は こちら

秋月の IrDA 赤外線通信モジュール を使った場合の 回路

pic1 pic2 pic3 circuit circuit2 rs2ir2.hex  top
◆ 4CH Digital Volt Meter (IrDA/RS-232C) ◆

A/D 搭載の PIC12F675 を使用した 4 チャンネル簡易デジタルボルトメーター です。

測定範囲は 0 - 20.46V で 20mV ステップの精度、測定周期は約 140mSEC です。
電圧表示は IrDA か RS-232C 通信でホスト側のターミナルソフト等で表示させます。
(IrDA か RS-232C の選択は 回路図中 の JP1 で動作中も変更可能)

調整は校正されたデジボル等で電圧値が合うように各チャンネルのボリュームを
調整するだけです。但し 写真 にあるような多回転ボリュームが無い場合は、入力
電圧を 1/4 に分圧する部分を固定抵抗と半固定抵抗の組み合わせにしないと
調整がシビアになります。

通信スピードやビット長は IrDA / RS-232C 共に 9600BPS 8N1 固定です。
(ちなみに IrDA 時のパルス幅は 2uSEC です。)

pic circuit voltir.hex  top

◆◆ 番外編 電子工作 ◆◆

◆ SD Card adaptor for GameCube ◆

ゲームキューブの SD カードアダプターを作ってみました。
結線図は corin 氏の ページを 参考にしました。

最初に 作った物 は通常のメモリカード同様にカードエッジコネクタ 1pin 12pin を
ショートしただけのカード全体の抜き差しを想定した 構成 です。このままでも特に
問題ありませんが、SD カードソケットにあるカード検出端子を利用して SD カードの
抜き差しでメモリカードのセンス端子をコントロールするようにしました。

詳しく調べていませんがカードエッジコネクタ 12pin には 3.3V がそのまま来ている
だけで動作中変化しないようです。いちよう 回路図 では 12pin の状態を SD カード
検出端子で制御して カードエッジコネクタ 1pin に出力しています。
めんどうならトランジスタ使わず SD カードソケットのカード検出端子とソケットの
フレームグランドをそのままスイッチとして利用できます。実は基板のパターンも
それを想定してありましたが、ちょっと気持ち悪いので現状の 回路 になりました。

pic1 pic2 circuit circuit2 pic3  top
◆ ADuC70xx I2C writer ◆

アナログデバイス社の ARM micro controller ADuC70xxi 用 I2C ライターです。

実はサフィックスに i の付くデバイスがシリアルダウンローダ用ではなく
I2C ダウンローダ用である事に気がついて急遽作ったものです。
(しばらく JTAG で書いてましたが、シリアルダウンローダの使い勝手
の良さから I2C 版を作りました。)

オーダーガイドによると I2C ダウンロードモード対応は ADuC7019/7020/7021。
ADuC7019 は I2C のみ、ADuC7020/7021 は型番により UART か I2C に対応。

プリンターポート <=> I2C インターフェースのケーブルは昔 I2C メモリ
の為に作ったダイオードのみ使用した 簡易版 ですが問題無く書き込めます。
(いちようバッファー IC を使った 回路 もあります。)

因みにプリンターポートの信号から電源を供給出来るようになっていますが
これは消費電流の小さい I2C メモリ用で ADuC70xxi の場合はターゲット
の電源に接続します。

使い方は HEX ファイルを指定して実行するだけです。 i2cw file.hex
HEX ファイルは intel と motorola フォーマットに対応しています。
バイナリ−ファイルの場合は -b オプションをつけます。

(注:書き込むコードの 0x0014 番地のリザーブベクタは I2C ダウンローダ
モードに移行する時 0xffffffff かどうかチェックしています。この値がそれ
以外の場合ダウンローダモードに移行できません。このライターでは指定した
ファイルの内容に関わらずその部分だけ 0xffffffff に書き換えています。
それから動作不安定の場合 CPU のコア電圧端子や VCC 端子のパスコン
をチェックしてください。 追記:OS が NT 系の場合 giveio.sys が必要です。

pic1 pic2 pic3 pic4 pic5 circuit circuit2 i2cw.lzh  top
◆ JoyPad USB Wheel Mouse for PIC16F84 ◆

PIC16F84 を使った ホイール機能付き JoyPad USB マウス です。

実はこれが USBN9603 を使ったマウス物の始まりで、最初に作った物はバラックのままで
今は無く 写真 は再度作り直した物です。 ファームウエアは当初無理だと思われましたが
1K ワードに何とか収まりました。 (これを無理やり 8pin PIC に置き換えたのがこれです。)

pic circuit padusbwm.hex  top
◆ JoyPad USB Wheel Mouse for UEC-Z07 CPU Board ◆

梅澤無線 の TMPZ84C015 CPU ボード UEC-Z07 を使った ホイール機能付き
JoyPad USB マウス
です。

回路 はボードの CN-B コネクター側のみ使用して PORTA/PORTB に Joypad と
SPI インターフェースの USBN9603 と 4 bit BUS モードの LCD を接続しています。
(LCD はデバッグ用でマウス動作には関係ありません)

写真 の CPU ボードにジャンパーが数本ありますが、ROM 27128/27256
の切換と裏RAM (32K) 増設の為で、マウスの動作とは関係ありません。
(マウスでは 裏RAM は未使用)

pic1 pic2 circuit bin(rom)  top
◆ JoyPad PS/2 Wheel Mouse for AKI-ARM CPU Board ◆

秋月の ARM CPU ボードを使ったホイール機能付き JoyPad PS/2 マウスです。

本来は PS/2 キーボードを外部に接続する為に付けたポートですが、マウスにしてみました。
(他にUSBコントローラ、A/Dコンバータ、LCD I/F を SPI インターフェースで搭載)

なひたふ」 さんの ARM CPU 用 JTAG デバッガを使用しています。
(すばらしいソフトに感謝 !!)

pic1 pic2 circuit sample bin(rom)  top
◆ JoyPad USB Wheel Mouse for AKI-ARM CPU Board ◆

USB コントローラを搭載しているのでホイール機能付き JoyPad USB マウスにしてみました。

回路は 上記回路 に USBN9603 を SPI インターフェースで接続します。
(USBN9603 は 以前 SPI I/F 用に ユニット化 した物を使用。VCC は 3.3V に接続)

注:回路図中の USB 4pin Header はボード内で扱うレイアウトで
実際の USB ピン配置とは異なります。

pic circuit bin(rom)  top
◆ JoyPad USB Wheel Mouse for AKI-H8/3664 CPU Board ◆

秋月の H8/3664 CPU ボードを使った ホイール機能付き JoyPad USB マウス です。

回路 は例によって USBN9603 を SPI インターフェースで接続します。
実際のボードは他に LCD / PS/2 / RS-232C header / 電源回路を搭載。
(USBN9603 は SPI I/F 用に ユニット化 した物を使用。電源は USB の 5V に接続)

pic1 pic2 circuit 3664usbmouse.mot  top
◆ ペルソナ(HPW-200JC) で PIC 開発 ◆

日立製 WindowsCE 機 PERSONA (HPW-200JC) は WinCE マシーンとしてはかなり古い
機械ですが、使わないのももったいないので PIC 開発ツールを移植してみました。

移植した物は picasm と秋月製 PIC ライター用の Linux/BSD 向けに書かれた
ライターソフト akipic です。
PIC/AVR/Z80 その他多くの CPU をサポートした tpasm も移植しました。

プログラムを実行するには、伊藤栄一郎氏作の Console (CEShell) が必要です。

picasm.exe akipic.exe ともに実行バイナリ (SH3 用でペルソナのみ動作確認) のみで
ドキュメントはありません。 (オリジナルのサイトで確認してください)
picasm: http://www.co.jyu.fi/~trossi/pic/
akipic: http://members.jcom.home.ne.jp/pnms/akipic.html

なお、akipic のシリアルデバイス選択のオプションはディフォルトが COM1: なので
ActiveSync ケーブルとクロスケーブル経由で秋月の PIC ライターに接続します。

ちなみに COM4: IR ポートで自作の RS-232C <-> IrDA 変換機 を使ってワイヤレス
赤外線通信でも動作しています。ペルソナでの 初作品 (PIC16F84 使用)

screen1 screen2 picasm.lzh akipic.lzh tpasm.lzh  top
◆ RS-232C to IrDA Converter ◆

ペルソナと秋月の PICライターをIrDA通信で接続する為に作ってみましたPIC16F84使用。

通信スピードは 9600bps 固定、トランジスタ1個の簡単なアンプですが型番不明の PD
(ホトダイオード)で15センチ程の飛距離があります。ちなみに IR の送信側で使用している
GL538 という赤外線発光ダイオードを PD の代わりに差し替えると飛距離 5センチ程ですが
ホトダイオードとして使用できます。(3個パラに接続すると12センチ程の飛距離になります)

PIC のエンコーダー・デコーダー処理は双方割り込みで駆動しますが、IR からの信号は
1.6uSEC と幅が狭いため割り込みで受けても正規のデータかどうか幅の確認ができない
のでノイズがあるとうまく働きません。

現在の利得の低いアンプでは問題ありませんが正規の IRモジュールやアンプを使用した
場合幅の狭いノイズが混入する可能性があります。(ちなみに MAX3131 という石の PD
アンプ部分のみ利用して 実験 してみましたが距離は 70 センチ位行きそうですがひげの
ようなノイズが混入する為 PIC 側の処理がうまく行きませんでした。)

IrDA モジュールを使った動作報告がありました。(秋月のIrDA赤外線通信モジュール)
秋月の IrDA モジュールで 動作確認 しました。8pin PIC 用回路

MAX3131のアンプですが、その後電源のパスコンを強化して動作するようになりましたが
周囲のノイズを受けやすく実用にするには回路全体をシールドする必要があります。
現実的には近距離用と割り切ってTR一石のアンプにするかIRモジュールが良いようです。

(MAX3131単体の RS-232C <-> IrDA 変換器 でも動作確認、飛距離70センチ位あります。
回路 は手持ちの部品で作った為、部品点数が多くなってます。電源は別途必要 (3.3-5V))

なおこの 変換器 は RS-232C から電源供給される為、秋月の PICライターで使用する
場合はライター側を 改造 する必要があります。

それから 図面 のRS-232Cコネクターは DTE に対してはクロスケーブルで接続するピン配置
になっています。周辺機器 (PICライター) に対してはストレートケーブルで接続します。

pic1 pic2 pic3 circuit rs2ir.hex ライターの改造  top
◆ JoyPad USB Wheel Mouse for Visual Memory ◆

Visual Memory USB wheel Mouse ドリームキャストのビジュアルメモリに USBN9603 を搭載してホイール機能付き
JoyPad 型 USB マウスにしてみました。 写真 では液晶モジュールを付けていますが
デバッグ目的に付けたものでマウスには必要ありません。

プログラムを起動するとタイトル画面が出ますが、まだ USBN9603 の初期化は行いません。
A+B ボタンを押すと USBN9603 が接続されていれば初期化を行いマウスとして動作します。
(初期化時又は動作中 USBN9603 の存在を確認出来ない場合は エラー画面 になります。)

操作はこれまでの JoyPad 型ホイール機能付きマウスと同じです。ホイールモードは mode
キーで対応、プログラムの終了は A + sleep キーです。(A .. 左クリック、B .. 右クリック)

現物回路と若干異なっていて元はプリンターポート直結のビジュアルメモリReader/Writer
アダプターでさらにアダプター的にUSBコントローラとデバッグ用の液晶が付けてあります。

回路 は例によって USBN9603 を SPI インターフェースで接続しています。回路図上
点線で囲まれた部分はデバッグ目的の液晶用の回路でマウスには必要ありません。
コネクターは壊れたガンコントローラから流用しました。 ピンアサインは ここ を参照。

(注: この 14pin のコネクタは 7pin づつプラグとソケットの形状をしている為、同じ
コネクター同士刺さる様になっています。そのためコネクタに番号を振ってしまうと
混乱するので VM 基板のシルク番号 を頼りに結線します。)

バイナリ−を直接ダウンロードする場合はこちら => vmusbwm.vms
DreamPassport の場合はこちらからダウンロード => vmusbwm.vmi

pic1 pic2 pic3 pic4 circuit pinouts vmusbwm.vms vmusbwm.vmi  top
◆ JoyPad USB Wheel Mouse for Dreamcast ◆

Dreamcast USB wheel Mouse ドリームキャスト本体に USBN9603 を搭載 してホイール機能付き JoyPad 型
USB マウスにしてみました。 (シリーズ物?そうです!)

当初は拡張バスに CPLD + USBN9603 の構成を考えていましたが、シリアルポート
を調べてみると RX / TX / RTS / CTS 端子が単なる入出力ポートとして設定できる
事が分かったので例によって SPI インターフェースで接続しました。(回路図

今回は USB からの電源は使わず DC 本体から 3.3V を供給して動作させます。
当方 DC 用のシリアルケーブルを持っておらず、本体から直に10pin を延長して尻尾の
ようにコネクターを取り出しています。もし市販のケーブルで電源が取れない場合は
USB の 5V から 3.3V のレギュレーターで動作させても良いかもしれません。但し
その場合 USB のコネクターを抜き差しするたびに USBN9603 の初期化が必要。

動作させるにはシリアルケーブルをPCと接続して Serial-Upload を使って プログラム
を転送・実行させたあと USBN9603搭載のケーブルに繋ぎ代えてコントローラーの
START ボタンを押すと USBN9603 が初期化されマウスとして動作します。

操作はこれまでのジョイパッド型マウスと同じで十字ボタンがカーソル上下左右
A:左ボタン B:右ボタン Y:ミッドボタン X:ホイールモード になります。
ケーブルの繋ぎ代え等で USBN9603 の初期化が必要な場合は START + UP
で再初期化が出来ます。終了は START + Y でメニュー画面に戻ります。
(注:コントローラは純正の物で DC のポートA に繋がっている必要があります。)

追伸: この USBマウスを実際に使おうという人はいないと思いますが USB Rip
あるいはブロックデバイスとして USB GD-ROM ドライブが考えられます。
どなたか作りませんか?(SPI インターフェースがボトルネックになりますが)

pic1 pic2 pic3 circuit pinouts dcmouse.srec  top
◆ JoyPad USB Wheel Mouse for Dreamcast (G2 BUS) ◆

Dreamcast USB wheel Mouse (G2 bus) ドリームキャストの 拡張バスに USBN9603 を搭載 したホイール機能付き
JoyPad 型 USB マウスです。

前回 SPI インターフェースでシリアルポートに接続しましたが今回は
当初考えた拡張バスに CPLD + USBN9603 の構成で作ってみました。

拡張バスについては bITmASTER 氏の回路を参考にしましたが、今回拡張バスを
弄っているうちにいくつか発見がありました。この件はまた別のページに書くつもり
ですが、一番のトピックはアドレスが下位 16bit のみではなく上位 16bit を含む計
32bit のアドレスが 多重化 されていたことです。

回路 は拡張バスからの 3.3V 電源を使用し全て 3.3V 系で動作させます。
拡張バスと USBN9603 のインターフェースには 3.3V 系の CPLD である XC9572
XL-QV44 を使用しました。(ユーザー I/O ピン 34pin 全て使いきっています)
インターフェースは USBN9603 の 2 バイト空間と割り込みがらみにレジスターを
1個追加して計 3 バイトの空間を物理アドレス 0x1400000x にマッピングします。
(実際には 4 バイトアライメントの為 4 倍の空間を消費します)

割り込みは、拡張バスの /IRQ へオープンドレインで接続していますが今回の
USB マウスのソフトでは未使用。(ステータスレジスターから INT をポーリング)
追加したレジスタは MSB bit7 が割り込み許可フラグで初期値はディセーブル
LSB bit 0 には USBN9603 の INT 端子の状態を反映させています。
(USBN9603 の INT 端子は正論理で初期化されていることを前提にしています)

ソフトの方は前回作ったソフトの SPI インターフェース部分を拡張バス用に書き
換えただけです。従って操作方法も前回と同じです。

最新版では拡張バスの解析結果を元に大分変更しています。
拡張バスについて現時点での解析結果を大雑把に書いておきます。
(信号のタイミング等詳細は別のページに改めて書くつもりです)



pic1 pic2 pic3 pic4 pic5 circuit g2usb.jed dcmouse.srec  top

最終版 (version 3) ではアクセスタイムの制御と GPIO ポートを追加しています。
G2 バスの 20pin/22pin によるアクセスタイム制御を行う為 USBN9603 のデータ
バスを G2 バス直結にして(CPLD の端子が足りないので)残った 6 本の端子を
GPIO ポートにしてみました。(アクセスタイムは 160nSEC に設定してあります)

今までの status register は control register と名前を変え direction bit (6bit)
を追加して GPIO ポートの入出力設定に使用します。(電源投入時全て入力ポート)
デバイスは全て byte mapping に変更してあるので byte 単位でアクセスします。
あとマジックコードによるデバイスの enable/disable 機能を追加してあります。

related link: about Dreamcast G2 bus

pic1 pic2 pic3 circuit g2usb3.v g2usb3.jed dcmouse3.srec  top
◆ Dreamcast Parallel Port Rip (alternative 3) ◆

dcpprip version 1.2: (dcpprip12.lzh)
  ver1.1 => ver1.2 (dcpprip.exe: Only the PC side)
    It corresponded to Dreamcast of abnormal checksum.

dcpprip version 1.1: (dcpprip11.lzh)
  ver1.0 => ver1.1 (dcpprip.exe: Only the PC side)
    o pre gap bug fix ... The data size was large in a part of track.
    o add '-b" option ... data track raw binary mode option (slowly)
    o output 'disc.gdi' file ... for nullDC

Dreamcast tools:
  sum.exe -- calculation of checksum (crc32/md5/sha1) ver1.0 (sum.lzh)
    usage: sum [option] filename
      option:
        -t ... input list from 'track.txt'
        -g ... input list from 'disc.gdi'
        -o ... rom style output "rom ( name ... )"
        track03.bin ex.) sum track03.bin > sum.txt
        all track from 'track.txt' ex.) sum -t > sum.txt
        all track from 'disc.gdi' ex.) sum -g > sum.txt
        all track from 'disc.gdi' & rom style output ex.) sum -g -o > sum.txt

  iso2bin.exe -- .iso image to .bin image converter ver1.0 (iso2bin.lzh) . .
    usage: iso2bin in_file out_file start_sector [option]
      ex.) iso2bin track01.iso track01.bin 0
      ex.) iso2bin track03.iso track03.bin 45000

  bin2iso.exe -- .bin image to .iso image converter ver1.0 (bin2iso.lzh)
    usage: bin2iso in_file out_file
      ex.) bin2iso track01.bin track01.iso

  tt2gdi.exe -- track.txt to disc.gdi converter. (tt2gdi.lzh)
    usage: tt2gdi track.txt
     tt2gdi track.txt > disc.gdi

  pmon.exe -- ParallelPort Monitor small tool. (pmon.lzh)
    right click memu: select iobase (default: 0x378) / set direction

bin image ripping tips: (for dcpprip ver1.0)
  dcpprip -s <start>,<size>,<'a'(2352)> trackxx.bin ... '-s' sector dump option
  get track03.bin ex.) dcpprip -s 45000,504150,a track03.bin

o add pull-up register. (for 'STB' signal of parallel port) c1 c2 -- 2006/4/5
 Attention:
  Note type Computer: Please try by the resistance of 510 ohm when not
   effective in 1.5K ohm pull-up resistor.
   Still, please change the dumping resistors from 100 ohm to 56 ohm when
   not stabilizing.
  Desktop type Computer: The pull-up registor is not needed.


[[ Dreamcast ParallelPort Rip ver1.0 ]]

o Spec of PC:
  1) OS is Win9x. (about NT system.)
  2) parallel port. (default i/o base address 0x378)
  3) parallel port bios setting is 'EPP' or 'bi-direction' mode.

o Cable of PC Parallel Port <=> Dreamcast Serial Port: (see circuit)
  ParallelPort (DSUB-25PIN) ( 1)-<100ohm>------(4) DC-Serial (10PIN)
  ParallelPort (DSUB-25PIN) ( 2)-<100ohm>------(5) DC-Serial (10PIN)
  ParallelPort (DSUB-25PIN) ( 3)-<100ohm>------(6) DC-Serial (10PIN)
  ParallelPort (DSUB-25PIN) ( 4)-<100ohm>------(7) DC-Serial (10PIN)
  ParallelPort (DSUB-25PIN) (18)---------------(3) DC-Serial (10PIN)
   '<100ohm>' is dumping register. (necessity !)
   About the communication of a parallel port.

 Attention:
  Dreamcast might not start when the power supply of DC is turned on with the
  cable connected with PC.
  In that case, please connect the cable after starting Dreamcast.
  The reason why DC doesn't start is that it is a terminal to which a part of terminal
  of 'SCI' interface decides the operation mode of SH4.


 * Cable of measures when starting. (see circuit2)

o Contents of archive: (dcpprip.lzh)
  dcpprip\dcpprip.gif ------- dcpprip cable circuit.
  dcpprip\pc\dcpprip.exe --- dcpprip program for pc.
  dcpprip\dc\ip.bin -------- 'ip.bin' for Dreamcast boot cd.
  dcpprip\dc\1st_read.bin -- '1st_read.bin' for Dreamcast boot cd. (scrambled)
  dcpprip\dc\dcpprip.srec -- 'dcpprip.srec' for Serial-Upload.

o Example:
  help.) dcpprip -h
  interface check.) dcpprip -i
  get all track.) dcpprip
  get track 3 and 5.) dcpprip -t 3,5
  only check TOC list.) dcpprip -t
  get sector dump.) dcpprip -s 45000,16,d dump.bin
  get bios rom.) dcpprip -m 0,0x200000 bios.bin
  get flash memory.) dcpprip -m 0x200000,0x20000 flash.bin

o Speed: (used PC: pentiumII 266MHz (old pc!))
  physical speed about 100Kbytes/sec. (x10 of Serial-Rip. 1/3 of BBA-Rip)
  'DreamPassport2' ripping time is 31min. (compress of an unused sector is effective.)
  'SonicAdventure' ripping time is 170min. (contents of full size.)

Ripping it was not interested in me.
However, to depreciate 'BBA', it started.
To our regret, it was not suitable for the speed of 'BBA'.

pic1 pic2 pic3 pic4 pic5 pic6 pic7 circuit circuit2 pinouts dcpprip.lzh  top
◆ NAOMI PIC ParallelPort Rip ◆

pic1 pic2 pic3 pic4 circuit npicrip.lzh npicripw.lzh  top