Entradas

SysTick en PSoC 4 y 5LP

Como parte de la documentación de PSoC Creator tenemos el System Reference Guide, dentro de este, en la sección 15, encontramos el System Timer (SysTick), el cual esta presente en los Cortex M0 (PSoC 4) y Cortex m3 (PSoC 5LP). Es un contador descendente con un valor reload/tick de 24-bits, que usa como clock el System Clock, tiene la capacidad de generar una interrupcción cuando el número de ticks expira (se hace cero) y el counter es recargado . Es práctico cuando se necesita de un tiempo preciso y no tenemos un timer o contador disponible para hacer el trabajo. Contamos con los siguientes APIs en el Creator: CySysTickStart() /* Configura e inicia el SysTick timer */ CySysTickInit() /* Inicializa el SysTick Timer */ CySysTickEnable() /* Habilita el SysTick Timer y su interrupción */ CySysTickStop() /* Detiene el SysTick Timer */ CySysTickEnableInterrupt() /* Habilita la interrupción del SysTick Timer */ CySysTickDisableInterrupt() /* Deshabilita la interrupción del SysTick Timer ...

Nordic nRF51822

Estudiando el SDK 8.1.0

PSoC 5LP y nRF24L01+

Despues de muchos errores de programación pude comunicar dos de estos modulos (al parecer xD) Code sooooon...

Hardware FSM PSoC 4

Imagen
Este es un proyecto basado en una FSM que vi hace unos años, esta implementada con solo HW (hardware) usando unos Community Components que encontré en el foro de Cypress, en concreto los FlipFlops,  aquí los puedes obtener. Esta es la (famosa jaja) FSM que implemente, es una maquina dispensadora de refrescos: En el estado 000 se ilumina el led conectado a la salida de Sol.Mon. (Solicita moneda), cuando la entrada M este en '1' pasa al estado 001 si esta en '0' se quedara haciendo un loop en el estado 000, estando ya en el estado 001 dependemos de la entrada MP, si esta en '1' regresa al estado 000, si esta en '0' pasa al estado 010, estando en el estado 010 checamos la entrada EP (equal price = las monedas suman el precio del refresco), si EP esta en '1' pasa al estado 011 (Se ilumina el led conectado a al pin SIRVE), esperamos a que la entrada MS este en '1' para limpiar la maquina (Se ilumina el led conectado a la salida CLR)...

The first ARM processor in the world with Sophie Wilson

Imagen

sprintf en PSoC Creator 3.0 y 3.1

Imagen
Esta función nos ayuda a convertir un dato entero en un string, para después poder imprimirlo con la funcion UART_UartPutString. Para poder usar sprintf  tenemos que añadir primero el header de stdio: #include <stdio.h> Luego si estas en Creator 3.0 Das click derecho en el proyecto. Build Settings ARM GCC Linker Command Line y añades -u_printf_float aplicas y esta listo -u_printf_float en el Command Line Si estas en Creator 3.1 hay un paso adicional descrito en este post en los foros de Cypress. (Por defecto  -u_printf_float ya esta incluido en la newlib-nano Float Formatting del Linker)  Tenemos que incrementar el heap size del proyecto: .cydwr System Heap Size(byte). Por defecto esta en 0x80, lo cambiamos a 0x200 y ya podremos usar el sprintf !! Heap Size por defecto Nuevo Heap Size Informacion sacada de Digitalprojectsudistrital y el foro de Cypress Un video de su aplicacion: ...

Clock on PSoC 4 digital output pin

Imagen
Tratando de hacer una FSM me di cuenta que no podia poner una señal de Clock directamente en un pin digital de salida en un PSoC 4 (al menos no como pense que podia hacerse). La solución la encontre en este post de hace dos años :| . Y el resultado final queda asi: