2010年1月18日月曜日

32.768kHzで動かす

前回取り付けた32.768kHzの発振子の動作確認をしました。見た目で判断できるようにLCDパネルを使い、何か表示ができればOKとします。
LCDパネルを動作させるために、S1C17702にはLCDドライバが内蔵されています。
このドライバにクロックを与える必要があるのですが、マイコン内蔵クロック(2.5MHz)と、ボードに付属されているクロック(8MHz)、前回実装したクロック(32.768kHz)のどれかを選択することが出来るようです。
今回は、動作確認のために32.768kHzで動かしてみたのですが、そのときにしょうもないミスで結構悩む羽目になってしまいました・・・(^^; 覚え書きしておきます。
------------------------


■LCDドライバの構成
image

データシートのLCDドライバの構成を見ると、HSCLKとOSC1のどちらかを選択して動作させるような感じです。ちなみに、HSCLKとOSC1は次のことを指します。
・HSCLKは、IOSC(内蔵クロック)とOSC3(外部8MHz)のどちらか選択した方。
・OSC1は、OSC1(外部32.768kHz)。
なので、クロック制御関連のレジスタを触って、OSC1を選択してみようと思います。



■クロック制御レジスタ
image

データシートからクロック制御に関するレジスタを3つ見つけました。

・0x5060:Clock Source Select Register(クロック源の選択)
・0x5061:Oscillation Control Register(発振制御)
・0x5063:LCD Clock Setup Register(LCDクロックの設定)

image
image
image

デバッガを起動して、OSC1が選択されるように3つのレジスタに設定を行ったのですが、Clock Source Select Registerの「System clock source select」をOSC1に設定したとたんにデバッガがフリーズしてしまう現象が起こりました。 何度やってもフリーズ・・・。

もしかして、32.768kHzの発振子か、もしくはセラコンの半田付けがうまくいってなかったのか?と半田付けに疑いをかけて、ホットボンドをひっぺ返し基板をマジマジと見たのですが、問題無さそう。 計測器は無いので発振してるかどうかは不明・・・。
もう一度、データシートを見たのですが、あまりコレといったモノは見当らず・・・。念のため、液晶付きマイコンボードの本を読んでみると、この液晶付きマイコンボードについての制約が書かれていました!

・デバッグモニタを使用する上でのユーザプログラムの制限
「常にシステムクロックをOSC3(8MHz)にし、・・・」


なるほど、システムクロックは常にOSC3にしておく必要があるのか。
たぶん、「System clock source select」を変更したとたんに、デバッグモニタが正常に動作しなくなって、デバッガがフリーズしてしまったのかな。

というわけで、「Oscillation Control Register」と「LCD Clock Setup Register」のみを設定してみると、LCDパネルに何か表示され、フリーズもしなくなりました\(^▽^)/
ちなみに、何が表示されたかというとゴミデータでした。表示RAM領域には、何も書き込んでいないため、ゴミデータが表示されました。
とりあえず、これで32.768kHzの動作確認はOK(?)のはずですw
無事に動作して良かったですが、しょうもないミスでした(^^;

関連記事:


0 件のコメント:

AddThis