jueves, 19 de enero de 2017

PRACTICA # 6 CONVERTIDOR A/D 12 BITS

OBJETIVO:
        Se hará uso del módulo A/D de 12 bits de resolución con el que cuenta el MCU R5F562N8 de la tarjeta de evaluación YRDKRX62N. 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.

DESARROLLO:
  •  Del manual Renesas RX62N RDK User's Manual ubicamos el canal ANI4
  •  Del YRDKRX62N ubicamos el Potenciómetro: 

  • Del RX62N Group User's Manual: Hardware página 1705 y 1710 hacemos referencia de la selección y la dirección del canal analógico 4 respectivamente:



PASOS:
  • Creación de un proyecto:
1.- Abrir el software e2studio
2.- New/ C Project / Renesas RXC ToolChain


3.- Seleccionar el target R5F562N8, 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)
{   
            // MSTP(S12AD) = 0;
            SYSTEM.MSTPCRA.BIT.MSTPA17 = 0;  // S12AD   enable

            /* set direction and enable input */
            PORT4.DDR.BIT.B4 = 0;               // P44 como input
            PORT4.ICR.BIT.B4 = 1;

            // Single-cycle scan mode, PCLK/2, Disables ADI interrupt generation
            S12AD.ADCSR.BYTE = 0x08;

            // Enables automatic clearing of the A/D data register n (ADDRn) after it has been read.
            S12AD.ADCER.BIT.ACE = 1;

            // Right-alignment is selected for the A/D data register
            S12AD.ADCER.BIT.ADRFMT = 0;

            // The A/D conversion startup source from the on-chip peripheral modules is
            S12AD.ADSTRGR.BIT.ADSTRS = 0x0;

            // tSCAN = tD + (tCONV × N) + tED   // pag. 1717  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
}


  • Agregar código, compilar y debug:
1.- Bajar el código de:

2.- Si el compilador te marca el error _sin es por falta de agregar la librería math.h. Puedes seleccionarla en las porpiedades 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