fio
いよいよ採択期間の終了が近づいてきた未踏ソフトですが、急ピッチでFunnel I/O(略称:FIO)と呼んでいたI/Oモジュールの開発を進めています。最終的には、XBee Series 1+CY8C27143という構成に落ち着きそうです。
XBee Series 1は最大でA/Dが6入力、それを含めてデジタル入出力が8本という機能を内蔵しています。ただし、無線を経由して他方の出力ポートを制御することはできないため、その部分を担当させるマイコンが必要だなぁということでいろいろと検討していました。入出力の本数が必要なのであれば、Gainerでも採用しているCY8C29466という手もありますが、必要最小限ということでDIPパッケージが用意されているCY8C27143を選択しました。価格もDigi-Keyで100個注文時で約310円となかなかリーズナブルです。
数日前から、ブレッドボード上に一通りの部品を載せてライブラリの開発と動作確認をしていたのですが、XbeeとPCの間を115000bpsで通信させた状態でPCからある程度の数のメッセージ(TX Request)を送信するとPCに接続したXBeeが応答しなくなるという現象に悩まされていました。状況はPCによって異なるのですが、データを送り始めてから数秒〜数十秒で再現し、ハードウェアリセットをかけないと通信を再開できない環境もありました。

このまま最終成果報告会まで問題を解決できなかったら、「最悪数秒ごとにリセットスイッチを押しながらプレゼンを乗り切るか?」などという悪魔の囁きまで頭をかすめました(笑)。そんな金曜日の深夜、ふとMaxStresm.netのウェブで情報を探していると、サポート担当者とのチャットが有効になっているが目に入りました。早速アクセスすると、「あなたは待機リストの1番目だから、1分くらいで接続されると思うよ。ちょっとまってね。」というメッセージが表示され、実際にそのくらいで接続できました。
後は、サポート担当の方にいろいろと事情を説明し、原因を絞り込むべくチャットを続けました。途中、突然「1秒待ってくれ」といわれたまま15分ほど放置プレイされるという事態も起きましたが(急に打ち合わせが入ったようです)、結果的に「XBee Series 1で115,200bpsを選択したとき、実際のボーレートは111,111bpsになる」という情報が得られました。「FT232RLだったら111,111bpsにも設定できるはずだから試してみて。そうでなければ57,600bpsなら最も正確だよ。」と教えてもらいました。Funnel Serverで使用しているRXTXライブラリでは、111,111bpsは設定できなかったため、57,600bpsを選択して検証したところ、それまでの不安定さが嘘の様に安定して動き始めました。
いやはや、デフォルトの9600bpsだとさすがに遅いので適当に選択したボーレートでしたが、たまたままずいのを選択してしまったようです。これでほぼハードも準備が整いましたので、後はできるだけコンパクトにまとめて、ライブラリと組み合わせた状態でのテストを行っていきます。
コメント