PWM版 その2
PWM版 その2
今後はATmega88で実動作させて、出力波形をオシロで観測してみようと思う。
STK500 評価基板に JTAG ICE mkII を繋いで新しいファームを送り込み、出力ピンをオシロであたって見たところ、パルス幅がうにうにと変化していた。よしよし。
実動作させるには基板に組んで、外部クロックで動かしてやる必要がある。もちろん出力のフィルタも構成しなくてはならない。速度調整用の機構は、実際の動きを見ながらつまみのレンジを決めたいので、そのあとということになろうか。
今現在のSTK500の環境下では8MHzを8分周した内部クロック(1MHz)で動かしている。8bitのPWMでプリスケール無しで供給しているので、この状態で約3.8~3.9kHzのPWMキャリアとなっており、計算結果と一致する。
これが20MHzとなると、ん? 約78kHz? ちと高くない? と、参考にしたRJBさんのページの回路図(pdf)を見ると、PICマイコンに20MHzを供給してPWMのキャリアは 19.53kHz との記載。あ、PICでもPWMペリフェラルは分周クロックじゃなくて動くと聞いていたんだけど‥ あとでPIC16F648のデータシートを読もう。
PICのデータシート読んでみた
ということでPIC16F648のデータシート(pdf)を読んでみたところによれば、20MHzクロックでprescaleなしでは、19.53kHzで10bitのPWMのよう。8bit PWMだと78kHzキャリアということらしい。記憶どおりPWMの回路ではPIC お約束の4分周がされていないようでよかったよかった。
AVR の CWG はどうしよう
20MHzをくべてby 4で pre-scale するのもアレなので、内臓の8MHzを分周なしで動かして、PWMのキャリア 31.250kHz でいいような気がしてきた。温度特性でクロックが揺らいだらそれはそれでOKという方向で。