La FoneraはFONのプロジェクトで使用しているルーターですが、元々入っているOpenWRTというファームウェアをDD-WRTというファームウェアに入れ替えて豊富な機能を使うという試みをされている方がおられると聞き、私も早速購入して試してみました。
SSH接続のみでも書き換えしたりできるそうですが、私は、RedBootから好きなバイナリデータを読み書きしたり、マイコンボードとしての実験にも使用できるのではないかと考え、シリアルコンソールを使用することにしました。
メインボードにはピンヘッダが出ており、Vdd=3.3VのUARTに接続すればRedBootやらLinuxのシリアルコンソールが利用できますが、レベル変換基板を毎回接続するのは相当面倒です。
せっかく綺麗なケースに入っているので、出来ればそのシンプルな形のまま使用したいと考え、USBシリアルコンソールを内蔵させることにしました。
この記事はLa Fonera FON2100を対象としています。 FON2200の場合にはメインボード上のピン配置を変更して下さい。 また、VDD電圧が3.3Vでない場合、そのまま使用できないためご注意下さい。
材料は、以下のものを使用します。
ストロベリーリナックスさんのところで、とてもコンパクトなUSB-UART変換基板を売っていますので、これを使用します。
URL : http://strawberry-linux.com/shop/index.php?c=
=date&p=1&r=1&page=#50008
ストロベリーリナックス商品購入ページ
なお、PCデバイスドライバは、デバイスベンダーのシリコンラボラトリからダウンロード可能です。Windows,Mac,Linuxに対応したものがそれぞれダウンロード可能です。
URL : http://www.silabs.com/tgwWebApp/public/web_content/products/Microcontrollers/USB/en/mcu_vcp.htm
シリコンラボラトリ VCPドライバダウンロードページ
お住まいの各地域のパーツショップで購入可能です。 秋葉原であれば、秋月電子通商、千石電商、日本橋であれば共立電子などです。
写真のように、四角い穴をあけます。予めUSBコネクタをあてがって、マーキングしてからニッパで少しずつ切っていき、最後はヤスリで仕上げました。
USB-Bコネクタは、ルーターのCPUの放熱板に半田付けする事にしました。そこで、まずはコネクタから出ている端子をラジオペンチで真っ直ぐに引っ張り出します。(力をかけすぎて壊さないように注意)
次に、固定用の金属部分を片方ニッパで切り取ります。
放熱板に直接、半田で固定します。 なお、通常の半田はアルミの放熱板部分には半田付けできません。放熱板のベース部分の両端に半田を十分に溶かして溶接しましょう。あまり細くて熱容量の小さいコテですと半田が十分溶けず、うまく半田乗りしないと思います。 できるだけ、太目のものを用意しましょう。
上記は半田付け前の写真です。
以下の図のように結線して下さい。
変換基板は、対角のGNDにピンを立てて、放熱板上に半田で固定しました。
これで完成です。
以下は、全てWindowsの場合での説明となります。 他のOSの場合でも、USBシリアルデバドラのインストールと、シリアルコンソールソフトが用意できれば同様の手順となると思います。
予め、CP210xのデバイスドライバをインストールしてから、改造済みFONルーターをPCに接続すると、新しいデバイスとして認識します。
La Foneraは、まずブートローダーのRedBootが起動し、次にLinuxカーネルがロードされる構成です。 初期状態では、それぞれのモジュールの使用している通信速度が異なりますので注意が必要です。
初期状態のボーレート
| RedBoot | 9600bps |
| Linux | 115200bps |
そこで、まずRedBootのボーレートを115200bpsにしてしまいましょう。
以下の手順で行います。
この状態で、以下のようになり、RedBootのプロンプトが出ると思います。
PHY ID is xxxx:xxxx Ethernet eth0: MAC address xx:xx:xx:xx:xx:xx IP: 0.0.0.0/255.255.255.255, Gateway: 0.0.0.0 Default server: 0.0.0.0 RedBoot(tm) bootstrap and debug environment [ROMRAM] Non-certified release, version v1.3.0 - built 16:57:58, Aug 7 2006 Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc. Board: ap51 RAM: 0x80000000-0x81000000, [0x80040450-0x80fe1000] available FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each. == Executing boot script in 1.000 seconds - enter ^C to abort ^C RedBoot> ^C RedBoot>
ここで、おもむろに以下のコマンドを入力してEnterを押します。
RedBoot>baudrate -b 115200
ここで、TeraTermのボーレート設定とRedBootのボーレートの不整合が起こりますので、一旦文字化けが発生するかと思います。TeraTermのボーレートを115200bpsに変更して下さい。 (場合によっては、「コントロール」→「端末リセット」が必要となります)
ここで、Enterを押すと、先ほどのようにプロンプトが出ると思います。もう一度設定します。
RedBoot> baudrate -b 115200 Baud rate will be changed to 115200 - update your settings Baud rate changed to 115200 - continue (y/n)? y Update RedBoot non-volatile configuration - continue (y/n)? y ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
これで、Flash ROM上の当該領域にボーレートが設定されましたので、次回以降は115200bpsで使用できます。
アクセスカウント(累計) : -
アクセスカウント(本日) : -
アクセスカウント(昨日) : -