= AVRイーサネット = こんな物を作りました。 ATMega168と[http://www.switch-science.com/products/detail.php?product_id=19 ENC28J60]をSPIで接続した、ごくありふれた回路です。 特に、ENC28J60まわりは、データシートに掲載されている推奨回路のままです。 RJ45ジャックはメジャーなMagJackではなく、秋月で手に入る[http://www.akizukidenshi.com/catalog/items2.php?q=%22P-00819%22&p=1&r=1&page= PulseJack J0011D21B]です。 キットを購入して下さった方に:[wiki:AVR-Ethernet/Kit キットについての解説] [[Image(avr-ethernet.jpg)]] ファームウェアが悩みですが、先人の人々がいろいろと実現してくれているのでおんぶにだっこで行く方針。 == 解説 == 回路図およびパターン図は、このページ最下部の「Attachments」を見てください。 * 電源は3.3Vです。 * SPI接続のために、PB3(MOSI)、PB4(MISO)、PB5(SCK)を使っています。また、SPIのチップセレクトのためにPB2を使っています。 * ENC28J60からの割り込みを受け付けるため、PC2を使っています。 * ENC28J60のクロック出力をATMega168に供給してありますが、内蔵クロックで動作させるのをお勧めします(後述の注意を参照)。 * リセット線はATMega168とENC28J60で共有し、プルアップしてあります。 * PB1には、確認用のLEDを接続してあります。Lで点灯します。 * 6ピンISPコネクタがあります。 * ボード端に並んでいる端子は、PB0~5、PD0~7、+3.3V、GND、AREFです。 * PC0~5はカード中央にあるため、ブレッドボードには適しません。ブレッドボードを使う際は、PC0~5は使わない方がいいです。 == クロックについて == ENC28J60にはクロック出力ピンがあり、これでATMega168を駆動することも可能です。 しかし、'''これを使わず、内蔵クロックで動作させることを強くお勧めします'''。 ひとたび、外部クロックを使用するようにATMega168のヒューズビットを設定すると、ISPでは書き込みできなくってしまいます。 なぜならば、ISPで書き込もうとするとリセットピンがLにされ、ENC28J60もリセット状態になってクロックが止まるからです。 (リセット線を共有するかどうか悩んだのですが…) ENC28J60からのクロックを使用する場合には、ファームウェアの最初でENC28J60のレジスタを操作して、クロック(25MHz)を1/2分周したもの(12.5MHz)を出力するように設定してください。 また、ATMega168のプログラミングにおいて、外部クロックを使用するようにヒューズビットを設定してください。 == 課題 == * ATMega168の外付けクリスタルの場所を確保する。 * リセット線を共有しているのをやめる。 * ATMega168の電源を5Vにできるようにする。20MHz動作のため。 * すると、ENC28J60の3.3Vのためのレギュレータが必要。 * ピン配置の見直し。 * 取り付け穴がもうひとつ欲しい。 == ファームウェア == [source:/avr-ethernet このあたりで開発中]ですが、あまり期待しないでください。 ソースコードを取得する方法は、[wiki:MercurialRepogitory ソースコードレポジトリ]のページで説明します。 参考になるかも知れないページ:: * [http://www.kannet.ne.jp/tomaru/kenkyuushithu/hardware/webac/webac.htm 黒猫電脳研究室さん] * [http://tuxgraphics.org/electronics/200606/article06061.shtml TuxGraphicsさん] * [http://optimize.ath.cx/spi_ether/spi_ether.htm#MEGA168 オプティマイズさん] * [http://www.laskater.com/projects/uipAVR.htm uIPをAVRに移植した人] == 今後 == * ~~希望してくれる人がいれば、そのうちキットで販売するかもしれません。主要部品がちょっぴり高価なのが問題です。~~ * [http://www.switch-science.com/products/detail.php?product_id=59&admin=on 微妙に販売中です。]よかったらどうぞ。 * Arduino化しようかとか。 * 自分用のひみつのプロジェクトとか。 * やっぱり自前でIPはつらいから、[http://www.switch-science.com/products/detail.php?product_id=16 W5100]に[wiki:W5100-SPI 行ってみるか。] * 意味なく小型化に挑戦してみるか。RJ45って、でかいですね。 == キットを作ってくれた人々 == * [http://web.mac.com/kuwatay/morecat_lab./Blog/エントリー/2008/9/7_AVR_Ethernetを組み立てる.html Morecat Lab.のもあさん] * [http://blog.goo.ne.jp/sim00/e/6e5b7bef55321f7665f69be69006d4eb Simさん] ''(2008/8/25 - sgk)''