【自作基板の概要】 (Ver3.60に内容更新)
ここで自作基板にTCP/IPスタック デモプログラムを移植してみます。
自作基板は下図のような外観でPIC18F2620を使用しています。
右中央がPIC18F2620
左中央がENC28J60のDIPタイプ
その右の1列のICソケットはSOICタイプ
用の28ピン変換基板が実装できるように
するためのもの
左端がパルストランス内蔵型RJ45コネクタ
【自作基板の回路構成】
この自作基板の回路図は下図のようになっています。
マイクロチップ社のHPC Explorerボードと同じ入出力デバイスを付けていますが、
28ピンのPICですので、ポートが異なっています。
またRS232CのインターフェースICは外付けで別基板となっていますので、コネクタ
だけとなっています。
CN3はENC28J60のSOICタイプの実装のために600mil幅の28ピン変換アダプタが
実装できるようにするためのソケットです。
【デモプログラムの修正】
本基板用に使用したデモプログラムは、デモプログラムの構成の中で
ウェブサーバ用のデータをプログラムメモリに格納する構成のものです。
TCP/IPスタックがVer3.60になって内容が整理され、自作基板への移植が
簡単にできるようになりました。
プログラムの移植に必要な変更は下記です。
ファイル名 場所 修正内容 Compiler.h 554行目以降 // Define your own board hardware profile here
の行の下に自作ボードのI/O設定を追加
追加した行は下記参照
★ 追加したI/O指定行StackTsk.h 211行目 #define MPFS_USE_PGRMのコメントをはずす MainDemo.c 134行目 Config設定にPIC18F2620を追加
#if defined(__18F2620) || defined (__18F8722)
【デモプログラムのプロジェクト生成】
プロジェクトを生成するときのプロジェクトの設定です。
・Project→Build Options → Project
→ MPLAB-C18タブ → CategoriesのGenaral
・Default storage classでOverlayを選択
・Treat 'char' as unsignedにチェック追加
・Macro DefinitionでAddボタンを押して「YOUR_BOARD」を追加
これでプロジェクト設定は下図のようになります。
またプロジェクトに登録するソースファイルとヘッダファイルは下図のようにします。
Linker Scriptsに、MCC18フォルダ内にある18f2620.lkrを追加登録します。
これであとはBuild Allとすれば正常にコンパイルが終了するはずです。
【動作試験】
移植作業で実験中の自作ボード。RS232Cインターフェースは別基板で
接続している。
ウェブサーバとしての機能はすべて実行可能です。
・可変抵抗によるアナログ値表示
・スイッチの状態表示
・LED2個の制御と状態表示
・初期設定のUART送信
実際に表示されるウェブページは下図のようになりオリジナルと全く
同じとなっています。
【参考情報】
《参考》 以下はTCP/IPスタックがVer3.03のときのもの
このプログラム移植のために必要となった修正は下表のようになっています。
ファイル名 場所 修正内容 StackTsk.h 153行目
163行目
167行目
217行目
330〜333行目#define STACK_USE_HTTP_SERVERのコメントをはずす
#define STACK_USE_DHCPのコメントをはずす
#define STACK_USE_ANNOUNCEのコメントをはずす
#define MPFS_USE_PGRMのコメントをはずす
デフォルトIPアドレスの変更(必要な値に変更)Compiler.h 91-98行目
104行目
105行目
106行目
108,109行目
139〜159行目
DをBに変更
B3をC1に変更
B4をC2に変更
コメントアウト
B0をB6に、B5をB7に変更
DポートとEポートのTRIS、PORT定義コメントアウト
MainDemo.c 144行目
146行目
260行目
323行目
689、875行目
697、879行目
899行目
1076行目
1080行目
1081行目Configの指定 __18F8722を __18F2620に変更
PWRT=OFFを PWRT=ON に変更
PORTB0をPORTB6に変更
LATD0をLATB2に変更
LATD5をLATB3に変更
LATD6をLATB4に変更
RB0をRB6に変更
TRISA=0x23 を TRISA=0x03に変更
TRISD = 0x00 を TRISB = 0xC3に変更
LATD=0x00 を LATB =0xFFに変更
ENC28J60.c 63,64行目
65,66行目B5をC1に変更
B3をC2に変更