dsPICでオーバークロックさせてみた

電源の制御にdsPICを使っているんですが、どこまで高速処理ができるのか気になったので試してみました。
PICでやられている方はいらっしゃいましたね。
PICのオーバークロック実験
AVRマイコンだと倍くらいまでは問題ないともどこかでみかけました。

今回はdsPICの入門ボードを使って、オーバークロックさせつつ電源のディジタル制御をしてみました。

使用したのはMicro Application社 MA313です。
降圧コンバータ・昇圧コンバータのディジタル制御を実装できます。これからディジタル制御をやってみたいという方にはお勧めです。
2015-10-17 15.47.02
このボードには、
・dsPIC33FJ16GS502
・10MHzセラロック
が付いています。
今回は、降圧コンバータのPID制御を実装して、推奨動作周波数より高い周波数にした時に動作できるかを評価しました。
dsPIC33FJ16GS502ではFosc=12.5MHz~80MHzが推奨されています。(データシートより)
※Foscとは源発振周波数を分周・逓倍器を通した最終的な周波数のことです。

評価した周波数と計算時間を以下に示します。
※”計算時間”とは、「PIDを計算しPWMのディーティ比を変更する」までの時間です。
Fosc=80MHz 計算時間:650ns
Fosc=100MHz 計算時間:550ns
Fosc=150MHz 計算時間:400ns
Fosc=200MHz 計算時間:390ns

どうやったかというと、以下のように計算時間の間にパルスが発生するようにして時間を測定しました。

2015-10-17 15.47.32
Fosc=80MHzでの動作波形 黄:PWM波形 青:計算時間測定用 赤:出力波形(リプルのみ)

結論としては、
Fosc=200MHzで問題なく動作はしたが、計算時間は頭打ちになった。
という結果になりました。

予想外と言えば予想外の結果に。
計算時間は変わらず、問題なく動作してしまうのはどういうことなんでしょう。原因が知りたいです。
また80MHzと150MHzの結果を見ると、ちょうど周波数が倍くらいになるので、時間も半分になるかと思ったら、そうはならないみたいですね。
でも高速化の恩恵は受けられることになるので、このくらいの処理であれば推奨周波数の2倍までオーバークロックする価値はありそうです。
もちろん、消費電力、それにともなう熱は増えますが…

AD変換のスピードも評価してみました。

dsPIC33FJ16GS502の最小ADクロック周期(Tad)は35.8nsとされています。
要するに大体、AD変換のための周波数は28MHzが良いということです。
これがどの周波数までいけるのか上記と同じ状況で試してみました。

Fosc=160MHzとして、ADCONレジスタのADCSによる分周比を変えました。
1/4倍=>40MHz(Tad=25ns)
1/2倍=>80MHz(Tad=12.5ns)
1倍=>160MHz(Tad=6.25ns)
結果、全ての場合でAD変換できてました。問題なく制御できていました。
周波数が高い方が変換時間は速い、ただ、Tad*16で変換時間となるはずだけど、それと実際の変換時間があわない…
これも上のことと同じことが起きてるのか。

これも予想外と言えば予想外…
1つの逐次比較型のチャネルで最高2MSPSと書いてはあるので、変換時間500nsになるはずですが、それは確認できました。(何故か160MHzのとき)
原因を知るためにはもっとお勉強が必要ですね。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です