PIC18F67J60 を使った、共立の Ethernet PIC 再開 (備忘録)

とある工作をしようと思い、共立エレショップが売っている Ethernet 対応 PIC マイコンボードを使おうとしています。

前回は、こんなことしてました。

非常に良くできたボードかつマイコンで、趣味で Ethernet 対応のシステムを作るときには便利です。消費電力も低く、また、Microchip の TCP/IP スタックは、私の経験ではかなり頑健です。HTTP サーバーを動かしておくだけなら、1年くらい放置しておいても、その間、落ちたりしたことはありません。
PIC の数少ない難点は、コンパイラが高価だったり ISO C 準拠でない部分に癖が強いことですが、それ以外には大きな不満はないです。最近は Atmel AVR にも魅力を感じますが、Ethernet の対応は、よく分かりません。
さて、最近老境の影が差すことも多いので、なんでもメモしておきます。前回もこのボードを使って工作したので、ほとんど記憶を失っています。

  • 前回使った TCP/IP スタックのバージョンは、v4.51 っぽい。(オブジェクトをダンプしてみた)
  • 付属の CD-ROM に、リビルド用のコードが入っているっぽい。(要確認)
  • TCP/IP スタック最新版は、Microchip からダウンロードできる。現在は Microchip Solutions v2010-10-19 というパッケージになっていて、TCP/IP スタックのバージョンは 5.31 となっている。C:\Microchip Solutions v2010-10-19\Microchip\Include\TCPIP Stack\TCPIP.h に書かれている。
  • コンパイラは、HI-TECH も使えるが、MPLAB C 3.37.01 を使う予定。
  • TCPIPConfig.h を生成する wizard が付いている。
  • HardwareProfile.h は、手で修正する必要がある。PIC18F67J60 を使うのは、INTERNET_RADIO というコンフィグレーションなので、これを修正することになりそう。
  • タイマ割込の初期化は、C:\Microchip Solutions v2010-10-19\Microchip\TCPIP Stack\Tick.c の TickInit() に記述されている。タイマ 0 を使っているっぽい。
  • メインのタスクは、デモコードの MainDemo.c 中に書かれている。task というキーワードで探すと見つかる。TickGet() という関数を使って、ブロッキングしないタスク関数を順繰りに呼び出していくような形。ステートマシンを多用したコードを書くことになりそう。
  • 共立のボードでは 93LC46B という(microwire と呼ばれる) EEPROM を搭載している。Microchip の TCP/IP スタックデモコードは一切この扱いをしていないので、共立が提供しているライブラリを見る必要があるらしい。もっとも、MAC アドレスをコードに埋め込んでしまう場合は、それほど重要でないかも知れない。