MLAのFrameworkでTCP/IPを試して見るその5
(PIC24EP256MC202でtcpip stackを操作:XC16編)

〔PICの動かせ方入門に戻る〕
〔その1〕 〔PING〕 〔TELNET〕 〔SMTP〕   〔TCPclient〕 〔TCPserver〕 〔HTTPserver〕


前ページの"その1"では、FrameworkのTCP/IPスタックファイルの話と、tcpip プロジェクト作成方法の
話を書きましたので先ずはそちらからご覧下さい。

その4までのページで[PING/[TELNET]/[SMTP]は、PIC18F2xK22(XC8)での記事でしたが如何も
メモリの関係でPIC24EP256MC202(XC16)にした方が良さげな雰囲気なのでぇ、これ以降の
TCP/IP実験はこのMCUに切り替えます。
ですので、このページは前回まで実験した、[PING/[TELNET]/[SMTP]をPIC24EP256MC202で
動作させます。

《PING》

その2の<PING>記事と同じ実験です、詳しくはそちらを参照下さい。
”実験4”で、PCからPINGする場合に”ping PIC18F26K22”と実行させていたと思います、
ここでは、”ping 24EP256MC202”で行いましょう。

《TELNET》

その3の<TELNET>記事と同じ実験です、詳しくはそちらを参照下さい。

《SMTP》

その4の<SMTP>記事と同じ実験です、詳しくはそちらを参照下さい。

《ダウンロードファイルにつ いて》

↓ここからプログラムソースをダウンロードして下さい。
XC16_ENC28J60.zip
ファイルの説明とプロジェクトの作成方法は”その1”を参照下さい。
MPLAB X IDE v3.60MPLAB(R) XC16 C Compiler Version 1.30コンパイラを使用しています。

※ ダウンロードファイルに含まれる"skI2Clib.c/skI2Clib.h"ファイルは16ビットMCU専用
  なっています、このファイルについてはこちらのページを参照下さい。
※ "ENC28J60.c/ENC28J60.h"ファイルはこのバージョンからXC8/XC16両方でコンパイル可能です。

《実験回路》

ENC28J60モジュールの ピン構成
ENC28J60モジュール VCC
電源3.3V パケット転送中動作電流180mA
十分に流せる電源を準備しましょう。
GND
グランド
RESET
LOWでリセットなので通常はHIGH
CS
SPIのチップセレクト入力ピン
SCK
SPIのクロック入力ピン
SI
SPIのデータ入力ピン
SO
SPIのデータ出力ピン
WOL
ウェイク アップ用割り込み出力
新チップはNCになっている。
INT
割り込み 出力ピン
CLKOUT
クロック 出力ピン
灰色背景色のピンは今回利用しません。


実態配線図

LCD表示 器についての配線等の詳細はこ ちらのページを参照下さい。
又、半固定抵抗は10kΩか20kΩ辺りで良いでしょう。

ENC28J60 のRESETピンについて
RESETピンはPICのRA4ピンに接続されていますが、これは"ENC28J60,c"の初期化関数(MACInit)でHIGHを出力しているだけ なので、直接VDDに配線すればPICピンが1本利用可となります。
その際は、"system_config.h"の"#define ENC_RST_IO"をコメントにします。

回路電源について
ENC28J60モジュールとPIC24EP256MC202が3.3Vなので回路電源は3.3Vです、
ENC28J60自体の消費電流がパケット転送中で最大 180mA、転送していない時で120mAと
結構電気食いで変動も激しいです。十分に流せる安定化された電源を準備しましょう

《SSLについて》

PIC18F26K22(XC8)ではSSLがサポートされていなくて動作出来ませんでしたが、
今回はXC16になったので、"SMTP"の構成でSSLを動作させて見る事にしました。
実験したファイルは"TestSMTP_japanese.c"です、このファイルに下の様に追記しました。

#if defined(STACK_USE_SSL_CLIENT)
            SMTPClient.ServerPort = 465 ;              // SMTPサーバーのSSLポート番号
            SMTPClient.UseSSL = true ;
#endif

"STACK_USE_SSL_CLIENT"のコメントを外しSSLモジュールを追加します

追加されるファイルは
"ssl.c"/"random.c"/"common\big_int.c"/"commom\big_int_helper.S"
の4つのファイルです。

結果は上手く動作させる事が出来ませんでした。
”smtp.c”で TCPOpen( )で回線を接続した後にTCPStartSSLClient( )を実行させると回線が切れて
”SMTP_CONNECT_ERROR”になってしまいます。
記述が足りないのか?ちょっとぉ、分けワカメ状態になりこれ以上の追及は中断しました。m(_ _)m

《その他》

実験風景
ENC28J60+24EP256MC202での実験風景です。

次回以降は24EP256MC202を使いHTTPのクライアントとサーバーを行う予定です。





【きむ茶工房ガ レージハウス】
Copyright (C) 2006-2017 Shigehiro Kimura All Rights Reserved.