Se hará uso del módulo A/D de 12 bits de resolución con el que cuenta el MCU R5F563NB de la tarjeta de evaluación YRDKRX63N. El valor de muestreo será visualizado el LCD 96x64 en tiempo real.
- Configurar el modulo A/D de 12 bits
- Imprimir el valor del convertidor en el LCD.
- Del manual Renesas RX63N RDK User's Manual ubicamos el canal AN002
- Del YRDKRX63N Schematic ubicamos el Potenciómetro:
- Del RX63N Group User's Manual: Hardware página 1720 hacemos referencia de la selección y la dirección del canal analógico 2:
PASOS:
- Creación de un proyecto:
2.- New/ C Project / Renesas RXC ToolChain
3.- Seleccionar el target R5F563NB, debug hardware Segger jLink, después next
4.- Seleccionar C/C++ Source file y por ultimo Finish.
5.- Configuraremos el A/D a 12 bits de resolución y un tiempo de muestreo de 2.26 us en el archivo r_cg_adc.c
void R_ADC_Create(void)
{
/* Power up the S12ADC */
MSTP(S12AD) = 0;
// potenciometer
p42
PORT4.PDR.BIT.B2 =
0; /* Set I/O pin direction to input. */
PORT4.PMR.BIT.B2 =
0; /* First set I/O pin mode register to
GPIO mode. */
MPC.P42PFS.BYTE = 0x80; /* Set port function register to analog input, no interrupt. */
/* ADCSR: A/D Control Register
b7
ADST 0 a/d conversion start,
Stop a scan conversion process
b6
ADCS 0 Scan mode select,
Single-scan mode
b5
Reserved 0 This bit is always read as 0. The write value should always
be 0.
b4
ADIE 0 Disables conversion
complete IRQ to ICU
b3:b2 CKS 3 A/D conversion clock select = PCLK/2
b1
TRGE 0 Disables conversion to
start w/ trigger
b0
EXTRG 0 Trigger select, Scan
conversion start by a timer source or software
*/
S12AD.ADCSR.BYTE = 0x0C;
/* ADANS1: A/D Channel Select Register 1
b15:b5 Reserved: These bits are always read as 0.
The write value should always be 0.
b4:b0
ANS1: Selects analog inputs of
the channels AN016 to AN020 that are subjected to A/D conversion
*/
S12AD.ADANS1.WORD = 0x0000;
/* ADADS0: A/D-converted Value Addition Mode Select Register 0
b15:b0
ADS0: A/D-Converted Value Addition Channel Select for AN000 to AN015.
*/
S12AD.ADADS0.WORD = 0x0000;
/* ADADS1: A/D-converted Value Addition Mode Select Register 1
b15:b5 Reserved: These bits are always read as 0.
The write value should always be 0.
b4:b0
ADS1: A/D-Converted Value Addition Channel Select for AN016 to AN020.
*/
S12AD.ADADS1.WORD = 0x0000;
/* ADADC: A/D-Converted Value Addition Count Select Register
b1:b0
ADC: 00 = 1 time conversion (same as normal conversion)
*/
S12AD.ADADC.BYTE = 0x00; /* 1-time conversion */
/* ADCER: A/D Control Extended Register
b15
ADRFMT:0 Right align the data in
the result registers
b5
ACE:0 Disables automatic clearing of ADDRn after it is read
*/
S12AD.ADCER.WORD =
0x0000; /* Right align data, automatic clearing
off. */
/* ADSTRGR: A/D Start Triggger Select Register
b7:b4
Reserved. Always read/write 0.
b3:b0
ADSTRS: 0, Software trigger or ADTRG0#
*/
S12AD.ADSTRGR.BYTE = 0x00;
// tSCAN = tD + (tCONV × N) + tED // pag. 1734 N -> is number of channels to convert,
ADCLK = PCLK/2 = 24 Mhz
// tD = 2PCLK + 3ADCLK = 2*(1/48Mhz) + 3*(1/24Mhz) = 0.16 us
// tCONV = 50ADCLK = 50*(1/24Mhz) = 2 us
// N = 1
// tED = 1PCLK + 2ADCLK = 1*(1/48Mhz) + 2*(1/24Mhz) = 0.1 us
// tSCAN = 0.16 us + (2 us × 1) + 0.1 us = 2.26 us
// F = 1 / 2.26 us = 442.4 kz
}
void main(void)
{
set_ipl(0); // enable interrupts
SR_Oscilador(); // F = 96 Mhz
SR_LCD_GRAPH(); // LCD 96x64
SR_TIMER_0(); // Inicializa
el Timer 0 en cascada para 16 bits
SR_ADC(); // ADC 12 bits ch 2
while(1)
{
AdcValue =
adc_get_vdd(); // adquiere el valor 12 bits del ch 2
voltage = (3.3 * AdcValue) / 4096.0;
LCDPrintf(0,
0, "Microcarsil
");
LCDPrintf(1,
0, " 2017
");
LCDPrintf(2, 0, "Carlos Silva");
LCDPrintf(3, 0, " ");
LCDPrintf(4, 0, "Practica #6 ");
LCDPrintf(5, 0, " ");
LCDPrintf(6,
0, "AD12 = %.3f
", voltage);
LCDPrintf(7, 0, " ");
delay_ms(100);
}
}
- Agregar código, compilar y debug:
--> Practica #6
2.- Si el compilador te marca el error _sin es por falta de agregar la librería math.h. Puedes seleccionarla en las propiedades del proyecto en Standard Library.
3.- Compilar con el icono del martillo y debug con el icono del insecto:
VÍDEO:
No hay comentarios.:
Publicar un comentario