2015年3月15日日曜日

EZ-USB FX2LP を動かしてみる (6) CPU CLKは12|24|48MHz

次はTimerを動かしてみようと思い、CPU CLKのあたりがどうなっているかを調べました.

CPU CLKは、12MHz、24MHz、48MHzの三者択一です.そのCLKがTimerへも供給されるらしい.

CPU CLKを変更するには、CPUCS[7:8]というレジスタのCLKSPD[1:0]という2bitで行う.こういう対応になっている.defaultでは12MHzになる.
CLKSPD=0   12MHz
CLKSPD=1   24MHz
CLKSPD=2   48MHz

その5でつかったサンプルプログラムのメインルーチンにCLKSPDを設定する行を追加すると、IOポートのトグル周波数が変わります.

また、CLKOUTという外部pinに、12or24or48MHzがそのまま出てきますので、オシロで変化を観測できます.下記例ではCLKOUT=48MHzになります.

#define ALLOCATE_EXTERN
#include "fx2.h"
#include "fx2regs.h"
main()
{
// set cpu clock
// CLKSPD=0   12MHz
// CLKSPD=1   24MHz
// CLKSPD=2   48MHz
//CPUCS = CPUCS & ~bmCLKSPD ; // 12MHz
//CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD0) ; // 24MHz
CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ; // 48MHz

OEA = 0xFF;
IOA = 0;
while(TRUE) { IOA=~IOA; }
}

0 件のコメント:

コメントを投稿