Entradas

Mostrando las entradas de abril, 2016

'Limpiar' registros de STATUS con DMA en PSoC 5LP

Imagen
En ocasiones cuando queremos usar las señales generadas por interrupciones de los bloques digitales de PSoC tenemos que leer los registros de STATUS de dicha interrupción para 'limpiar' ese flag. Esto lo podemos hacer usando interrupciones,  que dentro de su rutina no hagan nada mas que leer el registro STATUS de la interrupcion, sin embargo las interrupciones tienen latencia y usamos el CPU para atenderlas. En la imagen de abajo podemos ver como se implementaria la lectura del registro de STATUS de las interrupciones del Tx de un bloque SPI Master, la interrupción se genera al mandar un byte/word por el pin MOSI. Usamos el componente isr para activar la interrupcion con un flanco ascendente. y dentro de nuestro main: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include <project.h> #include "cyapicallbacks.h" int main () { CyGlobalIntEnable; isr_Tx_Start(); SPI_Start(); CyDelay( 2500

Actualización Pulseview y Sigrok-Cli

Imagen
Gran noticia, la versión 0.4.0 de Pulseview ya permite guardar las sesiones en el OS Windows para trabajar con ellas posteriormente, además que con el analizador lógico clon se puede ya samplear a 24MHz, lo unico que no pude guardar es el decoder y su configuración pero es lo de menos, además los canales tienen un color tenue que permite diferenciar entre ellos. No he checado lo nuevo en Sigrok-Cli pero pinta bien. Proximamente van a liberar la version 1.0 de ambas herramientas. Puedes descargar los instaladores (nightly builds) de Pulseview y Sigrok-Cli Dejo una captura de pantalla de unas pruebas del SPI de PSoC 5LP. Pruebas del SPI Master en PSoC 5LP

PSoC Creator Custom Component - Localización en el Catálogo de Componentes

Imagen
Cuando tenemos listo el simbolo de nuestro componente custom podemos definir su locación en el catálogo de componentes de PSoC Creator de manera fácil. Lo primero es tener listo nuestro simbolo, teniendolo listo damos clic derecho sobre cualquier espacio en blanco del simbolo y elegimos la opción Properties . Simbolo del componente custom Clic derecho -> Properties  Nos aparecerá una ventana, en ella podemos ver varias opciones que nos serán útiles en el futuro, por ahora solo no interesa Catalog Placement (Localización en el catalogo) damos clic en los tres puntos para abrir otra ventana. Catalog Placement (Localización en el catalogo) En la ventana que nos aparece definiremos el lugar en el catalogo donde se va a colocar nuestro componente custom. Primero definimos el nombre del tab donde se va a colocar el componente, en este caso le nombre Community, despues colocamos una diagonal / y la palabra que sigue es el nombre de la carpeta donde se va a colocar el

Kees

Kees es (era?) un trabajador de Cypress Semiconductor que subio bastante información al foro de la comunidad, mucha información en forma de PDFs. Aqui juntare todos los documentos de su autoria que vaya encontrando: Importing and renaming a component with a C# customizer in Creator DMA Debug Helper  

PSoC Creator Custom Component - Virtual Mux

Imagen
Representación gráfica del Virtual Mux El Virtual Mux es un componente que solo nos sirve en tiempo de compilación, no de ejecución de programa. Entre sus caracteristicas estan: De 1 a 16 entradas. Selección de entrada estatica. El Virtual Mux de color rojo es utilizado para señales analogicas, y el verde para digitales. Lo podemos ver frecuentemente si abrimos un componente de los que vienen por default en PSoC Creator y observamos su implementación. La siguiente imagen es la implementación por esquematico del bloque SCB de los PSoC 4. Entrañas del bloque SCB de PSoC 4  Y si abrimos la ventana de configuración de un Virtual Mux podemos ver esto:  Vemos que tiene 6 entradas y la entrada seleccionada esta determinada por la siguiente "ecuación": 1 ( 1 == GetFeatureVersion( "m0s8scb" )) ? 5 : ! $ RemoveSpiSlaveMosi ? 0 : ...etc Todos los parametros que podemos configurar en el componente empiezan con el simbolo $ . Como ejempl

Componentes Custom en PSoC Creator

Bueh, como siempre pierdo los apuntes que hago voy a subir lo que vaya aprendiendo sobre la creación de componentes custom en PSoC Creator a una serie de posts, el link a esos posts los pondre aqui para tener todo a la mano. Como sabrán PSoC me permite crear componentes custom gracias a su lógica programable (PLD, UDBs, etc), dichos componentes pueden ir desde una sencilla maquina de estados implementada con Verilog o un bloque UDB, hasta componentes sumamente complejos (que no creo poder implementar xD). Un ejemplo de un componente complejo es este , con el cual se controlan los famosos LEDs WS2812 (NeoPixels) usando UDBs y un canal de DMA. Los post con temas relacionados a como construir un componente custom en PSoC Creator son: Virtual Mux   Localización en el catálogo de componentes PSoC Rocks!