WLA-G54 WBR-G54 WLI-TX1-G54 などのシリアル通信

「WLA-G54 WBR-G54 WLI-TX1-G54 などのシリアル通信」の編集履歴(バックアップ)一覧に戻る
WLA-G54 WBR-G54 WLI-TX1-G54 などのシリアル通信」を以下のとおり復元します。
**WLA-G54 WBR-G54 WLI-TX1-G54 などにシリアル通信ポートがない理由と、取り付け方法の仮説

WLA-G54 WBR-G54 WLI-TX1-G54 など、初期の11g無線ルータは、
保守用のシリアルポートが、ありません。11b時代のルータにはシリアルポートがありましたし、またWHR系型番など、2世代以降の11gルータにも、保守用シリアルポートがあります。特定の世代の機種だけが、ないのです。

基板のどこを眺めてもシリアルポートらしき箇所が見当たりません。
こんな仕様では、開発時にどうやってデバッグしてるんだ、と、釈然としませんでした。

前から気になっていたので、これらの製品に搭載されているSoC「BCM4702」の仕様を調べました。
この時代の製品に搭載されているSoC「BCM4702」には、
UART(シリアルポート)が標準で搭載されていないことが判明しました。
プロモーション用データシートを見ると、UART機能は外付けオプションで記載がありました。

BCM型番の仕様一覧
Broadcom - WikiDevi
https://wikidevi.com/wiki/Broadcom

BCM4702 News Release | Broadcom
http://www.broadcom.com/press/release.php?id=332500

BCM4702 プロモーション用 概要PDF
http://wikidevi.com/files/Broadcom/BCM94702AP_BCM94710AP.pdf

このPDFの「BCM94702AP System Diagram」をみると、UARTが、みごとに「外付け」の扱いで記載されています。

保守時にしか使わない通信機能を、出荷する前提の製品で実装してもコストが上がるだけですから、
製品に搭載されていないわけです。

本体を分解しても、シリアル通信の基板パターンが見つからない理由は、これでわかりました。
隠されているのでは無く、最初から無かったのです。

----

**UARTを使うには、16550を取り付ければ可能

BCM4702でUARTを使用するには、シリアル通信チップである16550を、
SoCのバスにぶら下げる改造が必要です。

このチップは、大昔のAT互換機のマザーボードや、ISAバスのシリアルポート増設カードに、
当時は当たり前のように使われており、珍しい物ではありません。

が、いまは需要が激減したため、入手は中古で、しかも相当古い製品をあたる必要があります。
Intel 386近辺以降のマザーボードはSuperIOchipという名称で、シリアル・パラレル・FDDインターフェースが
統合されたワンチップICが使われています。おそらく今回の用途での部品取りでは使えないと思われます。

今回のような少ない需要を見込んだ、レガシーな16550を搭載した製品が、海外通販サイト等で存在することは確認しました。
これらを購入すれば、16550の入手は可能です。

そして、その16550を取り付ける改造を、実際にやってのけた凄い人が居らっしゃいます。

----

**ASUS WL-500Gにて、16550を乗せた改造事例

BCM4702を搭載しているASUS製のブロードバンド無線ルータ WL-500Gにて、16550を本当に乗せてみて、CFEのブートローダのメッセージや
通常時のシリアル入出力に成功しています。

Make an expansion board with a serial port(s) for WL-500b/g
http://wl500g.info/showthread.php?587-Make-an-expansion-board-with-a-serial-port%28s%29-for-WL-500b-g

UART Asus WL-500G Rev 2.40 - Viaccess for Free Forums
http://dvbdataex.sat-fishers.com/forum/showthread.php?t=31423

この2つのページにて、写真付きで16550を取り付けた改造事例が掲載されています。
WL-500Gには、本体の基板に20pinのコネクタが搭載されています。

  --------
 > D0  D1 |
 | D2  D3 |
 | D4  D5 |
 | D6  D7 |
 | A0  A1 |
 | A2  A3 |
 |+5V /CS |
 |/RD /WR |
 |INT GND |
 | NC  NC |
  --------


このコネクタに、16550を取り付ければ、シリアル通信を実現できるという流れです。
ルータの開発時には、おそらくここへシリアル通信用の保守治具を差し込んで
デバッグしていたのでしょう。

----

**国内buffaloモデルのピンアサインは、ピン配列が独自の可能性

話を国内のbuffloモデルに戻して・・・
上記のasusの改造事例を知った後、あらためてWLA-G54 WLI-TX1-G54 等の基板を眺めてみると、
なんと20pinのコネクタがしっかりと搭載されていることに気づきました。
バッファローの中の人たちは、ここへ保守治具を繋いでデバッグしたわけですね。

このコネクタについて情報を調べてみると、ピンアサインについては、
asusの改造事例のモデルとは異なるようです。
WLA-G54のピンアサインを解析された方が、下記ページにいらっしゃいます。

http://www.right.com.cn/forum/thread-6084-1-1.html

http://wiki.openwrt.org/OpenWrtDocs/Hardware/Buffalo/WLA-G54C
(リンク切れ)


 GND CE QD7 QD6 QD5 QD4 QD3 QD2 QD1 QD0 
 1 2 3 4 5 6 7 8 9 10 
 11 12 13 14 15 16 17 18 19 20 
 ||GND NC NC WE OE NC A3 A2 A1 A0

この用語の「OE」はasusの資料で言う「/RD」かもしれません。

 あくまで推測ですが、
 RD・・・Read Data
 OE・・・Output Enable
 という方言と思われる。
 QDとDも同様で、双方向で流せるデータバスという意味での方言
 
-16550を最低限動かすための基板の制作は、ASUS WL-500gの記事を参考にする
-基板へ接続するデータバス/アドレスバスについては、この配列を使用する

以上の段取りで、もしかしたらbuffaloのルータでも、シリアルポートを
使うことが可能になるのでは無いか?

という仮説でした。

仮にこの接続が成功したら、WLA-G54等にて、CFEは生きてるけどrootFSやnvramが破損して
起動できなくなった文鎮状態を、シリアル通信経由でメンテすることが出来るようになります。

復元してよろしいですか?