martes, 17 de enero de 2017

PRACTICA # 8 FLASH MEMORY P5Q (RSPI)

OBJETIVO:
       Haremos uso del módulo RSPI con el que cuenta el MCU R5F562N8 de la tarjeta de evaluación YRDKRX62N para controlar, leer y escribir la memoria serial micrón NP5Q128A13ES de 128 Mb. Para esta práctica grabaremos 8 datos y los leeremos posteriormente.
  •  Se implementará la API P5Q para el manejo de funciones de lectura y escritura.
  •  Se agregará la librería PDL rx62n para el control de la interfaz RSPI0.

DESARROLLO:
  • Del YRDKRX62N schematic identificamos los pines RSPI0 y la memoria micrón.



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.- La estructura de archivos del proyecto con las librerías agregadas queda de la siguiente forma:


6.- Agregar la librería rx62n_library.lib en las opciones del proyecto propierties/C/C++ Build / Settings / Linker / Input



7.- La función principal main para el ejemplo del uso de la memoria SPI se establece como sigue:

#define SIZEDATA 8
ParameterType fp;
ReturnType verf;
uAddrType udAddr = 0;
NMX_uint16 udNrOfElementsInArray = SIZEDATA;
NMX_uint32 udNrOfElementsToRead = SIZEDATA;
unsigned char pArray[SIZEDATA]={0,1,2,3,4,5,6,7}, ucpElements[SIZEDATA];
void SR_P5Q_MEMORY(void);

void main(void)
{
            set_ipl( 0 );       // enable interrupts
            SR_Oscilador();     // configura oscilador a 96 Mhz
            SR_INIT_PORTS();    // inicia puertos entrada-salida
            SR_TIMER_0();       // Inicializa el Timer 0 en cascada para 16 bits
            SR_P5Q_MEMORY();    // Inicializa la memoria de Mitron NP5Q de 128 Mb

            /* 128Mb = 16,772,216 bytes (8 bits each)
             * 128 sectors (131072 Bytes each)
     * 262,144 pages (64 bytes each)
             */
            verf = FlashSectorErase(0);
            verf = FlashDataProgram(udAddr,  pArray ,udNrOfElementsInArray, SPI_FLASH_INS_PP);
            verf = FlashRead(udAddr,  ucpElements,  udNrOfElementsToRead);
            while(1)
            {
                        LED1 = ~LED1;
                        delay_ms(1000);
            }

}


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

2.- Compilar con el icono del martillo y debug con el icono del insecto:


RESULTADOS:


No hay comentarios.:

Publicar un comentario