CCWO Embedded Space

CCWOの日々の開発を発信するブログ

Renesas RX621 クロック

RX621のクロック設定は非常に簡単になっております。
hardware_setup.cにて以下のようにClock_initialzie関数を作成し、HardwareSetup関数にて呼び出します。

hardware_setup.c

#include "iodefine.h"

void Clock_initialize(void);

void HardwareSetup(void)
{
	Clock_initialize();
}

void Clock_initialize(void)
{
	SYSTEM.SCKCR.BIT.ICK = 0x0;	// ICLK: XTAL*8
	SYSTEM.SCKCR.BIT.PCK = 0x1;	// PCLK: XTAL*4
	SYSTEM.SCKCR.BIT.BCK = 0x2;	// BCLK: XTAL*2
}

となります。
SCKCRレジスタにてICLK、PCLK、BCLKのクロックを入力クロックから何倍PLLするか設定するだけです。
ただし、ビット単位でアクセスする場合はこの順でないと初期化できないので注意!レジスタ単位でアクセスする場合は問題ありません。