マイコン工作実験日記

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

CODEC MCLK用2.048MHz

2008-01-02 01:19:21 | W-SIM
CODECではマスタークロック(MCLK)として、2.048MHzのクロックが必要とされます。64K回線32ch分、E1相当の周波数ですね。TDMバスでは標準的に使用される周波数なのでしょうか?

さて、この2.048MHzクロックを用意するのに水晶発振回路を組むのも面倒なので、なんとか用意できないか検討してみました。SAM7-H256ではMAINCKとして18.432MHzの水晶を使っていますので、ちょうど2.048MHzの9倍になっています。PMC(Power Management Controller)のクロック生成機能が使えればベストだったのですが、あいにくと8分周とか16分周はできても、9分周はできません。

TimerやPWMを使ってクロックを生成してやれば、分周率は自由に設定できるようになりますが、周期毎の反転出力となるため元クロック(MCK)として2.048MHzの偶数倍が必要となってしまいます。USBを使う都合上MCKは48MHz近辺になっていますので、やはり半端です。しょうがないので、AT91SAM7S256のPLLの設定を次のように変更することとしました。
PLLOut = 18.432MHz / 9 * 48 = 98.304MHz
MCK = PLLOut / 2 = 49.152MHz

MCKとともにUSB用のクロックも48MHzからはずれてしまうので、UDPが使えないことになってしまいますが、あきらめることにします。48分周でPWM0出力を反転させてDuty cycle 50%のCODEC用MCKとすることとしました。2.048MHzにこだわったところで、もともとPCMCLKが合わないので、ちゃんと音が出るようになるわけではないのですが、CODECを置き換える時の準備として作業を進めておきます。