俺って mbed に向いてないかも。
Page last updated
24 Nov 2010, by
ono a.
16
replies
http://pub.ne.jp/katsumin/?entry_id=3203679 の通りにやってみたけど動かない。
何故か LED1,2 と 3,4 が交互に点滅してるけど、ソースにはその動作の記述が見つからない。
ライブラリのソースは非公開らしく追えない。
交互に点滅するのは、おそらくmain関数から-1でリターンしたからでは、ないですかね。
LANに接続できなくてエラーで抜けてる感じだと思います。
LANコネクタ周りの配線やネットワークを確認してみてはいかがでしょうか
JKSoft さん、情報ありがとうございました!
main から -1 を返すと交互に点滅するのは知りませんでした。今ざっとググってみたのですが、検索文字列が良くないのか、その事を記述してあるページを見つけられませんでした。どうもまだまだ mbed 関連の情報の探し方がよく分かりません。
日本語でまとまった情報が載っているページもうまく見つけられていないので、JKSoft さんの本の出版を楽しみに待っています!
最初はわけわかんないですよね(というか私は今でもよくわかってないですけど..あぁ).
で,そのLEDの光り方はココ( http://mbed.org/handbook/Debugging )に書いてあります....実はこのページの存在についてはつい2〜3日前にtwitterで教わったばかり (^^;;
回避不可のエラーが発生した際にはmbed.h内で定義されてるerror()関数を呼ぶことがあり,それをやるとそのLED点滅パターンになるって認識してます.
「向いてない」とか,それはまだ判断するには早いかもです (^^)
それにしてもJKSoftさんの本がとても待ち遠しいです!
- LAN接続(特に配線)を確認する。<ピカピカLEDが光るところのステップ>
- mbedのストレージにINDEX.HTMをおいたかどうか確認する。<先のドキュメントに明示的に描かれていないところのステップ>
是非色々確認してみて下さい。
出来た時に感動しますよ!「これ、楽しい!」って。
皆様、ありがとうございます m(_ _)m 。さんざん調べても分からないので落ち込んでました。
皆様のおかげでテンション上がってきました!配線の再確認など、もう一度始めから確認してみます!Shinichiroさんの「INDEX.HTM」の件は全く認識していなかったので、これも早速作って配置してみます。
mbed はネットワーク接続の回路が Arduino よりも安く・小さく構築できるので、まずはネットワークを使った何かを作ろうと画策しています。頑張ります!
うーん、何度やってもダメみたい。半田付けは目視する限りではちゃんと出来ている。ただ、RJ-45 の中に回路が入っちゃってるので、テスターでの結線チェックは出来なさそうなので、チェックはしていない。
mbed と RJ-45 との配線も何度もチェックした。RJ-45 は物によってはピンは位置が違うとの事だったので、秋月で購入した作例に限って参照していたのだが、あきらめて他の作例での配線(TとRをクロス)などを試すも、全て玉砕。
しょうがないので、もう一度秋月のパルストランス付きの RJ-45 を買ってくるか・・・。秋葉原に行けるのは半月後なので、それまで作業は中止します。情報をくださった皆様、ありがとうございました m(_ _)m。
LANコネクタからは何に繋げているんですか?
ルータ経由ならDHCPでIPアドレス等が取得できますが、
ハブやPC直結ならIPアドレスを設定する必要があります。
ルータで駄目ならIPを固定にして試してみるのも手かと思います。
#
27 Nov 2010 . Edited: 27 Nov 2010
JKSoft 様。
ネットワークや DHCP は他のPCで実績のあるハブの口とケーブルでやっているので、そこは多分大丈夫だと思います。DHCP Server 側で MAC Address での制限もかけた記憶がないので IP アドレスの発行も大丈夫だと思いますが、確かに固定 IP では試していません。ちょっとそのパターンでも試験してみます!
#
27 Nov 2010 . Edited: 27 Nov 2010
切り分けとして、Terminalの出力を確認されてますか。
Windowsをお使いの場合、以下のurlを参考にドライバをインストールします:
http://mbed.org/handbook/Windows-serial-configuration
Macの場合は以下です:
http://mbed.org/handbook/Mac-or-Linux-terminals
以下Windowsを前提にTerminal出力の確認手順を示します
1. PCとmebedをUSBケーブルで接続
2. デバイスマネージャーで"COMとLPT"にmbed Serial Portがあることを確認
3. TeraTerm等のターミナルソフトを起動(通信速度は9600bps)
4. デバイスマネージャーに表示されたCOMポート番号(COMx)でシリアル接続
5. mbedをリセットしてターミナルソフトのデバック表示を確認
<以下の表示が返って、LED1-2, 3-4が交互に点灯する場合は、13行目のif文が成立していると思われます>
Setting up...
[..\fwk\if\eth\EthernetNetIf.cpp:setup@86] HW Addr is : 00:02:f7:f0:17:98.
[..\fwk\if\eth\EthernetNetIf.cpp:setup@99] DHCP Started, waiting for IP...
[..\fwk\if\eth\EthernetNetIf.cpp:setup@131]
Timeout.
Error -65534 in setup.
上記はケーブルを抜いた状態でわざとエラーを起こしていますが、DHCPサーバーが応答せずタイムアウトになっています。タイムアウトが発生する場合の確認ポイントは以下です:
1)マグジャック結線の確認(これは確認すみですよね..)
2)HUBなどのEthernet接続の確認(HUB側のリンクアップLEDが点灯しているか)
3)ルーターなどのDHCPサーバーの確認(DHCPクライアント数の上限を超えていないかなど)
<接続が成功した場合は以下の表示が出て、LED1が0.5sec間隔で点滅します>
Setting up...
[..\fwk\if\eth\EthernetNetIf.cpp:setup@86] HW Addr is : 00:02:f7:f0:17:98.
[..\fwk\if\eth\EthernetNetIf.cpp:setup@99] DHCP Started, waiting for IP...
[..\fwk\if\eth\EthernetNetIf.cpp:setup@142] Connected, IP : 192.168.0.23
Setup OK
Listening...
Ken さんこんにちは。
Terminal を使ったデバッグが出来そうだ、というところまではたどり着いていたのですが、非常に詳しい説明感謝です!mbed でのデバッグ(原因調査)のノウハウが全く無かったので、最悪ソースの各所に LED 1-4 の点滅パターンを変えてデバッグ文を入れるか・・・とかも考えていました。
今日は時間がとれないので、明日以降に教えて頂いた方法で確認してみます。ありがとうございました!
皆様にお手数をおかけしてしまっている本件ですが、先日 Tedd OKANO さんから実動するケーブルを頂き、それを使って動作確認をしたところ、問題なく動作しました。やはりどうもRJ-45への接続が間違えていたようです。(ブレッドボードなどを使っているために、その「ダメだった状況」が保全されていないので、出来なかったときと動いている現状の差の検証が出来ないのが残念です orz 。写真とか撮っておけば良かった・・・)
ケーブルもさることながら、LEDの点滅パターンの情報や、シリアルコンソールでつなぐノウハウ、ここで使用した作例には「INDEX.HTM」が必要だった、など、貴重な情報を頂け、とても参考になりました。これらの情報がなければ、ケーブルを頂いても「LEDの点滅パターンが変わったので、とりあえず適当にIPアドレスを探りながら接続してみたら動いているようだった」程度の適当な確認しか出来なかったと思います。
ここで頂いた情報は後ほどまとめて別 Notebook でエントリーを作成する予定です。皆様ありがとうございました! m(_ _)m
#
04 Dec 2010 . Edited: 04 Dec 2010
動作して良かったです!
なかなか過激なタイトルのノートブックだったので皆も「これは!」と思ったようですね。
でも、嬉しい嬉しい。
「あぁ!動いた!」ってなりませんでしたか?たぶんなったはず。(笑)
こんな感じで楽しいmbedですので是非みんなで盛り上がりましょう!
Tedd Okanoさんもなかなかやりますね~。(笑)
Shinichiro さんこんばんは。
おかげさまで無事に動作しました。確かに、動いたときの第一声は「あぁー、動いた−!」でしたね。やっとスタートラインに立てた感じです。色々と試行錯誤したことで他の周辺ノウハウもいくつか習得できました。発見できたことや動いた物は出来る範囲で Notebook などでフィードバックしていきますね。ありがとうございました!
こんにちは。
便乗質問になり恐縮ですが、
[..\fwk\if\eth\EthernetNetIf.cpp:setup@86] HW Addr is : 00:02:f7:f0:17:98.
[..\fwk\if\eth\EthernetNetIf.cpp:setup@99] DHCP Started, waiting for IP...
[..\fwk\if\eth\EthernetNetIf.cpp:setup@131]
のデバッグ文字を標準出力に表示させないにはどのようにしたらよいのでしょうか?この出力を出さなくする為のオプションを見つけることが出来ませんでした。御存じの方がいらっしゃいましたらお教え下さい。
You need to log in to post a comment
交互に点滅するのは、おそらくmain関数から-1でリターンしたからでは、ないですかね。
LANに接続できなくてエラーで抜けてる感じだと思います。
LANコネクタ周りの配線やネットワークを確認してみてはいかがでしょうか