うさちゃん印のRabbit4000、Z80に似た8ビットの命令セットを持つちょっと古いけれども強力なマイコン、を手に入れてインストールをし動作確認をいたしました。今回から、少しづつ「うさちゃん印」を動かしていきたいとおもいます。まずは「売り」の機能Ethernet I/Fの動作確認から。外からPingしてお返事を確認してみます。
※「うさちゃんと一緒」投稿順indexはこちら
冒頭のアイキャッチ画像にプロトタイピングボードに取り付けた状態のCPUボードの様子を掲げました。インストール時からの変更点は以下です。
-
- プロトタイピングボードに信号を取り出すために50ピンのピンヘッダを半田づけした。これでブレッドボード等に接続しやすくなりました。
- プロトタイピングボードに取り付けられていたバッテリ・バックアップRAM用のCR2032電池を交換した。購入時に電池が付属していてちょっと驚いたのですが、結構長いこと在庫になっていたのではないかと思われます。調べたらまだ生きてました。けれど電圧ドロップ気味なので新品と交換。
- EthernetケーブルとCPUボードに取り付けました。実は取り付けた後、ソフトが動かん、動かんと困っていたのですが、ケーブルのRJ45コネクタへの取り付けがまずかったです。ちゃんと取り付けるとRJ45の横にあるLED2個のうち、緑の方が点灯します。ケーブル取り付けたらちゃんと確認しないと。なお、通信中はもう一方のオレンジのLEDが点灯します。
Pingにお返事するためのサンプルソース
インストールした Dynamic C 10.72には大量のサンプルソース、ライブラリ等が含まれています。その中に ping に反応するだけのプログラムも含まれています。
以下のマニュアルの
Dynamic C An Introduction to TCP/IP
6.2 Skeleton Program という項目に、ミニマムのEhternetプログラム例ということで PINGME.C というプログラムが紹介されています。上記マニュアルによると以下のパスに格納されていることになっています。
~インストールディレクトリ~\SAMPLES\TCPIP\PINGME.C
しかし、10.72版調べてみると、以下のパスにありました。
~インストールディレクトリ~\Samples\tcpip\icmp\PINGME.C
さらに、テスト用のIPアドレスの静的設定などの肝心な部分ですが、上記マニュアルでは、以下のようなマクロで設定するように説明されています。
#define MY_IP_ADDRESS "10.10.6.101" #define MY_NETMASK "255.255.255.0" #define MY_GATEWAY "10.10.6.19"
しかし、上記では動作しませんでした。HELP画面から、TCPCONFIGを検索すると、以下のようなマクロで設定するということが分かりました(XXX, YYY, ZZZなどは所望のアドレスです。)
#define TCPCONFIG 1 #define _PRIMARY_STATIC_IP "192.168.XXX.YYY" #define _PRIMARY_NETMASK "255.255.255.0" #define MY_GATEWAY "192.168.XXX.ZZZ" #define MY_NAMESERVER "192.168.XXX.ZZZ"
若干、PDFのマニュアルファイルは古いようなので、都度 CTRL+H押して、HELPウインドウを確認した方が良いかもしれません。HELPウインドウも説明は充実しています。
実際の動作
Dynamic CのStdioウインドウを開いておいて、PINGMEプログラムをRunすると以下のようなメッセージが出てEthernet I/Fが生きていることが分かります。
無限ループで回っているので、外部からpingをかければ応答が返ってきます。WindowsPCから ping かけたところが以下に。
その他の設定
前回、Stdio画面の上で何やらキャラクタが跳ね回るPONGプログラムを動かして動作確認しました。そのとき Stdio 画面のデフォルトのフォントがマトモに読めなかったので、設定を変更して、以下のようにいたしました。フォントサイズは14で、老眼の目にも優しい設定。なお、Stdioは下記のようにDebug Windowsの中にありますが、EdhitorのフォントはEditorにあるなどFontの設定はアチコチにあります。
また、コンパイラは、「アプリ」部分のオブジェクトコードをFlashに配置するだけでなく、RAMにも配置できます。なお、BIOSと呼ばれている部分は常にFlashの最下位から置かれるようでした。毎度、アプリ部分をFlashに書き込むのもなんだかな~と思ったので、以下の Store Program in という項目で、RAMと指定してみています。ホントにRAMに書き込まれていて何番地にあるのかはまだ確かめてないです。
まあ、ともかく うさちゃん、Pingにお返事していてよかった。