今日はPICソフトの巻。
最新のエンハンストコアのPICは内蔵クロックで32MHzもの高速で動く。
色々な処理をたくさん詰込めるように、最大クロックで動かすことを想定し、今までADコンバータや液晶表示のテストをしてきた8MHzから、32MHzにクロック設定を変えてみた。
ちょいちょいで動くと思っていたら、そうは問屋が卸さない。
PLLがうまく動いてくれない。結局、解決に半日もかかってしまった。
内蔵クロックを選択するというレジスタ設定ではだめで、foscを原発振の設定にしないとだめと言うことが判明するまで、英語のデータシートを読みながらあらゆる可能性を試してしまった。。。。疲れた。。。
とりあえず、32MHzでCPUは動いたのだけど、LCDディスプレイやADコンバータは、8MHz時の設定ではクロックが早すぎて付いてこられず、これらのパラメータもデータシートとにらめっこしながらチューニングしなければならない。
写真はオシロでクロックを確認している画面。クロック出力は、32MHzが4分周されているので、8MHz(7.99だけど)となっている。矩形波になるはずなんだけど、めいっぱいなまってて、これも何かおかしいなぁ。まだ、設定がきちんとできてない可能性もあり。。。。
はぁ・・・・次から次から新たな課題がよくもまあこれほど出てくるものだ。いつになったら太陽光発電を自宅で利用できるようになるのかなぁ。。。。
(プロからのコメント) 一般的なプロセッサだとPLLの電源は分離されていて、そこにフィルタを入れるのが普通ですが、PICにはないみたいですね。PIC固有の話ではなく、一般論ですが、PLLの誤動作はカットオフ周波数に近辺に凄く鋭敏なポイントがあって、ノイズがその周波数成分を持っていると、通常は誤動作するはずもない僅かなノイズで大きなジッタがでちゃう場合が多いです。波形はオシロの帯域の問題のような気もします。
(私) 詳しい解説ありがとうございます。さすが、プロ!! オシロの周波数は、はい、そのとおりです。1Gサンプリングの60MHzまでの安物ですから、こんなところが限界かなとも思ってます。個人所有の計測機器ではそんなにコストかけられませんからねぇ。今後もいろいろとご指導お願いします。