raspberryPiを使用して、Linux上でZ80のソフトを作成して、raspbrreyPiに接続したZ80ターゲットボードにUSBシリアル通信でソフトのダウンローダや制御をおこなっています。
raspbrreyPi上のGTK termでモニタを見ながら行っていますが、なんとかssh経由で、手元で使用しているWindowsPCから操作できないか思案していました。

コマンドラインで使用できるminicomが今回の要求を満たしてくれそうなのでraspbrreyPiにインストールし、使用してみました。

Windows側はTera TermでSSHできる接続環境を想定しています。
raspberryPiのOSはRaspbian(10)です。

今回は、raspberrypiでは一般ユーザーでのシリアル接続を行いますので、minicomも一般ユーザーで接続できる環境を構築していきます。

まずは、USBシリアル通信がルート以外でも使えるようにします。
ターゲットのUSBシリアル端末をraspberryPiのUSBに接続して立ち上げます。
今回のターゲットのUSBシリアル端末はAE-UM232R(秋月電子)となります。

raspberryPi はssh経由でWindowsPCと接続します。

isusbを実行して、USB関連のデバイスを確認します。
その中で接続しているUSBシリアル端末のIDNoを確認します。

$ lsusb
Bus 001 Device 006: ID 192f:0416 Avago Technologies, Pte. ADNS-5700 Optical Mouse Controller (3-button)
Bus 001 Device 004: ID 04f3:0103 Elan Microelectronics Corp. ActiveJet K-2024 Multimedia Keyboard
Bus 001 Device 005: ID 1bcf:0c31 Sunplus Innovation Technology Inc. SPIF30x Serial-ATA bridge
Bus 001 Device 008: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 001 Device 007: ID 0424:7800 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


AE-UM232RはFT232を使用しているので、リストから Bus 001 Device008が該当します 。IDは 0403:6001となります。
このIDを基に、デバイスのルールを追加します。

下記デレクトリィに移動します。

$ cd /etc/udev/rules.d/

新規にルールテキストを作成します。ここでは 50-udev.rulesとしています。

$ sudo vim 50-udev.rules

ATTRS{idVendor}==にIDNoの先頭0403、ATTRS{idProduct}==に
IDNoの 後方6001にします

KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", GROUP="uucp", MODE="0666"

minicomをインストールします。

$ sudo apt-get install minicom

再起動したのち、minicomを実行します。-sオプションを付けて起動します。
この時点で、シリアル端末にUSBシリアル回線が認識できるように電源を投入しておきます。
デフォルトの設定がtty8になっていて、設定ファイルを書き込めないので、まずtty8からttyUSB0に変更します。
設定ファイルの書き込みはルート権限になっているので、ひとまず、sudoで実行します。

$ sudo minicom -s

設定から シリアルポートを選択します。

A を入力

/dev/ttyUSB0 と入力

2回 Enterしてから "dfl"に設定を保存”を選択します
”保存しました”の表示が出ます。

/etc/minicom/に設定ファイル minirc.dfl が作成されています。
$ cd /etc/minicom
$ ls
minirc.dfl

この設定ファイルをユーザー(ここではhoge)にコピーします。
$ cp minirc.dfl ~/.minirc.dfl
ユーザーホームに戻って、オーナーhogeに変更します。
$ cd ~
$ sudo chown hoge:hoge .minirc.dfl

設定ファイルでターゲットボードに合ったボーレートを変更します。
$ vim .minirc.dfl

# Machine-generated file - use "minicom -s" to change parameters.
pu port             /dev/ttyUSB0
pu baudrate         38400
pu addcarreturn     Yes

minicomを実行します。

$ minicom
ターゲットのZ80ボードのモニタを起動してみました

でもよく見ると改行がうまくいってないようです。
これを解決する方法は2つあります。
もし、Tera Termで接続しているのなら
   設定→端末→改行コードの受信を CRからAUTOに切り替えます。
minicomでも対応できます。
Ctrlキーを押しながらAキーを押し、そのあとZキーを押します。
メニューが出てきます。

Linefeedを追加...Aで Aキーを入力します。
これで改行がうまく機能しました。

終了は、 Ctrlキーを押しながらAキーを押し、そのあとZキーを押します。
メニューが出てきます。 そのあとQキーを押します。「リセットせずに終了しますか」で「」はい」でEnterします。

今回のZ80ターゲットでは、HEXファイルをダウンロードする機能がありますが、minicomでHEXファイルをダウンロードすることもできます。

まずは、Z80ターゲット側でHEXダウンロードのコマンドを実行します。
ここでは lコマンドになります。


Ctrlキーを押しながらAキーを押し、そのあとZキーを押します。
メニューが出てきます。
「ファイルの貼り付け.Y」を選択します。Yキーを押します。
ホームのディレクトリ一覧が表示されます。

該当のディレクトリに矢印キーで移動します。
ディレクトリに入るには、スペースキーを2回押します。
(下記の画面では一部ディレクトリ内容を消しています)

ダウンロードしたいファイルは、スペースを押して、バックが白になります。
(下記の画面では一部ディレクトリ内容を消しています)

この状態でEnterを押すことで、ダウンロードが開始されます。


うまくダウンロード出来たみたいです。
Z80関連のブログも上げていますので興味ありましたら
www.rikachann.jp から 「Pinecone Blog」 をご覧ください。

minicomの関連記事
  • minicomでコマンドラインシリアル通信をSSH経由で楽々通信!
おすすめの記事
未分類
windows環境でのシリアル端末は、TeraTermが有名ですが、Ubuntuで 簡単に導入できるGUIのシリアル端末を探してみました C...
未分類
Raspberry Pi が巷では流行ってるので、今どき珍しいですが、Z80の開発環境を構築したいとおもいます。とりあえず、セットアップは終...
asxxxx
いろんな 8bit系CPUのアセンブラをサポートしているasxxxxをインストールして、z80との連携を探ってみたいと思います。 まずは、a...