Archive for the 'ハードウェア開発' Category

XBeeのファクトリーリセット方法

Posted by ゆのじ on 8月 22nd, 2009

snapshot-1250887593.253979

ついうっかり、古いXBeeのボーレート設定を間違えてしまって(*1)、XBeeに一切アクセス出来なくなってしまった。その対処法をさんざんマニュアルにあたったのだが全然情報がない。困り果ててgoogleをたたき続けた結果、やっと見つけた。それがこれ。シリアル経由でXBeeにつながっていることだけは最低限必要なので、sparkfunのXBee Explorerあたりを買っておく必要はある。

やることは強制的なファームウェア書き換えなのだが、方法をそのまま機械的に訳しておく。公式に認められた方法ではないので自己責任にて。

  1. モジュールをインタフェイスボードから外しておく
  2. インタフェイスボードをPCに接続する
  3. X-CTU(*2)を起動する
  4. Modem Configurationのタブを開く
  5. Always update firmwareのチェックボックスをチェックする
  6. 修正したいXBeeの型番をドロップダウンから選ぶ
  7. 入れ直したいファームウェアバージョンをドロップダウンから選ぶ
  8. writeボタンをクリックする。しばらくするとXBeeに繋がらないメッセージが表示されるので、そのタイミングでXBeeを気をつけて挿入する。

手順はこれだけだが、私の場合一度ではうまくいかず、2度トライしてうまくいった。正確に場所をあわせて一気に挿すようにするとうまくいく(気がする)。

今回、使っているモジュールが古くて(XBP24-AWI-001)、この型番は今のファームウェアリストにはないため、正しく接続されていても型番を自動的に認識することができなかった。ここはXBP24を選んで書き直して完了。

本当のところ、どうやるのが正しかったのかを知りたいところではあるので、タイミングをみて代理店に問い合わせてみようかと思う。もしご存じの方がいれば教えていただければ幸い。

*1)後から調べたら、ビットレートを間違ったのではなくてファームウェアが古かったのが原因だったようだ。。

*2)これはDigi純正の設定ツール。Digiのウェブサイトからダウンロードできる。

interface2009/05購入

Posted by ゆのじ on 3月 28th, 2009

例のARM基板がついて1,980円ということで、購入してみた。といっても、正直なところAVR/MSP430/PSoCあたりでおおよそやりたいことは出来てしまっていて、それより上位となると音声や画像を扱わないことには面白くない。それをやるには最初の一歩目が大変ということで、塩漬けになりそうな気配もありつつ。。

ありがたいことに、おおよその情報はすでにあちらこちらのblogにネタはあがっているのだが、裏面にあるUSBコネクタのFGとGNDの間に挟むコイル(L1~L3)だけ、回路図に型番指定はあるのだが本文中ではほぼ触れられていない。使い方の注意(p.106)のところに「コイルの使用で高周波ノイズは阻止され」とあるだけ。回路図を見るとBNX18AG120とある。BNXで始まる型番はmurataのEMI除去フィルタ(エミフィル)が思い浮かぶが、パターンに合う大きさのBNXシリーズはないように思うし、エミフィルであれば4端子(B,CB,PSG,CG)あるはず。シルクを見るとフラットな面実装でもなさそうな気配。

で、こういうのでよくある間違いは同一会社内での類似品種だろうと思って探してみると、同じ村田製作所内にチップフェライトビーズのBLMシリーズというのがある。頭3文字をBNX->BLMに置き換えてBLM18AG120とすると、chip1stopで出している品番ルールには当てはまるのだが、そのインピーダンス数値のものがない。(121ならあるのだが)

その後しばらく似たような物がないか調べたが見あたらず。サポート用blogも見つけたので、そちらでフォローされることを待つことしかなさそうな気配だ。残念。

追記:
上記サポートblogからリンクしてある回路図の図面を見ていたら、コイルの型番が誌面と違うことに気づいた。誌面ではBNX18AG120となっているが、PDFファイル(2009/3/25作成とある)ではBLM18AG120となっている。BLM18AG121であれば存在するのだが、120はまだtypoなのだろうか。

eagleでのライブラリ作成

Posted by ゆのじ on 3月 25th, 2009

基板CADのeagleでの作業は、まずライブラリを作ることから始まるといってもいい。既存のライブラリや他の人が作ったライブラリも便利ではあるのだが、それらを組み合わせて使うと統一感が失われる。統一感ぐらい、機能においては重要ではないことが多いのだが、1つでも「まぁいいか」で済ませてしまうと全体のクオリティも巻き込まれて下がってしまう。
しかし、自分でライブラリを作るといってもその中での統一感がなければ元も子もない。そのため、ある程度のルールを作ることが必須となる。一部標準ライブラリとの整合性がないため、誰にでも推奨できるものではないが、自分のためのまとめもかねてポストすることにする。ちなみに、R,C,Lは標準のものでたいてい十分なので今のところは標準のもの(rcl.lbr)を使っているが、Timpyで有名なchiakiさんのウェブサイトによれば、標準のフットプリントでは高密度実装の場合にはつらいとのこと。その場合はこれも自分で作ることになる。
ということであちらこちらの先人の知恵を集約して自分なりにルールを作って運用している。今回はそれについて。

ライブラリの作成は、まずPackage(部品のフットプリント)を作成するところからはじめる。Package作成時のルールは以下。

  • パッケージ名は標準的なメーカ指定パッケージ名+ピン数+ピッチ、とする。ピン数はそのパッケージで存在しうる最大桁の0フィクス、ピッチは同じパッケージにいくつかピッチがある場合(たとえばTSSOPなど)に括弧付けで記述する。TSSOP14(0.65)、のような感じになる。
  • パッケージは横長で配置し、左下から反時計回りにピン番号が進むように配置する。ただし4方向に足が出ている部品などはこの限りではない。
  • パッケージはtPlaceレイヤに部品のおおよその外形線を書く。外形線は16milで書き、1ピンは10milの線で書いた直径25milの円で明示する(DILパッケージのみ例外とし、1ピン側に円弧状のへこみをつけることで明示する)。表面実装の2ピンデバイスのように、外形とピンが一体化しているものに関しては、ピンを含めた外形線を作成する。
  • 名称(U1, IC1、R1)は、tNameレイヤにVector, 20%, 50milで記述する。
  • 値(ICならばIC名、LCRなどの場合は値)は、tValueレイヤに名称と同じフォントで記述する。ただしOLIMEXだとtValueはシルク印刷されないという話なので、OLIMEXで表示したい場合はtNameレイヤに書くなどすること。
  • 名称と値はパッケージ右下に下から上へ向けた方向で作成する。

package
以上のルールで作成すると、このようなイメージとなる。(これはSOIC08)

必要なPackageが作成できたら、今度はSymbol(回路図上の図記号)を作成する。Symbol作成時のルールは以下。

  • ピンはShort、ピン名もピン番号も基本的に明示する。Directionは必要に応じてI,I/O,Oにする。VCCはPwr、GNDはSupとする。
  • 外形線が必要なデバイスは、外形線を16milの線でSymbolsに書く。図記号のあるものは、細線を10mil、太線を16milとして作成する。
  • 名称は部品の左上、値は部品の左下に、それぞれNames, Valuesレイヤに作成する。こちらはProportional、8%、70milとする。 外形線と25milの隙間ができるように配置する。
  • VCCは上、 GNDは下に書くようにする。同一の電源が複数存在する場合、同じ名前はつけられないので、VCC@1というようにアットマークを挟んでピン番号を書く。こうすると同一ピンと見なされる。

symbol
以上のルールで作成するとこのようなイメージとなる。(これはRS485インタフェイスのIC)

これで必要なPackageとSymbolを準備したら、Deviceを作成する。Deviceの作成は、Symbolを配置して、対応しているPackageを読み込み、Connectすることで行う。SOICとDILのように複数Packageに対応している場合、Packageを読み込んだ後に「Rename」を行ってVariantを指定する。Variantは名称の末尾につくのでメーカ指定の名称にしておくといいだろう。Prefixは部品名の通番につく接頭字。ICの場合、ICxとする場合とUxとする場合があると思うが、私の場合はUxとしている(つまりPrefixにはUと指定)。

とまぁ、こんな感じでライブラリを作る。ファイル名は、自分の名前-メーカ名.lbrなどにしておくと紛らわしくない。ライブラリは財産なのでバックアップも忘れぬよう。

また何かあったら別のポストで書くことにする。

余談というかTIPS 1:部品の回転
そういえば、部品の回転、以前は90度単位だけだったような気がするのだが、今のバージョンだとrotate r30、とか入力してやると部品を30度だけ回したりということができるようになっている。便利だ。

余談というかTIPS 2:ピッチの違う部品の配線
これもどこかのページで教えていただいたこと、ピッチが違うものの配線(たとえば25milピッチの配線ルールの上で0.65mmピッチのICに配線)するときには、グリッドを25mil、Alt-Gridを0.65mmにしてやって、Altキーを押したり離したりして適宜やってやるときれいに配線できる。