2014/12/18

[電子工作]mbedを自分のボードでも使いたい

,
 mbedを自分のボードでも使いたいなと思って、ちょっと調べていたりします。

参考

FAQ (Japanese) | mbed http://developer.mbed.org/users/nxpfan/notebook/faq-japanese/?c=9174
mbedを他プラットフォームで使えるかについて、公式のQ&Aです。これに依れば、
『Quote: mbedでコンパイルしたコードは他のハードウェアでも動作する?

動作します!
mbedコンパイラはARM社が提供するRVDS(RVDSについては次の項を参照)を使用しており,このコンパイラはLPC1768やLPC11U24等のmbedコンパイラがサポートするMCU(ベア・メタル)上で,単独で動作するコードを生成します.』だそうです。

mbed-src http://nora66.com/mbed/mbed-src.html
mbedのライブラリについて。あんま書いてる人がいない。


lpc810_helloworld - a mercurial repository | mbed http://developer.mbed.org/users/va009039/code/lpc810_helloworld/
LPC810でmbedを利用する方法が書かれています。

LPC810のmbed化 - densikit.com and the arduino variants http://arduino.densikit.com/jikken-shitsu/lpc810
上に同じ

Using mbed with generic STM32 boards from eBay | mbed http://developer.mbed.org/users/shutay/notebook/using-mbed-with-generic-stm32-boards-from-ebay/
自分の作ったSTM32ボードで、mbedでコンパイルしたコードを動かす方法について。やはり、mbedのドラッグ&ドロップは使えないようですね。
※STM32 nucleoでは、USBとの通信はすべてST-Linkが担っています。なので、ターゲットMPU単体だけだと、D&Dなどは使えないみたいです。


[lang:ja] mbed LPC1114での遊び方 | mbed http://developer.mbed.org/users/ytsuboi/notebook/getting-started-with-mbed-lpc1114-ja/
mbedを自作ボードで使う一番楽な方法は、多分DIPのLPC1114を利用すること…なのでしょうかね?LPCXpressoのLPC1114ボードでも利用できるので、あれが多分回路的に一番単純でしょうから、その回路を真似るのも手なのかな。
Read more →

2014/12/15

[電子工作]ハンダゴテRX-802を買った。あとFX-951との比較。

,
 ハンダゴテを買い替えたお話です。

 今までハンダゴテはgoot CXR-41(30W)を利用していました。しかし、熱容量不足でベタパターンになっているGNDに繋がるピンがまともにハンダ付け出来なかったり、はんだ吸い取り線をまともに使えないなどの問題がありました。
 そこで、自作基板に表面実装を使うようになってきたこともあって、温度コントローラー付きで高性能なものを買うことにしました。

 まず、ハンダゴテを作っているメーカーは、私の知っている有名所では

  • Hakko
  • 大洋電気産業(gootブランド)
  • hozan

です。海外のメーカーですとWellerなどもあるようですね。

 このあたりで探していたところ、Hakkoの「FX-951」と、gootの「RX-802」辺りがちょうどマッチするかなと思いました。

FX-951とRX-802の違い

次に、これらを比較してみたのですが、正直言ってどちらも似たようなものな気がします。…と、これではまとめにならないので、2つの製品の違いを書き出してみました。

FX-951にあるもの

  • こて台のコテを検知して、スリープする機能
  • ESDセーフ(RX-802にもあるのかも?)
  • ド派手な、どこでも目立つ見た目

RX-802にあるもの

  • こて台に、クリーナーとして、スポンジとメッシュ金属の両方を置くことができる
  • 温度変化時に、温度表示がFX-951より細かく出る

 値段ですが、この記事を書いた時は、AmazonでRX-802が\20,173、FX-951が\24,800でした。RX-802の方がちょっと安めですね。

 立ち上がり時間はやはりRX-802の方に分があります。RX-802、本当に直ぐ使えるようになります。実測で、RX-802(9s) > FX-951(16s)でしょうか。FX-951に関しては以下の動画で立ち上がり時の様子を見ることが出来ます。

 DigitalThis - Hakko FX 951 review: http://youtu.be/PeKWE4RZl2g via @YouTube

FX-951を使ってきた

実は、FX-951は秋葉原にある「はんだづけカフェ」で利用することが出来ます。実物を触らないで購入するのも怖かったので、実際に行って使ってきてみました。で、実機の感想としては

  • こて台にコテを挿すとスリープする機能は、むしろ不便。なぜって、一々温度がスリープ時の設定値にまで落ちるから。途中からコテ検知するコード抜いて使ってた。
  • RX-802に比べると、立ち上がりが遅い。そして、温度表示が更新されるのが秒間2回とかなので、かなり離散的で滑らかでなかった。

といったところ。正直、思っていたよりも期待はずれでした。RX-802の方が総合的な完成度が高いかな…。


 それで、結果的にRX-802をAmazonで購入しました。そうそう、買うときは専用のこて先も一緒に購入しましょう。本体に付いてないんですよね…。

Read more →

[電子工作]Eagleあれこれ その2

,
 Eagleについての個人的なTipsなどをまとめました。位置付けとしては、「Eagleあれこれ」という記事の続編です。

 Eagleのバージョンは、今のところ7.1.0が最新のようです。ちょうどこの前このバージョンにアップデートしたので、この記事では7.1.0を使っているとして、話を進めます。

 あっちなみにまだ書きかけです。

Libraryで、複数ピンの割り当て

「1ピンと2ピンがGND」みたいなICのライブラリを作成する時、回路図上ではGNDは1つのピンとして描き、ピンの割り当てで2つのピンをGNDにする時に使います。
 前からあったんですかね?Ctrl押しながら複数のピンを選択出来ました。
回路図では1つのPinに、2つのPadを割り当てるとき。Ctrlを押しながら、2つのPadをマウスで選択します。
こんな感じになります。Padの数字の左側に、繋がってるマークが出ます。
回路図上では、このようなシンボルになります。(PGNDに「1*2」と書かれる。)

Test Pointを設けよう

テストポイントと言うのがあります。テスターやプローブを当て、電圧や信号が正しく出ているか確かめるための場所です。自分が電圧をチェックしたい配線や、ほとんど露出してない信号線などに明示的に配置すると便利です。「testpad」というライブラリの「/TP/TPTP06R」や、「SparkFun-Passives」の「/TEST-POINT/TEST-POINT2」などがそうです。
test pad

回路図上のtest pad
実際に配置したtest pad

 特に、GNDやVccなど、動作確認やデバッグの際に利用しそうな配線には、予めオシロスコープのプローブを引っ掛けられるようなピンを用意しておくといいと思います。マックエイト社製のものが有名です(少々値は張りますが…)。GNDは、何箇所かチェックピンがあるとなおよし。

Polygonに優先順位(Rank)を付ける

Polygonは、「囲った領域をパターンなどで埋める」機能です。ベタグラウンドのためによく使われます。ですが、ベタグラウンド以外にも、DC-DCコンバータ周りのVccなどをポリゴンで描きたいときもあります。この時、Rank付けをしないと、下の図のように、2つのポリゴンが重なってしまいます。
Rank付けしない時の、Polygon同士の重なり。下の図と比較すると、VccとGND間にあるべき隙間が塗りつぶされたことが分かります。

 GNDのRankを"6"(最低)にして、VccのRankを"1"にすれば、ベタグラウンドはVccのPolygonがあるところを避けて塗り潰してくれます。

Rank付けした時の、Polygon同士の重なり。Rankが低いベタグラウンドが、VccのPolygonを避けています。
参考 : パターン図作成のテクニック (8) Polygonに関しての説明があります。

外に出す部品(コネクタ、LEDなど)は、なるべく大きなグリッド上に配置する

これはマイルールなのですが、外に出す部品は、なるべく大きなグリッド上に配置しています。これは、外のケースに穴あけをする際に、2mil単位などだと分かりにくすぎて間違えそうなためです。

 Eagleならまだ良いのですが、ケースの穴あけ図を別のCADで書くとき、統一されたグリッド上にあるほど楽な気がします。間隔なども規則正しくないと気持ち悪いですからね。

 今のところは、
  • 外に出す部品を、50milのGrid上に配置する。(100milだと少し不自由すぎるから…)
  • 電源線を引く。電源は、1Aで1mm(≒ 39.4mil)くらいの幅を必要とするので、後から引くのが大変。
  • 細かな部品配置と、信号線を引く。
という流れでやっています。

電源ライブラリについて

昨今の基板で電源系統が1つだけなんて珍しい気がするんですが、Eagleの場合、デフォルトのSupplyライブラリにあるのは"Vcc"とか"VccIO"とかくらいですよね。そもそも"Vcc"って名前は情報量少ない気がするので"Vcc_3V3"とかにしたいけれど、どうやるんだろう…と思ってたら、以下のような記事がありました。やっぱり自分で作らないとダメなんですね…
 余談ですが、Protelという電気CADがありまして、これだと電源名が自由に変えられるんですよね。Eagleの場合、アイコンにある名前が固定なので、ちょっとつらい。

2006-09-23 - Blackfin空挺団::Blog http://d.hatena.ne.jp/suikan+blackfin/20060923

回路はなるべく機能別に分離できるようにする

プログラミングだと、機能別に関数に分けたりすることで、それぞれの動作確認(テスト)をしたりしますよね。あれと同じで、ハードウェアでも機能別に分けられると、デバッグが楽です。大体の基板は一発で動かないような気がしますし…デバッグの手段を設けるのは重要だと思っています。

 大規模な回路だと、「表示部」「アナログ部」「MPU部」などを別基板に分けて、それらを基板対基板ケーブルで接続するというのも分離する方法のひとつのように思います。
 が、私の作る基板はそこまで大きくはないです。私の場合、「ソルダージャンパのパターンで電源を分離する」ようにしています。電源をOFFにするだけでも、その回路は動かなくなりますからね。ただ、この場合は他モジュールからの信号の影響も考えないといけないですが、小規模回路なら十分なような気がします。

 ちなみに、「外す可能性がある」ところにはピンヘッダ+ジャンパピンを利用し、試験以外の時には接続している前提ならば、0Ω抵抗やソルダージャンパのパターンを使うような区別もしています。


!他のライブラリを信用しない

自分のライブラリを作

ライブラリが豊富なことは、Eagleの魅力の一つです。が、それとは相反するような話です。どうしてこんなことをするのかというと、以下のような理由のためです。
  • 推薦フットプリントが、会社ごとにびみょーーーーーーーに違ったりする(ex. SOT-23)。
  • シルクの統一
  • プレフィックス(prefix)の統一
 同じパッケージのフットプリントでも、「リフロー用」か「ウェーブ用」かといった違いがあります。また、手半田する場合、リフロー用のフットプリントですと、ランドの大きさに余裕がなくて少し大変だと思います(私はいつも大きめにしています)。ですので、結局ちょっと手を入れることになったりします。

 シルクの統一についてですが、マイルール『基板のシルクでは、部品の「>VALUE」は要らない。「>NAME」は40milでfontはvector』があることが理由です。
 ほとんどのライブラリでは、設定がデフォルトの「50mil、proportional」になっています。これを、いちいち[Smash]→[Info]で変えていくのは煩わしい手間です。なので、予めシルクを変更したライブラリを用意しておいたほうが楽なんです。特に、部品点数が多くなる抵抗やコンデンサではこの必要性を感じます。

 プレフィックスも統一したいですね。例えばICは「IC」、「X」、「U」など様々ですし、可変抵抗は「VR」とか、トランジスタは「Tr」(自分はあんま好きじゃないけど)とか、文句をいうと際限がないです。プレフィックスが問題になるのはBOMを出力したときで、同じICでもプレフィックスが違うと、ソート出来ずに、リストの飛び飛びの場所にICが書かれていたりしてしまいます(多分)。なので、プログラミングでの命名規則のように、プレフィックスも統一したいんです。

参考


Cadsoft Eagle tips and tricks - DP http://dangerousprototypes.com/docs/Cadsoft_Eagle_tips_and_tricks

HOW-TO: Polygons and ground fills for PCBs in Eagle | Dangerous Prototypes http://dangerousprototypes.com/2012/07/18/eagle-polygons/
Read more →

2014/12/14

[電子工作]Friskケースに入るUSB-UART変換器を作った。

,
タイトルに記しました通り、Friskケースに入るUSB-UART変換器を作りました。


外観
 写りが悪いんですけれど、こんな外観をしています。
 いつもブレッドボードなど試作時に利用する電源がなくて困っていたので、電源としても使いやすいよう、5V、3.3V、1.8Vのピンをそれぞれ2本ずつ用意しました。


 回路図とパターンを以下に示します。FTDI社のUSB-UART変換チップを利用した回路なので、特にひねったところはありません。敢えて言うなら保護回路かな…?
回路図
 回路図上では、74LVC1T45はNXP社製のものを指定していますが、NXP社のものはサイズがSC-70だかしかなく、パターンはSOT23-6で作っているので困ったことになります。TI製のもの?を利用しましょう。
 まあ、ギリギリ変換基板など利用せずともハンダ付け出来るんですけどね(上の写真みたいに)。

 電源には、TIのLDO、TPS736xxシリーズを利用しています。外付けコンデンサが必要ないこと、低ノイズが売りです。アナログ回路にも利用するかなあと思い今回使ってみました。が、単価が高いのがいかんともし難い欠点です…。
 今はLTC3406やLM26420みたいに省スペースの高効率降圧DC-DCコンバータICが沢山世に出ていますので、それを使うのもいいかもしれませんね。ノイズが気になるなら、DC-DCコンバータのあとLDOを使えばいいですし。

 ピンヘッダの部分には、不定入力にならないようプルアップ抵抗を入れていますが、プルアップする先が正しいのか今でも謎です。
 入力保護のダイオードは、小型ショットキーバリアダイオード(SBD)です。静電気から守ってくれると信じてます。

 今回は回路図の情報量をなるべく多くして書いてみました。例えばコンデンサ1つにしても、耐圧・大きさ・温度変化指定なども記入するようにしてみました。記入方法に関して、他の方の回路図を見ると結構まちまちなのですが、私は情報量多めの方針で行こうかなあと思っています。ただ、統一しないと部品リスト(BOM)で別の値となってソートできなくなってしまうので、今回は「容量/耐圧/温度変化(サイズ)」としています。

 拘ったものというと、2色LEDでしょうか。青・赤の色の組み合わせは、製品ではなかなか見ないのですが、結構綺麗ですね。使ってよかったと思います。やはり光るものは視て分かりやすいですし、変化も愉しいですから。

表面のパターン
裏面のパターン

 Eagleのデータも保存目的にリンク貼りたいところですが、GitHubは無償ライセンスだと登録できる件数に限りがあること、blogger自体はファイルのアップロードが出来ないことから、可能性を示唆するに留めておきます。
 いつかは上げたいですね(…!)

Read more →