Abz80 in RX62n
mbedに引き続き、RX62NにもZ80CPUを入れました。
Interface 2011年5月の付録基板RX62Nがターゲットです。
2011.12.26
DAA命令にオプションを付加しました。
1.スピード優先で従来のテーブルを使用する。
2.サイズ優先で、テーブルは使用せず、bz80.c の void DAA2( void )を実行します。
膨大なテーブル uint16 DAATable[0x800] が無効になります。
define.h の以下のdefineを操作する。
#define DAA_SPEED // 1.スピード優先の場合生かす
// 2.サイズ削減優先の場合、defineをコメントにする
Z80のサンプルは、2011.11.03版のz80_testフォルダの中を参照してください。
2011.11.03
HEWですが、2011年11月現在、試用期間が過ぎ制限がかかっていました。
が、制限内に収まっていて問題なくコンパイル、リンクできました。
制限は、リンクサイズが128k以内の条件のようです。
SmallCircuitさんのブログで知ったのですが、この付録基板のCPUは、512KbyteのFlashROM, 96KByteのSRAMを搭載しているようです。
ということで、64kバイトのフルRAM構成でリニアなZ80メモリ空間を実装することができました。
SmallCircuitさんの情報
http://ledmyturn.blogspot.com/2011/09/rx62n-z80-httpwww.html
準備
CN2よりシリアルポートを引き出します。
このシリアルポートがHEXファイルの転送と後のZ80のSIOポートになります。
RX62N基板のコネクタ
CN2 15 RXD2 橙色
CN2 16 TXD2 黄色
CN2 10 GND 青色(黒)
色は、ストロベリーリナックスで購入したUSB-TTLシリアルコンバータ(3.3V)につなぐ場合の線の色(色は購入時期により異なるようです。要確認)です。
フラッシュの書き込み
フラッシュの書き込みは、ルネサスの評価版のFDTを使用します。
ルネサスでダウンロードします。登録が必要です。
フラッシュ開発ツールキット 【無償評価版】フラッシュ開発ツールキット V.4.08 Release 00
FDTのインストールは、インターフェイス5月号のP80を参照してください。
JPP1を短絡した状態で、USB接続するとPCはUSBドライバのインストールを始めます。
P82に自動検索でインストール可能とありますが、私の場合、違うドライバを認識して、
インストールしてしまい正規のドライバに修正するのにかなりの時間を費やしてしまいました。
FDTをデフォルトの位置にインストールすると、ドライバの位置は、
C:\Program Files\Renesas\FDT4.07\Drivers\for_32bit\Hmse_USB
になります。必ず、このドライバの位置を指定してドライバのインストールを行いましょう。
デバイスマネージャで確認すると、私の場合、自動認識では、違うドライバ
「Renesas USB1653 USB Boot Mode Device」がインストールされてしまいました。
指定後は正規のドライバ「Generic Boot USB Direct」となり正常動作しました。
参考
Flash Development ToolKit 4.08 Basicで、
C:\WorkSpace\rx62n\abz80\abz80\Release\abz80.mot (パスは、私の環境です)
をダウンロードします。
完了したら、通常運用の状態にします。
通常運用
USBを引き抜きいったん電源をきります。
JPP1オープンにします。(他のジャンパーはすべてデフォルト状態です)
再びCN5のUSBをPCに接続し電源を供給します。(USBは電源供給のみの機能です)
開発環境
ルネサスの評価版のHEWを使用します。
60日間は、フルスペックで使用できるようです。
USBやシリアル通信を使用したシリアルモニタを使用したデバッグ環境は、インターフェイス5月号の
記事を参考にしてください。
ここで紹介しているABZ80は、ROM化のため、シリアルモニタは使用していません。
USB版シリアル接続HEWモニタの書き込みやドライバのインストールは不要です。
単に、ソースファイルの編集、コンパイル、リンクをするだけに、HEWを使用します。
HEWをルネサスよりダウンロードして、インストールしてください。
RXコンパイラパッケージ 【無償評価版】RXファミリ用C/C++コンパイラパッケージ V.1.02 Release 00 Oct.20.11
環境が整ったところで、ソース一式を、c:\workspace\rx62n\ というディレクトリを作成し、そこで解凍します。 HEWは、C:\WorkSpace\rx62n\abz80 内の abz80.hws をダブルクリックすると開きます。
コンパイル、リンクは、「ビルト」→「すべてビルド」を行います。
フラッシュの書き込み時には、 C:\WorkSpace\rx62n\abz80\abz80\Release\abz80.mot を指定します。
mbed版と同様に、Z80のコアは、TAKEDAさんのCP/M Player for Win32のSource (4/2/2004) です。
SCIのプログラムは、ChaNさんのFatFs Moduleのフログラムを使用させていただいています。
/* FatFs Module Sample Program / Renesas RX62N (C)ChaN, 2011 */
ABZ80の仕様
メモリマップ
0000H - FFFFH RAM (64KフルRAM)
I/Oマップ
00H rw serial data
01H r serial status
01H w led port (bit0:LED1)
シリアルの設定
RX62N SCI2(TXD2A,RXD2A) port
19200bps
8bit
1bit
non
ターミナルの最初がバケてしまいます。
CPUのTXD2A端子にプルアップ抵抗をいれると解消されました。
Z80のテストプログラム
1.z80_testフォルダの中参照してください。
2.おかもとさんのモニタープログラム
rx62n用に移植しました。十分移植後の動作確認ができていませんが、基本的には使用できそうです。おかもとシステムさんのオリジナルモニタープログラム
3.このAbz80 CPUで、CP/M80を動かしています。
CP/Mねた
リンク
糠を足せ(仮)!かなり影響を受けています。DE1、今回のmbedも。文章の書き方が好きです。
エミュレータの神様 TAKEDAさんここから始まりました。CP/M80いいね。
Z80 DAA命令の詳細 まるひろさん小さなフォントは芸術ですね。
おかもとシステムさんFPGAでZ80のIP、T80をいち早く立ち上げられていました。ここで、得たものは大きかったです。