« RX62NでSDRAMにアクセスする方法 | トップページ | RX62Nにおけるイーサネットコントローラの使い方(2) »

2011.04.24

RX62Nにおけるイーサネットコントローラの使い方(1)

ルネサスRX62Nにはイーサネットコントローラが内蔵されています。

この使い方がわかってきたので、備忘録に書いておきます。
検証に使うのは特電RX62N評価ボード。
基板上にイーサネットのパルストランス内蔵コネクタが乗っています。
Rx62n_lan_ok

イーサネットのサンプルプログラムは、ルネサスのWebサイトのRXマイコンのコーナーにある「アプリケーションノート サンプルコード」にあります。この中からEthernetで絞り込むと、「RX62Nグループ UIP TCP/IPプロトコルスタックデモンストレーション アプリケーションノート DEC.27.10 Rev.1.00 R01AN0169JU0100 source」というのが見つかりますので、ダウンロードします。
Renesas_web1

2段なって出てくるので、下の段の、sourceをクリックしてダウンロードします。
an_r01an0169ju_rx62n_ether.zipというファイルがダウンロードされるので、解凍します。
解凍したプロジェクトフォルダをC:\WorkSpaceに移動し、RX_uIP.hwsというプロジェクトファイルをHEWで開きます。
Hew_ethersample

ぱっと見て非常にたくさんのファイルがあり、どこからどう手をつけていいか分かりません。
src\bsp、src\driver、src\uip、src\user-appという4つのフォルダにソースコードが入っています。src\bspはボード特有の処理、src\driverはPHYチップを叩くための低レベルな階層、src\uipはオープンソースのTCP/IPプロトコルスタック、src\user-appはユーザアプリケーション(CGIからLEDをコントロールするためのプログラム)です。

何はともあれ、コンパイルしてみましょう。すると・・・
Hew_limit

なんと、HEWの評価版の128kB制限にひっかかってしまうではないですか!?
そんなに巨大なコードなのかと思いきや、どうやら、コード中に埋め込まれているWebページのデータが大きかったようです。具体的にいうと、an_r01an0169ju_rx62n_ether\workspace\src\uip\apps\webserver\httpd-fsdata.cというファイルの中にあるdata_RX62N_jpg[]という配列です。これを
static const unsigned char data_RX62N_jpg[] = {
  /* /RX62N.jpg */
  0x2f, 0x52, 0x58, 0x36, 0x32, 0x4e, 0x2e, 0x6a, 0x70, 0x67, 0,
/*
  0xff, 0xd8, 0xff, 0xe0, 00, 0x10, 0x4a, 0x46, 0x49, 0x46,
・・・
・・・(中略)
・・・
  0xf2, 0x9c, 0xd6, 0x9c, 0x27, 0x8c, 0xcb, 0x69, 0x54, 0x73,
#endif
  0x4a, 0x57, 0x71, 0x8b, 0x97, 0xfe, 0x5, 0xcb, 0x7f, 0xc8,
  0xff, 0xd9, 0};

として短くします。すると、コンパイルが通るようになります。

このサンプルコードはルネサスのスタータキット用に作られているので、ボードにあわせて修正すべきなのは、以下の7つのファイルです。

① src\bsp\hwsetup.c
汎用I/Oポートの設定が書かれています。LEDやスイッチとして使われるポートです。動作の核心となる部分ではありません。修正しなくても動きますが、変な端子から信号が出ないよう、ボードにあわせて変更したほうがいいでしょう。
Modify_1

② src\bsp\rskrx62n.h
前述のI/Oポートに関して書かれている部分を書き換えます。LEDはCGIの中から操作されたり、タイマで点滅させるためにあるようです。スイッチは使われていないようです。
Modify_2

③ src\bsp\lcd.c
ルネサススタータキット用のLCDに表示するためのプログラムですが、必要なければ中の関数をごっそり削除します。また、void DisplayString(unsigned char position, _far char * string)という関数が呼び出されたときに自分の関数を呼ぶようにすれば、LCDに表示されるメッセージをシリアルコンソールに出したりすることもできます。
Modify_3_2

あとは、src\bsp\intprgを書き換えて割り込みを使えるようにしたり、src\bsp\resetprg.cを書き換えてUARTの初期化をしたり、src\bsp\stacksct.hを書き換えてスタックサイズを増やしたりということを、お好みで行います。

次の記事では、核心部分であるイーサネットコントローラのコードの書き換えを行います。

|

« RX62NでSDRAMにアクセスする方法 | トップページ | RX62Nにおけるイーサネットコントローラの使い方(2) »

コメント

レアで有用な情報をありがとうございます。
2016年9月現在、Renesasのサイトで、R01AN0169JU0100について検索をしましても、当該情報を入手できないようです。
恐れ入りますが、当該アプリケーションノート及び、ソースをお譲りいただけませんでしょうか。
よろしくお願いいたします。

投稿: 吉野匡法 | 2016.09.22 19:14

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« RX62NでSDRAMにアクセスする方法 | トップページ | RX62Nにおけるイーサネットコントローラの使い方(2) »