マイコン工作実験日記

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

WCA-009頒布について

  • WCA-009頒布希望の方は、この記事を読んでから申し込み願います。
  • WCA-009の動作確認には、トラ技2011年9月号の記事、またはこのブログ記事を参照されることをお勧めします。
  • iWRAP4.0.0ファームウェアでは、iOS5とのAVRCP接続に問題があることがわかっています。対処方法についてはこの記事を参照してください。
  • iWRAP 4.0.1がリリースされました。AVRCP接続問題が修正されています。

大きすぎるハム音

2011-10-31 07:59:31 | W-SIM
きょうは、しばらく間のあいたSAM3ジャケットでの実験。ADCにつなげたシリコンマイクは充分口元に近づければ、外付けアンプ無しでも充分使い物になる音量がとれることがわかりました。半田不良のため動作が不安定だったマイクをつけ直し。そして震えてノイズばかりだったスピーカも交換してみました。

W-SIM無しでの動作試験はADC/DACともにうまくいったので、いよいよW-SIMと連携しての実際の通話でのADC/DAC動作確認をしてみました。こんどは8000Hzのフレーム同期信号(WSIMのPCMSYNC)に同期して、ADC/DACにトリガをかけてやる必要があります。この方法には、いくつかの方式が考えられます。
  1. ADTRG/DATRG信号を使う
    外部トリガ信号であるADTRG/DATRGにPCMSYNCを与えてやる。ハードウェア的にトリガがかかってADC/DACが動いてくれるので、ソフトは楽チン。DMAも使いやすい。ADTRG端子が32Kクリスタルの端子とだぶっているので、RTCクロックとして外部水晶が使えなくなってしまうのが痛い。
  2. PCMCLKをTC0で分周して外部トリガとして用いる
    ADTRG端子を使わずに済む方法として考えたのが、この方法。PCMCLKは384KHzのようなので、これを分周して8000Hzを作り、TIOA0をトグルさせる。TIOA0はADC/DACの外部トリガといて使えるという仕掛け。端子を使わずに済むのでうれしい方法。PCMCLKとPCMSYNCは同期しているものの、PCMSYNCがアクティブとなる位置はその時々によって変化することがこれまでの経験でわかっています。そのため、PCM信号の送受のタイミングとADC/DACの送受のタイミングにはずれが生じることになり、これを吸収するためのバッファが必要となる。
  3. PCMSYNCのタイミングでADC/DACにソフトウェアでトリガをかける
    もっとも単純な方法。PCM信号はPCMSYNCに同期して送受がおこなわれるので、送受信の完了割り込みのハンドラーにおいてADC/DACの動作開始をソフトウェアで指示する方法。8000Hzの周期で割り込み処理が必要となるため、CPUの割り込み負荷が大きくなる。DMAは使わないことになるが、バッファは不要だし遅延も最低限に抑えられる。外部トリガ端子も使用しない。

それぞれ一長一短がありますが、ゆくゆくは待ち受け画面の時刻表示のためにRTCを使いたいので、ADTRGは使いたくありません。まずは単純な方法で動作確認をしておきたいので、3の方法をとることにしました。割り込み負荷は高くなりますが、タイマもバッファも使わないので周辺機能資源の観点からは経済的ですね。ハードウェアの変更も不要なので、ソフトを作って実験。

ところが、W-SIMを動かしてみてビックリ!!

W-SIMが通信状態になり、同期信号が出始めるとものすごいハム音がのってしまいます。まるでブザーが鳴っているかのような大きさのハム音です。マイクからの音声は問題なく相手側に伝わるので、受信側だけの問題のようです。PCM信号とDAC出力の配線が重なっていたので、PCM信号をつなげ直してみても変化無し。悩んだあげくに、もしやと思ってDACからアンプへの配線をはずしてみたら、やっぱりハム音が出ます。アンプ基板あるいはその先の配線がノイズを拾っているようです。まいったなぁ。どうすりゃいいんでしょ?アンプの位置を変えてみたりするしかないのでしょうかねぇ。
コメント (0) |  トラックバック (0) | 

マイクをつなげる

2011-09-30 22:59:49 | W-SIM
Willcomが一連の新端末を発表しましたが、やはりもうW-SIM端末は出ないんですかね。自分が構想をもっていたこともありますが、Bluetooth HFPとの両面待ちができる端末は、Willcomが生きる道を感じさせていいんじゃないでしょうか。フリスク端末ほどには小さいものは自作できませんが、少しは小型化できることを目指してSAM3ジャケットの製作も進めていこうと思います。

音声再生の方はなんとかメドがついたので、こんどは音声入力にとりかかることにします。ずいぶんと前から死蔵してあったシリコンマイクをSAM3のADCにつなげたところです。



BlueSAMで使ったシリコンマイクはデジタルマイクでしたが、こちらはアナログ出力のMEMSマイクです。アンプ内蔵ということなので、外付けのプリアンプも無しですませてSAM3Sに直結して具合をみてみるつもりです。アンプ内蔵とはいっても、AVREFが3.3VのADCでひろうには、出力の振幅は小さすぎるだろうと思われます。しかし、SAM3SのADC側にもアンプ機能が用意されており、2倍あるいは4倍のゲインを設定することができます。この機能の助けを借りれば通話に使えるんじゃないかと推測しているので、その確認が今回の目的です。


コメント (0) |  トラックバック (0) | 

震えていただけだった

2011-09-16 20:49:55 | W-SIM
なんとも再生音のさえないSAM3Sジャケットでしたが、ようやくと原因がわかりました。

先週末の実験ではDACにアンプを直結していただけだったので、試しにRCフィルタによるLPFをアンプの前段に追加してみました。ところが、まったく何の変化もみられません。単純なRCフィルタなので急峻な周波数特性はないにしても、少しは広域ノイズが低下すると思っていたので、大きく予想がはずれました。再生を繰り返しながらスピーカの向きを変えてみたりしていた際に、スピーカをしっかりと持つと高音ノイズがきれいに消えることに気がつきました。なんのことはない、スピーカ自身が振動してしまってノイズを発生しただけでした。ちゃんと固定しないとノイズがのってしまうようです。




確認のために、スピーカをはずして、オーディオジャックを取り付け。イヤフォンで聞いてみると、高域ノイズはなくきれいに聞こえています。イヤフォンにしたので、アンプのボリュームは最低にしぼってちょうどいい音量となりました。耳元にあてて使うことを考えれば、イヤフォンやヘッドホンを鳴らすことのできる出力があればいいのでしょうから、こんなに大きな出力のアンプは不要ですね。しかし、着信音を鳴らすためには、やはりスピーカからある程度大きな音を出したいところです。通話音と着信音には別々のアンプとスピーカを用意するもんなのかなぁ?

とにかくDACで問題なく音声再生ができることを確認できたので、次はマイクをADCにつなげてみようかと思います。


コメント (0) |  トラックバック (0) | 

音声再生できたけど、音悪し

2011-09-11 12:35:07 | W-SIM
SAM3S4BにつなげたW-SIMからの音声再生ができました。ほとんどこれまでのコードをコピペするだけで、新たに書くのはDACの部分だけだったので、ここまでは難しいことは何もありません。今回使用した回路はこんな具合↓(音声関連の信号のみ示しています)。



音声信号は、PCMSYNCに同期してSSCで受信します。受信した音声データはμ-Law圧縮されていますので、これを展開してDACに送るだけです。DACの変換は音声信号のサンプリング周期である8000Hzと同期しておこなう必要がありますので、PCMSYNCを外部トリガとして使用しています。実際の処理としては、次の処理もおこなっています。
  • 40サンプル毎のDMA転送。8000Hzでの受信の度の処理では割り込み負荷が大きくなるので、40サンプル毎にまとめて処理することにしました。5msの遅延が生じることになりますが、この程度は気にならないでしょう。40サンプル分をDMAで転送して、DMA完了を割り込みで検出します。
  • 受信したu-Lawデータを展開してDACに40サンプル毎にDMA転送して再生させています。展開されたリニアPCMデータは符号を含めて14ビットの長さがありますが、DACは12ビットです。そこで12ビットに縮める処理もおこないます

このようにハードもソフトも単純なのですが、実際にやってみると再生音が良くありません。高音部分にノイズがかぶってしまっています。音声で伝達される内容は聞き取れますけど、ノイズが耳障りです。12ビットに縮める処理として最初は14ビットのうちの上位12ビットを切りだしていたので、これを下位12ビットに変更するとともに符号反転が生じないように飽和処理を入れてみましたが、症状は改善されません。何らかの対策を施さないと実用にはならない感じ。DACの出力をアンプに直結しているだけなのがいけないのでしょうか? 試しにLPFを付け加えてみようかな。

単なる音声再生実験を実施するのにいちいち電話をかけていたのでは通話料金がもったいないので、一時的にフラッシュに試験用音声データを焼いて再生試験だけできるようにハード修正を施すことにします。
コメント (0) |  トラックバック (0) | 

SAM3ジャケット実験ボード

2011-09-03 21:07:02 | W-SIM
しばらくBluetooth/WCA-009関連ネタばかりだったので、久しぶりにW-SIMネタも並行して進めようかと思います。



SAM3S4Bボードをいつものように秋月A基板に載せて、新たなW-SIM実験ボードを組んでいます。今回の目的は、CODECを使わないW-SIMジャケット製作を目指して、その基礎実験を積むこと。SAM3S4Bには12ビットのADCとDACが備わっているので、これらを生かしてCODECを使わないジャケットを作ってみようと思います。これは、今年の目標のひとつでもあります。もっともスピーカやマイクをつなげるのにアンプが必要となってしまうので、部品の点数や値段的には、それほど優位性はないかもしれません。それでもSAM3Sの持つ機能をできるだけ使ってみる良い経験になるはずです。

まずは第一段階として、W-SIMソケットとスピーカ、アンプを載せてみました。アンプには秋月のアンプ基板を使っています。簡単な構成ですが、これだけで、受信した音声信号の再生はできるハズです。
コメント (2) |  トラックバック (0) | 

PCM信号選択

2011-03-28 22:55:16 | W-SIM
ドッチーモ・ジャケットを目指すべく、HFPとW-SIMの選択をおこなうためのセレクタを実験基板に追加しました。いつものように74HC157です。




下図のように74HC157で、W-SIMとWT32のどちらの音声信号をCODEC AIC3253につなぐかを選択してやります。また、W-SIMとWT32には独立したUARTを使って制御するように配線変更。


WT32のPCM設定も変更したので、W-SIMとHFPのどちらを使った場合でも音声信号は8ビットu-LawのPCM信号としてCODECに入ります。そのため、CODEC側は同一の設定で動作可能。音楽再生の時には、WT32からはI2Sフォーマットで、サンプリングも44.1Kになるので設定を変更する必要があります。すなわち、音楽再生時と音声通話時を切り替える際に、動的にCODECで走らせるminiDSPのコードをダウンロードしなおしてやるという処理が必要になります。

きょうのところは、ハードの準備ができたところまで。ソフトの方はチビチビとやっていくことにします。
コメント (0) |  トラックバック (0) | 

ドッチーモ・ジャケットを夢想する

2011-03-24 22:42:09 | W-SIM
スペアナ機能までの動作実験ができたので、自分としてはAIC3253でやってみたかった事のほとんどは動作確認がとれたと感じています。これまでの主な動作確認事項を整理すると、次のようになります。
  1. A2DPによる音楽の再生と3D効果(miniDSPを使わない)
  2. HFPによる携帯通話(miniDSPを使わない)
  3. W-SIMとのPCM接続(miniDSPを使用)
  4. A2DPによる再生とスペアナ表示(miniDSPを使用)

1と4はどちらもA2DPでの音楽再生なので、4の方に3D機能を盛り込めれば一石2鳥なので、PurePath Studioで設定してみたところ盛り込めそうです。

2の方はI2SでHFPの音声を流して実験してみましたが、これはWT32の設定を変更することで、PCM信号で流すこともできます。おまけにu-Lawで流すことも可能です。このようにWT32の設定を変更してしまえば、CODEC側から見れば、HFPでの接続とW-SIMとの接続は通話音声に関しては同じように扱えます。

現在の実験ボードではW-SIMとWT32を同一のUARTで制御しているために両者は排他使用としていますが、これをちゃんと分けて、さらにPCM信号についてもセレクタを使って選択するようにすれば、W-SIMによる通話機能とBluetoothのHFPを介しての携帯通話機能の両方をサポートできる「ドッチーモ・ジャケット」が作れそうです。次のW-SIMジャケットではCODEC使わずにマイコンだけで済まそうかと考えていたのですが、このCODEC使ってもおもしろいんじゃないかと思えてきました。

でも自由に発信できるようにするためには、キーパッドが必要になってしまうので、単にヘッドセット側のユニットを作ろうと考えていた当初の構想から大きく方針が変わってしまうことになってしまいます。うーん、どうしようかなぁ。キーパッドやタッチパネルを使えるようにすると、サイズも大きくなってしまいますし。まだ決めかねるので、しばらくは準備のための実験を続けようかと思います。
コメント (0) |  トラックバック (0) | 

Program Loader mode

2011-03-02 22:24:14 | W-SIM
A2DPでの再生中にI2Cでの転送がうまくできない問題がいまだに改善できずメゲていたので、気分転換にW-SIM接続で遊んでみるべく、再度WT32の代りにW-SIMをつなげてみたところ、ATコマンドへの応答が返ってきません。なんどかリターンを叩いたら、次のような表示が。。



どういうわけかW-SIMカードがプログラムローダのモードで起動してしまったようです。何度か電源を入れ直してみましたが、ほとんどの場合このモードで起動するようになってしまいました。いったい、どういう条件でこのモードで起動するのかわかりません。違うW-SIMを挿すとちゃんとATコマンドに応答するのですが。。この問題の発生したW-SIMを「携帯できる電話機」のジャケットに挿してみましたが、ちゃんとATコマンドの応答が返ってきています。

HELPの表示にしたがって、CとXコマンドを投入しても、その後何度かリターンを入力すると、再びこのモードに入ってしまうようです。ワーン、元のように普通にATコマンドで使える状態に戻したい〜!! どなたか、ご存知の方がいらっしゃいましたら、教えてください!!
コメント (2) |  トラックバック (0) | 

早くも来年の構想を練る

2010-12-18 11:05:11 | W-SIM
今年後半は、Bluetooth対応W-SIMジャケットを中心に製作をすすめてきました。昨年のMP3プレーヤの延長線上にあったとも言えます。自分ではあまり意識はしていませんでしたが、部品としてはタッチパネル付きLCDやBluetoothモジュールがそれなりの値段します。Fusion PCBで作成したプリント基板は10枚ありますから、まだ余っています。これを頒布するなりしてもいいわけなのですが、パターンミスがあるうえに部品代が1万円以上かかるので、そこまでして自作してみたいという人もいないだろうと思われます。

そろそろ次のW-SIMジャケットの構想を練るにあたり、次回作ではコストを半分程度に抑えて、基板頒布できるようなものにしようかと考えています。一昨日読んだKonyaさんの記事にも刺激されたのも一因です。またMTM06でもキットとか基板を販売する人が多いせいか、訪れた人からも「キットは無いのか?」と聞かれましたし。まぁ、キットを用意するのは大変ですので、実際にできるのは基板頒布がいいとこでしょうけど。

現在思い浮かべているおおまかな構想は次のとおりです。
  • こんどこそ、ATMELのSAM3Sを使う!!
  • 表示の液晶は小さく
    コストを抑えるうえでは重要な要素。1,000円以下で買えるもの。いいとこOLEDの小型のもの。
  • CODECチップは使わない
    CODECに頼らず、マイコンだけでなんとかする。12bitのDA, ADが使えるので、音質的にもほぼ満足できると思われる。

機能的には通話しかできないシンプルなもので、待ちうけ画面に時計表示くらいはある程度でしょうか。SAM3Sの勉強を兼ねて、基本に立ち返ってみようかと思います。キーパッドをどうするかも課題なのですが、あいかわらずSAM3Sの入手に時間がかかりそうなのも悩ましいとこです。Digikeyで調べたところでは、デバイスにもよるのですが来年2月〜5月というありさまです。

またW-SIM無しで、WT32を使ったBluetoothデバイスを作ってみたくなってきました。機能的にはMW600みたいなものです。サイズははるかに大きくなってしまいますが、その分LCDも大きくして情報表示量を増やして遊べそうな気がします。MouserでもBluegigaの取り扱いを開始したようで、WT32もSparkfunに比べて安価に入手できるようになったのも好都合です。こちらも、マイコンに何を使うか悩ましいですが、当面は手持ちのもので実験を進めることにしようかと思います。
コメント (2) |  トラックバック (0) | 

ポリカーボネートは固かった

2010-12-12 21:03:25 | W-SIM
Bluetooth対応ジャケットの基板は、何も考えずにEagle freeware版での最大サイズである80mm x 100mmで作ったので、ちょうどいいサイズのケースなんて都合良く見つかる訳が無いと思っていたのですが、予想に反して簡単に手ごろなケースが見つかってしまいました。



使ったのは秋月のポリカーボネート・ケースです。内寸が112x80x24mmの112-TSを使用。幅が80mmなので作成した基板がピッタリと収まってくれて気持ちいいです。高さは基板長100mmに対して112mmと長めですが、W-SIMがはみ出す作りになっていたので、これもちょうどいい具合に収まりました。秋月の商品カタログでは深さは14mmとなっていますが、これはタイポで実際には24mmあります。ちょっと深めで、Lipo電池が動いてガタガタするので裏側にはプチプチを詰め物として入れました。



ポリカーボネート・ケースって初めて使ってみたのですが、ドリルで穴開けてもヒビが入るようなこともありませんし、ネジ穴とか開けるには使いやすそうだと感じました。今回はタッチパネルを使うためにLCDを出すための穴をあけなければならず苦労しました。適切な電動工具でもあれば何でもない作業なのでしょうが、手作業でドリル穴をつなげてゆき、ヤスリがけする作業で何時間もかかってしまいました。この作業で疲れてしまったので、その後は充電用にUSBコネクタの穴を開けるので精いっぱい。W-SIM挿抜用の穴は省略です。詰め物をして蓋を閉めれば基板が動くこともないので、基板のねじ止めも省略しています。

電源スイッチとリセットスイッチを操作するためには、フタを開いてやる必要があるのが難点です。それでもケースに入れることで見違えるようにまとまった工作に仕上がった印象になり、自分ではかなり満足しています。

コメント (0) |  トラックバック (0) |