マイコン工作実験日記

Microcontroller を用いての工作、実験記録

シシに行ってみた

2011-08-31 22:09:58 | Weblog
6月に閉店したと思ったら、先週末に復活したaitendoの直営店ccに行ってみました。

「新規オープン」と謳っていますが、場所は以前と同じ。内装もさして変わったようには思えません。どこが「新規」なのか全く不明。「しばらく棚卸していただけじゃねぇの?」と勘繰りたくなります。今になって思い返してみると、液晶パネルとかパネル用メインボードの類がずいぶんと減ったような気がします。自分は、変換基板目当てで訪れたので、ほとんど気にも留めていませんでしたけど。商品構成から見ると もはや「液晶工房」を名乗れなくなったので、その看板を下ろしたかったことは確かなようです。

CODECすげ替え

2011-08-27 23:45:03 | Weblog
動かなかったCODEC AIC3254のすげ替え作業を実施。まずは動かなかったAIC3254をサンハヤトの表面実装部品取り外しキットを使って取り外し。そして新たなチップに付け替えました。

表面実装部品取り外しキットは今回初めて使用するために、千石にて購入。値段が高いので、別の基板にパーツを全て付け直した方が安いくらいなのですが、道具をそろえるいい機会だと考えて、挑戦してみることにしました。実際に使ってみると、低温ハンダはたしかに簡単に融けるのですが、QFPのピンの上ですぐに丸まってしまい、なかなか広がってくれません。フラックスが足りなかったのかな?こんなんで大丈夫なのか不安になりましたが、試しにチップを横に動かし見ると、ホントにたやすくスルッと動いてくれて驚き!!「なるほど、こうやって取れるのか!」と納得。値段は張っても、これは便利です。

新たなチップはなるだけ浮かないように、押さえながらハンダ付け。今度は、無事にI2Cでのレジスタ読み出しができることを確認できました。まだI2Sやアナログ廻りの動作確認も必要ですが、そのためには次の段階としてWT32の動作を先に確認せねばなりません。

CODECが動かない

2011-08-24 22:26:37 | Weblog
つかの間の涼しい日々が終わって暑い日々が戻ってきたようですが、わたしの方のお寒い状況はまだ続いています。BlueSAM用基板の動作確認を進めていたのですが、CODECが動きません。MCUはちゃんと動いており、USBシリアルでの接続もできるようになりました。続いてCODECの動作確認をというわけで、不足していたI2Cプルアップ用の抵抗を追加でハンダ付けして動作確認にはいったのですが、レジスタが読み出せません。どうやらちゃんとハンダ付けできていないようです。底面の絶縁処理がちゃんとできていないのでしょうか。

何度かハンダを盛りなおしてみるも、変化なし。一度はずして、新しいチップを付け直してみるしかないようです。しょんぼり。

涼しいうちに

2011-08-21 19:41:10 | Weblog
雨のおかげで朝方は寒いくらいに感じられます。暑さでやる気のなくなっていた作業を開始。BlueSAM用基板に主要パーツを取り付け。SPIフラッシュを余分に買うのを忘れていたので、これは後回し。AIC3254もカプトンテープでパターン上に絶縁処置を施してから、チップを載せてハンダ付け。ちょっとチップが浮きぎみになってしまいましたが、なんとかハンダ付けはでき、少なくともショートはしてなさそうです。



順次動作確認を進めねばなりませんが、まずはSAM3Sの動作確認。JTAGをSWDでつないで、チップ認識することを確認。



JTAG使えそうなことがわかって一安心です。SWDを使うことで、ソケットのスペースが節約できるのはいいのですが、ジャンプワイヤでいちいち接続するのが面倒くさい。本数は5本と少ないですが、間違えないように配線図を確認しながら接続するのが面倒です。作業用にJTAG20Pと6Pとの変換アダプタを用意しておいたほうが良さそうです。どこかで6Pのフラットケーブル売ってないかなぁ。

ベリファイ・エラー

2011-08-19 12:48:55 | Weblog
暑い中、部品の調達に出かけねばと思っていたのですが、今週前半は秋月も夏季休業であることに気が付いて延期。しょうがないので、ハードの製作作業はしばらく中断して、SAM3S4Bボードを使ってのプロジェクトを開始することに。具体的な内容は、今後の記事とすることとし、まずはいつものようにUSBシリアルでのデバックモニタを移植する作業をほぼ完了。BlueSAMで動いているコードなので、そのまま持ってくればいいだけなのですが、最後にフラッシュへ書き込む段になってエラーが発生しています。



開発にはCrossWorksを使っているのですが、書き込み後にベリファイをしたところでエラーが報告されます。エラー箇所を調べようとして、内容をダンプさせてみるとエラーが見つかりません。実際にはちゃんと書き込めているのにもかかわらず、エラーとして報告されてしまうようです。こんな問題はSAM3S4Aでは発生しなかったのに、どうしてSAM3S4Bで発生するのか見当がつきません。実害は無いようなので、ちょっと気持ち悪いけど、無視して作業することにします。


逆さま

2011-08-15 12:33:33 | Weblog
これで例年どおりなのでしょうが、暑い日が続きます。すっかりやる気をなくしているのは、暑さばかりが原因ではありません。WCA-009ができあがってくるのにあわせてFusion PCBに基板を出していたのですが、これが大失敗。



ものはまだ製作途中のBlueSAMです。まずは本体ボード↑。大きなミスは、AIC3254の部分。32ピンのQFNなのですが、中央部分がサーマル・パッドになっていることをすっかり忘れていました。このままハンダ付けするとショートしそうです。絶縁のためにカプトンテープを貼って、その上に載せることで問題回避を試みようと考え中。他にも、SAM3SのVCCが3.3Vにつながっていないという大バカもやらかしてしまいましたし、電池のコネクタも逆さまでした。この調子だと、まだこれからも問題個所が見つかりそうです。

そしてもう一枚。こちらはLCDと方向スイッチを実装するための基板です↓。



部品実装時の完成イメージはこちら↓。



スイッチの方は問題なさそうなのですが、LCDで致命的なミスをおかしてしましました。コネクタ部分を基板裏側に廻して、ハンダ付けすることにしたのですが、コネクタの上下を間違えてしまいました。そのため、ピン番号が逆順になってしまったのです。ほとんどの端子のパターンをカットして、ジャンパしなければ使えません。これでかなりショックを受けたわけですが、さらに追い打ちをかけるミスがもうひとつ。このLCD基板は、「LCDとスイッチの組み合わせでBlueSAMに限らず他の工作にも流用できるから、かなり便利だ!」という目論見があったわけです。もちろん本体ボードとLCD基板をつなぐヘッダ/ソケットの位置はちゃんと重なりあっているわけですが、LCD基板をユニバーサル基板と重ねてみて、気が付きました。2つの接続用ヘッダの間隔が175milになっていて、ユニバーサル基板と穴位置があいません。ガーン。かなり意気消沈しています。

いずれも極めて初歩的なミスで、ちょと確認するだけで防げたミスなのに、手抜きが災いしています。Fusion PCBが余りにも安いので、「最初はバグ出しのための試作でもいいや。」という甘えがあり、面倒な確認作業をサボる自分への言い訳にしていたので、こういう結果が出るのもある程度予想はしていました。それでも、あまりにもバカなミスとなって跳ね返ってきたので、かなりメゲ。

今回もパターンは自動ルータまかせで、進歩なし。もう少しちゃんとPCBの作り方勉強しなきゃいけません。トラ技の10月号と11月号がEagleによる基板設計と表面実装関連ということなので、これらの記事をいますぐに読みたいです!!

読者プレゼントあります!!

2011-08-10 00:19:35 | WT32/BM20
本日発売の「トランジスタ技術9月号」にWT32/WCA-009の紹介記事を書かせていただきました!! 文章量が当初予定していたページ数を大幅に超えてしまったために、ページ数を増やしてもらうとともに一部文章を削ることになってしまいました。そのような事情もあり、説明が足りなかったり、わかりにくいところが多々ありますが、ひとえにわたしの説明能力不足が原因であると反省しております。

トランジスタ技術 (Transistor Gijutsu) 2011年 09月号 [雑誌]
CQ出版
CQ出版


掲載記事では、WCA-009を使ってのA2DP/AVRCPとHFP接続の実験について説明しました。ハードウェア的には「Bluetoothスピーカ」に類似していますが、ヘッドフォンとマイクを接続できるのが大きな違いです。PC用のヘッドセットを接続しての実験がおこなえますので、是非ともお試しください。ブログで説明したように、タクトスイッチを追加するとさらに使い易くなると思います。

また、トランジスタ技術の読者プレゼントとして、WCA-009を2枚提供することにしました。「興味はあるけど、値段高いし。」と思っていた方は、応募してみてはいかがでしょうか? ホントはスポンサーが欲しいところですが、見つけている時間も無かったので自腹切って提供します。プレゼント応募方法については、トラ技9月号を参照してください。

WCA-009で作る入退出検出器

2011-08-07 16:18:26 | WT32/BM20
先週、WCA-009を使った簡単な電子工作ネタとして、Bluetooth対応スピーカの製作をとりあげました。同じように簡単に工作/実験できるネタはないかと考え用意してみたのが(かなり苦しいところもありますが)、今回紹介する「入退出検出器」↓です。



「なんだか、先週のBluetoothスピーカと似てネ?」と思われたアナタ!! そうなんです、同じハードなんで写真流用してます。

WCA-009は、Bluetooth version 2.1のClass 2対応です。出力される電波の強度が制限されていますので、電波の到達範囲として一般的に「おおむね10m」と紹介されています。このように通信可能距離が限られていることを逆手にとって、検出対称となるBluetooth製品と通信できるかどうかを判断することで、入退出があったとみなそうというわけです。具体的には、登録した携帯電話とHFPでの接続ができるかどうかをもって、その携帯を持った人の入退出を検知することにします。もちろん、携帯の電源をON/OFFするだけでも入退出とみなされてしまいますけど。

ハードは先週と同じなので、違うのはソフトというか、WT32の設定だけです。しかし、今回の設定手順はちょっと複雑になります。

まず最初に検出対称とする携帯とのペアリングをおこないます。第一段階として、次の設定をおこなったのち、携帯とWT32のペアリングを行っておきます。
set bt pair *
set reset
set bt class 240428
set bt auth * 0000
set control cd 80 0
set profile spp
set profile hfp on
reset

set resetを入力したところで、いったんリセットがかかるので、再起動されるのを待って続きを入力してください。携帯からペアリング操作をおこない、PIN番号を聞かれたら0000を入力します。ペアリングができたところでWT32の設定を確認すると↓のように set bt pair の行にペアリング情報が入っていることが確認できます。



続いて、以下の設定コマンドを入力します。

set control init volume 13
set control autocall 111e 10000 hfp
set control bind 0 80 fall play 5+bb_bb_bb
reset

動作の仕組みは次のとおりです。
  • 電源が入るとset control initで指定したコマンドが実行されます。ここでは、ボリュームの音量を13に設定しています。
  • autocallの機能により、10000ms (10秒)間隔で、ペアリング済みの携帯に対してHFPの接続を繰り返し試行します。
  • 指定携帯を持った人が入室(というか近くに来ると)、HFPでの接続が確立します。set control cdの設定により、PIO7につないだLEDが点灯します。
  • 携帯をもった人が離れてしまうと、HFPの接続が切れ、LEDが消灯します。この時、PIO7の出力はHレベルからLレベルに変化します。
  • set control bindの設定により、PIO7で立下りが検出されると、playコマンドで指定されるベル音が鳴ります。

このように、HFP接続が確立すると、LEDが点灯します。そしてHFP接続が切断されると、LEDが消灯するとともにベル音が鳴ります。ここではPIO7にLEDをつないでいますので、LEDで入室状態を表示することとしていますが、LEDの替わりにリレーやSSRをつなげば、外部の装置や電源を制御することも可能となるでしょう。

HFP接続の有無での判断しか行っていないので、上記の構成/設定では1台の携帯の判断しかおこなえません。WT32では、複数のHFP接続を持つことも可能ですので、マイコンやPCを使えばどの携帯との接続が確立/切断されたかを判断することも可能となります。

今回は(無理やり)入退出検出にこじつけてみましたが、振動モータをつなげて小さく組んだものを常時持ち運べば、携帯忘れの検知用途にも使えます。市販の↓のような製品も基本的にはHFP接続の切断をもって、携帯忘れの検出としているようです。着信時の振動をさせるには、今回の工作だけではムリですが、マイコンを使って着信時のメッセージを検出すれば簡単に実現可能です。大きさの制約から、ブレスレットとはいきませんが、胸ポケット大くらいにはできるでしょう。

プリンストンテクノロジー Bluetooth対応ブレスレット型バイブレーター ぶるっトゥース (ブラック) PTM-ICNBK
プリンストンテクノロジー
プリンストンテクノロジー

WCA-009を使って作る簡単Bluetoothスピーカ

2011-08-01 23:18:21 | WT32/BM20
これまでWT32をLPC2387/88, SAM7S, SAM3Sなんかにつないできていますが、いずれもマイコンやCODECとPCMやI2Sでつなぐ使い方ばかりを記事にしています。しかし、単純にWCA-009を使ってWT32の動作確認をするのが目的であれば、わざわざマイコンをプログラムしたりしなくても、もっと簡単に実験することができます。そこで今回は、半日もあれば製作できるBluetoothスピーカを紹介することにします。



写真に見えるとおり、主要部品はWT32と秋月のUSBシリアル変換モジュール(AE-UM232R)の2つだけという構成です。それ以外の重要部品としては、基板の裏側に3.3Vのレギュレータが載っており、これでUSBの5VからWT32用の3.3Vを生成しています。このボードをPCとUSBでつないでやれば、PCからWT32のコマンドを直接たたくことができます。スピーカはオーディオ信号の差動出力端子に直接つなげばいいだけです。あとは、WT32を設定してA2DP sink側に設定してやれば、Bluetooth対応スピーカのできあがりです。

重要な注意点は、
  • WT32は3.3Vで動かします。5V加えると壊れます。
  • WT32とAE-UM232Rのシリアル信号をつなげます。同じ名前の信号をつないではいけません。TXDとRXD, CTSとRTSを交互に接続します。
の2点。RTS, CTSはつながなくても動作すると思いますが、フロー制御のためにつないでおくと、後々PSTOLLやFDUなどのツールを使う時に困らずにすみます。

スピーカつないだだけではあまりにもそっけないので、WT32のPIOを使ってのオマケ機能も用意してあります。
  • まず、LEDをひとつ。このLEDはBluetoothでの無線リンクが確立すると点灯するように設定することができます。簡単な動作状況表示というわけです。
  • そしてタクトスイッチを3つ。これらのスイッチのつながるポートでは、状態変化があると対応付けたWT32コマンドを実行するように設定します。
ここでは3つのボタンを、AVRCPコマンドを使っての再生(Play), 停止(Pause)、次の曲へのスキップの3つの操作に対応付けています。

回路図です↓ WCA-009以外の必要パーツはすべて秋月でそろいます。3.3Vレギュレータは手持ちのもので適当に。AE-UM232Rは、いったんWT32の設定をおこなってしまえば、後は電源を供給する役割で使うだけです。定常的にスピーカとして使うのであれば、電池やただのUSBコネクタに置き換えてしまってもいいでしょう。



PCをつなげて端末ソフトで開く際には、115200ボー, 8ビット、パリティ無しで開きます。そして、次のコマンドを入力します。
set reset
set bt class 240428
set bt auth * 0000
set bt pagemode 4 2000 1
set control cd 80 0
set control bind 0 80 rise call e8:06:88:92:1d:1e 17 avrcp
set control bind 1 40 rise @1 avrcp forward
set control bind 2 20 rise @1 avrcp play
set control bind 3 10 rise @1 avrcp pause
set profile spp
set profile a2dp sink
set profile avrcp controller

setコマンドでWT32の設定を確認すると次のようになるでしょう↓。


  • SET CONTROL CD 80 0で無線リンクが確立されるとPIO7をHにすることを指示しています。
  • SET CONTROL BIND 0の行でPIO7がHになった時に、callコマンドを実行してAVRCP接続することを指示。
  • SET CONTROL BIND [123]の各行でPIO4~PIO6につながった各タクトスイッチの役割を定義。
callコマンドで指定するデバイスアドレスは適宜、接続相手のデバイスのアドレスに合わせてください。設定したら、いったんresetしておきます。

iPadやPCのようなプレーヤ側からA2DPの接続があると、自動的にA2DP接続します。タクトスイッチを押してやることで、対応する操作が可能です。



音量の変更もWT32のコマンドでできますので、さらに2つタクトスイッチを追加して、音量の増減操作に割り当ててもいいでしょう。