マイコン工作実験日記

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

OKI CODEC - 音が出た

2008-01-12 23:05:34 | W-SIM
OKIのコーデック ML7041を使ったボードを組んでみました。CODEC周り以外は、前回のTIのCODECを使ったボードと同じです。そのためソフトの方も変更が必要なのはCODEC関係だけですみます。その上、TIの時と同じようにI2C制御ですので、実際にはレジスタに書き込む値を変更する程度の作業量でソフトの修正は済んでしまいます。


とりあえず、電源とデジタル部分の配線を終えたところで、チップの動作確認をとります。ブート後I2Cを初期化してレジスタをダンプするようにソフトを組んで電源を入れたのですが、これが動かない!! CODECを壊したかとあせってしまいます。初期化もレジスタの読み書きも、ソフトについてはTIのCODECを使ったボードで動作確認済みの部分ですので、ソフトに問題がないことは明らかです。配線を見直すも、電源とI2Cの2本だけなので、間違いないことは簡単に確認できちゃいます。残るはタイミングの問題かということで、データシートを見直すとTIとOKIとの違いが見つかりました。

TIのCODECではI2Cのクロックとして400KHzまでサポートしています。そのため、AT91SAM7S側ではおよそ200KHz弱のクロックを生成するようにしていました。ところが、OKIのCODECではクロックは100KHzまでとなっています。どうやらクロックが速すぎてちゃんと動作しなかったようです。クロックを半分に落として改めて試験すると無事にレジスタダンプが採れました。内容もデータシートで説明されている初期値のとおりでひと安心。

次にアナログ部分の配線と確認へ進みます。ML7041ではイヤホン出力が2つ、スピーカ出力ひとつ、それにマイク入力3つをサポートできます。このうち、イヤホンは外付け部品として直流カットのコンデンサをひとつつけるだけで直接ドライブすることができるので、まず最初にイヤホンをつなげてみました。ジャックにPC用のヘッドセットを挿して、デバックモニタから117をダイアルすると、時報がきれいに聞こえてきました。PCMの読み込みもD/A変換も全部CODECチップがやってくれるので、AT91SAM7Sのソフトは何もしていないわけですが、やっぱり音が出て聞こえるというのは、「動いた!!」という実感があり嬉しいですね。

イヤホンに続いてマイクとスピーカも配線しましたが、マイクの動作で苦労することになりました。この件については、明日の記事で書くことにします。