Project C3 Wiki

La FoneraにUSBシリアルコンソールを内蔵させよう

このページの目次

La FoneraはFONのプロジェクトで使用しているルーターですが、元々入っているOpenWRTというファームウェアをDD-WRTというファームウェアに入れ替えて豊富な機能を使うという試みをされている方がおられると聞き、私も早速購入して試してみました。

SSH接続のみでも書き換えしたりできるそうですが、私は、RedBootから好きなバイナリデータを読み書きしたり、マイコンボードとしての実験にも使用できるのではないかと考え、シリアルコンソールを使用することにしました。

メインボードにはピンヘッダが出ており、Vdd=3.3VのUARTに接続すればRedBootやらLinuxのシリアルコンソールが利用できますが、レベル変換基板を毎回接続するのは相当面倒です。

せっかく綺麗なケースに入っているので、出来ればそのシンプルな形のまま使用したいと考え、USBシリアルコンソールを内蔵させることにしました。

この記事はLa Fonera FON2100を対象としています。
FON2200の場合にはメインボード上のピン配置を変更して下さい。
また、VDD電圧が3.3Vでない場合、そのまま使用できないためご注意下さい。

準備物

材料は、以下のものを使用します。

CP2103 USB→シリアル変換基板

ストロベリーリナックスさんのところで、とてもコンパクトなUSB-UART変換基板を売っていますので、これを使用します。

URL : http://strawberry-linux.com/shop/index.php?c=&s=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-Bコネクタ

お住まいの各地域のパーツショップで購入可能です。 秋葉原であれば、秋月電子通商、千石電商、日本橋であれば共立電子などです。




改造作業

外装にUSB-Bの穴を開ける

写真のように、四角い穴をあけます。予めUSBコネクタをあてがって、マーキングしてからニッパで少しずつ切っていき、最後はヤスリで仕上げました。

R1060299.JPG

USBコネクタを加工する

USB-Bコネクタは、ルーターのCPUの放熱板に半田付けする事にしました。そこで、まずはコネクタから出ている端子をラジオペンチで真っ直ぐに引っ張り出します。(力をかけすぎて壊さないように注意)

次に、固定用の金属部分を片方ニッパで切り取ります。

R1060300.JPG

La Fonera上に半田付けして固定する

放熱板に直接、半田で固定します。 なお、通常の半田はアルミの放熱板部分には半田付けできません。放熱板のベース部分の両端に半田を十分に溶かして溶接しましょう。あまり細くて熱容量の小さいコテですと半田が十分溶けず、うまく半田乗りしないと思います。 できるだけ、太目のものを用意しましょう。

R1060301.JPG

上記は半田付け前の写真です。

結線する

以下の図のように結線して下さい。

Fon_router_connection.jpg

基板の取り付け

変換基板は、対角のGNDにピンを立てて、放熱板上に半田で固定しました。

R1060302.JPG
R1060303.JPG

完成!!

これで完成です。

R1060304.JPG

実際に接続してみよう

以下は、全てWindowsの場合での説明となります。 他のOSの場合でも、USBシリアルデバドラのインストールと、シリアルコンソールソフトが用意できれば同様の手順となると思います。

USBシリアル接続の確立

予め、CP210xのデバイスドライバをインストールしてから、改造済みFONルーターをPCに接続すると、新しいデバイスとして認識します。

コンソールへの接続

La Foneraは、まずブートローダーのRedBootが起動し、次にLinuxカーネルがロードされる構成です。 初期状態では、それぞれのモジュールの使用している通信速度が異なりますので注意が必要です。

初期状態のボーレート

RedBoot9600bps
Linux115200bps

そこで、まずRedBootのボーレートを115200bpsにしてしまいましょう。

RedBootのシリアルボーレート変更

以下の手順で行います。

  1. ルーターからUSBコネクタを抜く
  2. FONのACアダプタを挿入
  3. 2,3秒待ってUSB挿入
  4. TeraTerm起動(9600bps)
  5. RedBootの画面が出たらCtrlキーを押しながらCを連打する

この状態で、以下のようになり、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で使用できます。

アクセスカウント(累計) : 4362
アクセスカウント(本日) : 1
アクセスカウント(昨日) : 0


添付ファイル: fileR1060304.JPG 746件 [詳細] fileR1060303.JPG 711件 [詳細] fileR1060302.JPG 776件 [詳細] fileFon_router_connection.jpg 895件 [詳細] fileR1060301.JPG 859件 [詳細] fileR1060300.JPG 888件 [詳細] fileR1060299.JPG 935件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-07-15 (日) 19:49:10 (3665d)