2015年8月9日日曜日

ENC28J60という不憫な子

ちょっと前までArduinoをEtherにつなぐには5000円ぐらいしたのに400円

睡眠データの収集をHerokuからParse.comへ移行しようと調査しています。いつの間にかArduino用のSDKなんて出てるんですね。残念ながら高価なArduino Yun用ですが。

私が使おうと思っているのは部品沼に数個眠っているパチArduino nano+ENC28J60という合計1000円を切っちゃうコンビです。標準のEtherシールドの価格と比べるとまさに破格です。しかし、ENC28J60はhttpsに対応していないのでparse.comなど最近のWebサービスには使えません。

とはいえ在庫があるのに使わないのはもったいないので、手持ちのArduino nanoにつないで試してみました。githubからライブラリを落としてethercard-master.zipという名前をethercard.zipに変更してからArduino ideのメニュー スケッチ>ライブラリを使用>ライブラリをインストール… で読み込ませます。そうするとライブラリ / サンプルが使えるようになります。配線は電源は3.3vとGND、各SPI(SI→11, SO→12, SCK→13, CS→8)。サンプルスケッチはArduino ideメニュー ファイル>スケッチの例>ehtercard>backsoon を選びます(他にもあります)。DHCPで良ければそのまま実行。うちはDHCP使いたくないので6行目あたりの#define STATICを0から1に変更し、10行目あたりのmyipにアドレスをセットして実行。

が。

ハブにつないでもリンクが上がらない(Linkのランプが付かない)。

いろいろ調べていると、ツール>ポートでArduinoのポートが見えなくなっていることに気づきました。ENC28J60を外すとポートが見えるようになります。これはつまり、ENC28J60の消費電流がArduinoの電源供給能力を上回ってしまった、ということ。Arduino unoにつないでも同じでした。改めて資料にあたってみると、 ENC28J60の消費電流は250mA+、一方Arduinoの供給能力は50mA(3.3v)。

そりゃ動きませんわ…。

以前mbedで試したら一発で動いたのは、FTDIから取っていた3.3vに余力があったからでしょうね。三端子レギュレータなどを使って供給すれば良いのですが、めんどくせえええ。

と言いつつ、5v電源から高能率三端子レギュレータで3.3vに落として供給してみました。三端子レギュレータ380円+積層セラミック4.7μF特価60円、明らかにENC28J60より高いw



めでたく動きました。

しかし室温30度でチップの表面温度は47度(放射温度計による計測)になり250mAも消費するチップはやっぱりちょっと使いにくいなぁ…。httpsないし最初からオスのヘッダピン付いてるのも面倒くさい…。

とりあえず簡易的なPoEアダプタが1組余っているので、それと組み合わせて成仏させてやろうかい。

0 件のコメント:

コメントを投稿