きょうは、しばらく間のあいたSAM3ジャケットでの実験。ADCにつなげたシリコンマイクは充分口元に近づければ、外付けアンプ無しでも充分使い物になる音量がとれることがわかりました。半田不良のため動作が不安定だったマイクをつけ直し。そして震えてノイズばかりだったスピーカも交換してみました。
W-SIM無しでの動作試験はADC/DACともにうまくいったので、いよいよW-SIMと連携しての実際の通話でのADC/DAC動作確認をしてみました。こんどは8000Hzのフレーム同期信号(WSIMのPCMSYNC)に同期して、ADC/DACにトリガをかけてやる必要があります。この方法には、いくつかの方式が考えられます。
それぞれ一長一短がありますが、ゆくゆくは待ち受け画面の時刻表示のためにRTCを使いたいので、ADTRGは使いたくありません。まずは単純な方法で動作確認をしておきたいので、3の方法をとることにしました。割り込み負荷は高くなりますが、タイマもバッファも使わないので周辺機能資源の観点からは経済的ですね。ハードウェアの変更も不要なので、ソフトを作って実験。
ところが、W-SIMを動かしてみてビックリ!!
W-SIMが通信状態になり、同期信号が出始めるとものすごいハム音がのってしまいます。まるでブザーが鳴っているかのような大きさのハム音です。マイクからの音声は問題なく相手側に伝わるので、受信側だけの問題のようです。PCM信号とDAC出力の配線が重なっていたので、PCM信号をつなげ直してみても変化無し。悩んだあげくに、もしやと思ってDACからアンプへの配線をはずしてみたら、やっぱりハム音が出ます。アンプ基板あるいはその先の配線がノイズを拾っているようです。まいったなぁ。どうすりゃいいんでしょ?アンプの位置を変えてみたりするしかないのでしょうかねぇ。
W-SIM無しでの動作試験はADC/DACともにうまくいったので、いよいよW-SIMと連携しての実際の通話でのADC/DAC動作確認をしてみました。こんどは8000Hzのフレーム同期信号(WSIMのPCMSYNC)に同期して、ADC/DACにトリガをかけてやる必要があります。この方法には、いくつかの方式が考えられます。
- ADTRG/DATRG信号を使う
外部トリガ信号であるADTRG/DATRGにPCMSYNCを与えてやる。ハードウェア的にトリガがかかってADC/DACが動いてくれるので、ソフトは楽チン。DMAも使いやすい。ADTRG端子が32Kクリスタルの端子とだぶっているので、RTCクロックとして外部水晶が使えなくなってしまうのが痛い。 - PCMCLKをTC0で分周して外部トリガとして用いる
ADTRG端子を使わずに済む方法として考えたのが、この方法。PCMCLKは384KHzのようなので、これを分周して8000Hzを作り、TIOA0をトグルさせる。TIOA0はADC/DACの外部トリガといて使えるという仕掛け。端子を使わずに済むのでうれしい方法。PCMCLKとPCMSYNCは同期しているものの、PCMSYNCがアクティブとなる位置はその時々によって変化することがこれまでの経験でわかっています。そのため、PCM信号の送受のタイミングとADC/DACの送受のタイミングにはずれが生じることになり、これを吸収するためのバッファが必要となる。 - PCMSYNCのタイミングでADC/DACにソフトウェアでトリガをかける
もっとも単純な方法。PCM信号はPCMSYNCに同期して送受がおこなわれるので、送受信の完了割り込みのハンドラーにおいてADC/DACの動作開始をソフトウェアで指示する方法。8000Hzの周期で割り込み処理が必要となるため、CPUの割り込み負荷が大きくなる。DMAは使わないことになるが、バッファは不要だし遅延も最低限に抑えられる。外部トリガ端子も使用しない。
それぞれ一長一短がありますが、ゆくゆくは待ち受け画面の時刻表示のためにRTCを使いたいので、ADTRGは使いたくありません。まずは単純な方法で動作確認をしておきたいので、3の方法をとることにしました。割り込み負荷は高くなりますが、タイマもバッファも使わないので周辺機能資源の観点からは経済的ですね。ハードウェアの変更も不要なので、ソフトを作って実験。
ところが、W-SIMを動かしてみてビックリ!!
W-SIMが通信状態になり、同期信号が出始めるとものすごいハム音がのってしまいます。まるでブザーが鳴っているかのような大きさのハム音です。マイクからの音声は問題なく相手側に伝わるので、受信側だけの問題のようです。PCM信号とDAC出力の配線が重なっていたので、PCM信号をつなげ直してみても変化無し。悩んだあげくに、もしやと思ってDACからアンプへの配線をはずしてみたら、やっぱりハム音が出ます。アンプ基板あるいはその先の配線がノイズを拾っているようです。まいったなぁ。どうすりゃいいんでしょ?アンプの位置を変えてみたりするしかないのでしょうかねぇ。