投稿日 2013/10/02
Microchip社のデモボード DM240311には28ピンDIPのCPUが挿せるので、標準搭載の24F16KA102を抜き24FJ64GA002に差し替えて消費電流を測定してみました。
24FJ64GA002は24F16KA102のようにXLP(低消費電力)がうたい文句になっている訳ではありませんが、比較のために測定してみました。
16Mips 電源電圧2.0Vから3.6V
Runモードの他、Idle, Sleepモードを持ち、DOZEによるCPUクロックをプログラマブルに変更可能です。
Deep Sleepモードはありません。
RTCCをサポートしていますが、周辺モジュール(Peripheral)にさほど特徴はありません。
650uA/MIPS at 2V Sleepは250nA at 2Vとなっています。
PIC 24FJ64GA002のオシレータ・ブロックダイヤグラム
クロック源は上図のように、プライマリオシレータとしてXT, HS, EC。
内蔵オシレータはFRC 8MHzとLPRC 31KHzです。いずれもnominalですので、あまり安定ではないようです。
セカンダリオシレータとして32,768HzのRTCC用オシレータなどが使えます。
プライマリオシレータ、またはFRCの分周器を通過したクロックをPLLで4逓倍することができます。Foscの最高は32MHzなので、PLLを通す場合は8MHzが最高周波数となります。
24FシリーズはFosc/2がクロックとなります。Fosc/2がCPUまたはPeripheralに加わりますが、CPUクロックはZODEの分周器で最大256分周できるようになっています。
24F16KA102が搭載しているLPFRCはありません。
以下は電源電圧2.9Vで計測しています。
24FJ64GA002の電流のみを計測しています。
24F16KA102より全体的にスタンディングが高いようです。
FRC 8MHzをPLLとRCDIV分周器を用いてFosc/2 16MHZから15.6KHzにおける消費電流
FRC 8MHzをDOZEで分周しCPUクロックのみ Fosc/2 16MHzから12.5KHzにおける消費電流
sleepは0.31mAと計測しました。
LPRC 31KHzをDOZEで分周 Fosc/2 15.5KHzから121Hzにおける消費電流
このくらいクロック周波数が低くなると消費電流は2.96mAでほとんど変わりません。
LPRCをDOZEで変化させてもほとんど無意味ということになります。
計測に使用したプログラム
#include <p24FJ64GA002.h>
_CONFIG2(POSCMOD_NONE & I2C1SEL_PRI & IOL1WAY_OFF & FCKSM_CSECMD & OSCIOFNC_OFF & FNOSC_FRCPLL & SOSCSEL_SOSC & IESO_OFF)
_CONFIG1(WDTPS_PS32768 & FWPSA_PR128 & WINDIS_OFF & FWDTEN_OFF & ICS_PGx3 & COE_OFF & BKBUG_OFF & GWRP_OFF & GCP_OFF & JTAGEN_OFF)
int main(void){
//PMD1 = 0xFFFF;
//PMD2 = 0xFFFF;
//PMD3 = 0xFFFF;
CLKDIVbits.RCDIV = 0;
CLKDIVbits.DOZE = 0;
CLKDIVbits.DOZEN = 0;
while(1) {
//Sleep();
//Idle();
}
}
(JF1VRR)