Wednesday, August 4, 2010

FON2305E のシリアルアクセスの失敗

FON2305E型のsimplが手にはいったのでjtagを取り付けようとしたところ、なかなかうまくいかない。ある情報だとtxとgroundを入れ替えれば良いとあったが、実際にはできなかった。テスターで調べたところ微かにledランプに合わせて電圧が上下(0.01V)しただけで、ターミナルにはなにも現れない。シリアルケーブルを接続した場合1.33Vあった。また接続していない場合は0Vだった。普通はttlレベルだとログが常時書き出されるので3.0Vはあるはずだけど。これに結構ハマってしまった。さらに悪いことに基盤はには半田が付かないほど傷んでしまった。そこでいろいろ調べたところ、14pinの穴がありそれがjtagらしいことがわかった。ただそれはパラレルのjtagなのでいままでやってきたシリアルとは違う。このjtagはfirmwareの書き換えはできるが、ログを見ることは出来ない。なぜならパラレルだから。ログは大抵シリアルに出力され、embededなシステムだとカーネルに組み込まれているので、bootローダー->カーネルとシームレスに表示できる。大抵ttyS0とかttyS1が割り当てられている。

1台失敗してもfoneroになればいいだけなので(1台くらいはfonユーザになっておかないとね)、べつに気にはしてないが、それでも強引にやろうとしたら、http経由のfirmware書き換えができる。これはtftpとは違ったフォーマットなので、いろいろ解析してみないと分からない。

もしFON2305Eで挑戦するならばピンヘッダーを立てるとよいだろう。

UPDATE:
 ftdiのFT232RのPDFデータシートを見ていたら、True 5V/3.3V/2.8V/1.8V CMOS drive output and TTL input.とあった。今までのシリアル接続はケイタイのケーブルを加工したものだが、それだと3.3Vで固定されているのかもしれない。FT232Rはもともとfonera1.0で使って予備で取っておいたもの。性能的には優れているので、もしかするとアクセスできる可能性がある。

UPDATE2:
ftdiも無理だった。やはり別の方法があるかもしれない。大抵のルータはシリアルのアウトプットを出せる。この機種だけ特別ということはないと考えている。

JP2 o   o   o   o
   Tx  Gnd  ?  VCC 3.3v

他のサイトを参考にするとログには「U-Boot 1.1.3 (Nov 29 2009 - 20:59:38)」とありfon2405eの場合は2010年の1月になっているので、確かに旧バージョンには違いない。webでログイン(192.168.10.1)してみると、fon2405eの場合はver.4.0.1.4でこのfon2305eはver.4.0.1.1でこれでも古いバージョンであることがわかる。
しかしなぜ出来ないんだろうか?