OBJETIVO:
Se configurará el oscilador externo de 12 Mhz para generar 96 Mhz con la que cuenta el MCU R5F563NBDDFP de la tarjeta de evaluación YRDKRX63N. Por medio del Switch 1 activaremos el LED 4.- Configurar el Oscilador externo para generar 96 Mhz
- Configurar las entradas y salidas del R5F563NB
- Encender un led a través de un switch
- Debug
DESARROLLO:
- Del manual Renesas RX63N RDK User's Manual ubicamos el LED 4 y el SWITCH 1:
PASOS:
- Creación de un proyecto:
2.- New/ C Project
3.- Seleccionar Renesas RXC ToolChain después en Next >
4.- Seleccionar el target R5F563NBDxFP, debug hardware Segger jLink, después next
5.- Seleccionar C/C++ Source file de forma opcional y por ultimo Finish.
Entorno de desarrollo e2studio configurado:
6.- Configuraremos el oscilador externo:
void SR_Oscilador(void)
{
unsigned long i;
SYSTEM.PRCR.WORD = 0xA503; /* Access registers via PRCR */
SYSTEM.SOSCCR.BYTE = 0x00; /* Sub-clock oscillator ON */
SYSTEM.HOCOPCR.BYTE = 0x00; /* HOCO ON */
SYSTEM.MOSCWTCR.BYTE = 0x0e; /* Main Clock Oscillator Wait Control
Register */
/* 262144 states */
SYSTEM.PLLWTCR.BYTE = 0x0e; /* PLL Wait Control Register */
/* 2097152 states */
SYSTEM.MOSCCR.BYTE = 0x00; /* EXTAL ON */
SYSTEM.PLLCR2.BYTE = 0x01; /* PLL OFF */
SYSTEM.PLLCR.WORD = 0x0f00; /* x16 @PLL */
/* Input to PLL = EXTAL */
/* Therefore: */
/*
PLL = EXTAL */
/*
= 12
*/
/*
PLL * 16 = 192MHz */
/* External oscillation input
selection */
SYSTEM.PLLCR2.BYTE = 0x00; /* PLL ON */
for (i = 0; i < 2500; i++) /* Wait for stabilisation of PLL
and main clock */
{
/* = 20ms */
/*
(2500 x 1/125kHz = 20ms) */
}
/************************************************************************/
/*
*/
/*
SYSTEM.SCKCR.BIT.PCKB = 2; (
b11: b8 ) PLL/4 = 48MHz */
/*
SYSTEM.SCKCR.BIT.PCKA = 2; (
b15:b12 ) PLL/4 = 48MHz */
/*
SYSTEM.SCKCR.BIT.BCK = 2; (
b16:b19 ) PLL/4 = 48MHz */
/*
SYSTEM.SCKCR.BIT.PSTOP0 = 1; ( b22
) SDCLK CLK OUT Disabled */
/*
SYSTEM.SCKCR.BIT.PSTOP1 = 1; ( b23
) BUS CLK OUT Disabled */
/*
SYSTEM.SCKCR.BIT.ICK = 1; (
b24:b27 ) PLL/2 = 96MHz */
/*
SYSTEM.SCKCR.BIT.FCK = 2; (
b31:b28 ) PLL/3 = 48MHz */
/*
*/
/*
SYSTEM.SCKCR2.BIT.UCK = 2; PLL/4 = 48MHz */
/*
SYSTEM.SCKCR2.BIT.IEBCK = 3;
PLL/4 = 48MHz */
/************************************************************************/
SYSTEM.SCKCR.LONG = 0x21c22222;
/* set these bits
to the same a this bit */
/*
||| | | */
/*
|++---------------+
| */
/* | | */
/*
+-------------------------------------+ */
SYSTEM.SCKCR2.WORD = 0x0033;
// SYSTEM.SCKCR3.WORD
= 0x0000; /*
LOCO -> LOCO */
// SYSTEM.SCKCR3.WORD
= 0x0100; /*
LOCO -> HOCO */
// SYSTEM.SCKCR3.WORD
= 0x0200; /*
LOCO -> MAIN */
// SYSTEM.SCKCR3.WORD
= 0x0300; /*
LOCO -> Sub-Clock */
SYSTEM.SCKCR3.WORD = 0x0400; /* LOCO -> PLL */
/* Gain access to the Port Function
Select Registers */
MPC.PWPR.BIT.B0WI = 0;
MPC.PWPR.BIT.PFSWE = 1;
}
7.- El programa principal queda de la siguiente forma:
void main(void)
{
set_ipl(
0 ); // enable
interrupts
SR_Oscilador();
SR_INIT_PORTS();
while(1)
{
if (SW1 == 1)
{
LED4
= OFF_;
}
else
{
LED4 = ON_;
}
}
}
- Agregar código, compilar y debug:
--> Practica #1
2.- Compilar con el icono del martillo y debug con el icono del insecto:
3.- Correr el programa con el icono start:
VÍDEO:
No hay comentarios.:
Publicar un comentario