マイコン工作実験日記

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

まずはクロックから

2013-04-28 17:52:59 | SAM4
ようやくとSAM4Lでの開発作業を開始しました。SAMシリーズの名前を冠していても、これまでのSAM7やSAM3S/SAM4Sとは内部の構成が全く違っているので、コツコツとデバイスドライバを用意する作業を進めていくしかありません。もちろんATMELが提供してくれるライブラリもあるで、それを使えば自分でドライバを作る必要なんかないわけですが、苦労してドライバを自分で作るのも楽しみの一部なので、やっぱり自作する道を選んでしまいます。

SAM4Lではクロックの構成もこれまでとは随分と違っています。32KHzのRC発振器で動き始めるのは同じですが、これ以外にも115KHzRC発振器、4,8,12MHzRC発振器、80MHz RC発振器と内蔵RC発振器だけでも4種類も用意されています。アプリケーションの用途や使用する周辺機能での要求に応えるためにこれらの発振器が用意されているのでしょうが、具体的にどのような用途を想定しているのか、まだわからずにいます。

当面はいつものようにUSB CDCでつなげる環境が欲しいので、USB CDCドライバの開発が最優先事項です。USBを使うためにはクロック精度が必要となるので、おのずとクロック源としては内蔵RC発振器ではなく外付けクリスタルが必要となります。12MHzのクリスタルを使って、これをPLLを使って192MHzを生成。さらにこれを分周して作った48MHzをUSBクロックならびにCPUクロックとして使うことにします。

SAM4LではSCIF(Serial Control Interface)を設定することで、クロックの設定をおこないます。SCIFはGCLK0からGCLK11の12個のクロック生成ユニットを持っており、それぞれクロック源と分周比を指定することで異なる周波数のクロックを生成して周辺機能部分に供給したり、マイコンの端子から出力することができます。GCLK7がUSBのクロック源となるので、こいつを設定してやらなければならいということをようやくと理解。しばらく地道な作業が続きそうです。