tutorial / ejemplos /...
TRANSCRIPT
![Page 1: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/1.jpg)
TUTORIAL / EJEMPLOS / EJERCICIOS
1Ángel Castillo Jordán TFC EPSChttp://www.cypress.com
![Page 2: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/2.jpg)
1. Introducción2. Arquitectura PSoC CY8C294663. Diseño con USER MODULES4. IDE PSoC Designer v4.4.5. Compilador C IMAGECRAFT6. Proyecto 1: Puertos E/S7. Interrupciones8. Proyecto 2: Interrupciones E/S9. Síntesis: Tabla de ondas10. Síntesis: seno 8 bits11. Síntesis: square 8 bits12. Síntesis: sawtooth 8 bits13. Síntesis: triangle 8 bits14. Proyecto 3: Oscilador seno 8 bits con pulsador15. Síntesis: KICK-DRUM
Ángel Castillo Jordán TFC EPSC 2
![Page 3: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/3.jpg)
Embedded System síntesis de sonido (caja de ritmos / drum machine).
PSoCMicrocontroladores de nueva generación y bajo coste.
USER MODULES Bloques digitales y analógicos en el mismo encapsulado (timers, adc, pwm,…).
API funciones de alto nivel para los USER MODULES.
PSoC DESIGNER Entorno de Desarrollo Integrado (IDE), permite adaptar el hardware vía software según nuestras necesidades.
MiniProg dispositivo para grabar el PSoC mediante “In-System Serial Programming” (ISSP), utiliza tres pins: 13, 15, 19 y la conexión a masa y alimentación.
Ángel Castillo Jordán TFC EPSC 3
![Page 4: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/4.jpg)
Arquitectura interna o diagrama de bloques:1. PSoC Core
2. Digital System
3. Analog System
4. System Resources
System Bus 3 Puertos E/S configurables para diferentes bloques.
Ángel Castillo Jordán TFC EPSC 4
![Page 5: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/5.jpg)
Arquitectura flexible al cambio de las especificaciones iníciales del proyecto.
Desarrollo por ciclos iterativos o circular, configuración del hardware, mediante software, tantas veces como sea necesario.
Cada bloque contiene los registros que determinan su funcionalidad y su conectividad.
Ángel Castillo Jordán TFC EPSC 5
![Page 6: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/6.jpg)
Periféricos simples.
Señales digitales, analógicas o mixtas.
Funciones en librerías “pre-built” y “pre-tested”, es decir, código testeado.
Contiene más de 50 periféricos comunes: ADCs, DACs, TIMERs, COUNTERs, UARTs, IRDAs, FILTERs, LCD, LCD7SEG, LED, MUXs, PWMs, PRSs, etc.
Configuración de los parámetros mediante listbox.
Ángel Castillo Jordán TFC EPSC 6
![Page 7: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/7.jpg)
La aplicación de los USER MODULES reciben el nombre de “Application Programming Interface” (API).
API Funciones de alto nivel para el control y respuesta de eventos hardware a tiempo de ejecución.
API Rutinas de interrupciones opcionales. Documentadas en los datasheet de los USER
MODULES visibles directamente en el IDE PSoC Designer. Explicación de las operaciones internas, las características modificables mediante listbox, listado de funciones en ensamblador y C (con código ejemplo) y los bits de los registros.
Ángel Castillo Jordán TFC EPSC 7
![Page 8: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/8.jpg)
1. Creamos nuevo proyecto, con un nombre y en una carpeta.
2. Seleccionamos el modelo del chip PSoC y el lenguaje a utilizar: C o ensamblador.
3. Finalizar, vamos a la ventana “DeviceEditor” y “UserModules SelectionView”.
Ángel Castillo Jordán TFC EPSC 8
![Page 9: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/9.jpg)
Ángel Castillo Jordán TFC EPSC 9
![Page 10: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/10.jpg)
Ángel Castillo Jordán TFC EPSC 10
![Page 11: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/11.jpg)
Ángel Castillo Jordán TFC EPSC 11
![Page 12: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/12.jpg)
Activar compilador de C IMAGECRAFT en IDE PSoC Designer v4.4.
Menú TOOLSOPTIONS COMPILER
Introducir número de licencia y aceptarla.
Ángel Castillo Jordán TFC EPSC 12
![Page 13: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/13.jpg)
OBJETIVO: Contabilizar el número de veces que se pulsa un pulsador y que se encienda un led mientras se tiene pulsado E/S. Se visualizará el resultado en la pantalla LCD USER MODULE LCD.
IMPLEMENTACIÓN: Crearemos nuevo proyecto en PSoC Designer con nombre: Proyecto_1. El único USERMODULE a utilizar es el LCD y usará el Port2. El pulsador se conectará a la entrada P0[0] y el “DRIVE” será del tipo pull up. El led ira a la salida P1[0] y será de tipo strong. La velocidad de la CPU la dejaremos por defecto SysClk/8 = 3 MHz igual que el resto de recursos globales.
Estas configuraciones “Ventana Interconnect View”.
Ángel Castillo Jordán TFC EPSC 13
![Page 14: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/14.jpg)
Ángel Castillo Jordán TFC EPSC 14
![Page 15: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/15.jpg)
Ángel Castillo Jordán TFC EPSC 15
Recursos Globales
Configuración del USER MODULE LCD
Configuración de los pines E/S
![Page 16: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/16.jpg)
Configuración hardware correcta “GenerateApplication”.
PSoC Designer genera el código fuente con los recursos globales, clocks, pines, USERMODULES de manera automática y proporciona las funciones de alto nivel APIs.
Ángel Castillo Jordán TFC EPSC 16
![Page 17: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/17.jpg)
Ángel Castillo Jordán TFC EPSC 17
#include <m8c.h>
#include "PSoCAPI.h“
#define Bit(bitNumber)(1<<(bitNumber))
#define LEDON (PRT1DR|=Bit(0))
#define boton (PRT0DR&Bit(0))
int contador=0;
void main(){
int i;
char string[]="PSoC EJEMPLO1";
LCD_Start();.
LCD_Position(0,0);
LCD_PrString(string);
while(1){//loop infinito
if(boton){
LEDON;
contador++;
LCD_Position(1,0);
LCD_PrHexInt(contador);
for(i=0;i<10000;i++){;}
PRT1DR&=~Bit(0);
}}
}
![Page 18: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/18.jpg)
Acceso lectura y escritura mediante el registro PRTxDR (x = número del puerto).
Acceso hexadecimal, cada bit del puerto corresponde al valor según tabla:
o Ejemplo, establecer P0[0]=HIGHPRT0DR|=0x01;
Acceso más elegante mediante el uso del estándar ANSI C:
#define Bit(bitNumber)(1<<(bitNumber))◦ Ejemplo, establecer P0[0]=HIGH PRT0DR|=Bit(0);
Bibliografía: Cypress Semiconductor, “Section B: PSoC Core, 6.General Purpose IO (GPIO) (página 97)”, Technical ReferenceManual (TRM), No. 001-14463 Rev.**. San Jose (Canada).
Ángel Castillo Jordán TFC EPSC 18
![Page 19: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/19.jpg)
a|b operador OR: operación de suma lógica
establece un bit a HIGH, la utilizamos para encender el led. PRT1DR|=Bit(0)
a&b operador AND: operación de producto lógico resulta un HIGH si los dos bits son HIGH y LOW si uno de los dos bits es LOW, chequea el estado del pulsador. PRT0DR&Bit(0)
~a operador COMPLEMENTO: negación de bitescribe un valor a LOW. Lo usamos para apagar el led, es decir, led off. PRT1DR&=~Bit(0).
Bibliografía: Cypress Semiconductor “6. Additional Considerations, 6.4. Bit Toggling (página 32)”, C Language Compiler User Guide, Document #38-12001 Rev.*E. San Jose (Canada)
Ángel Castillo Jordán TFC EPSC 19
![Page 20: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/20.jpg)
Ángel Castillo Jordán TFC EPSC 20
Índice Data Sheet1. Features and Overview2. Functional Description3. Parameters and Resources4. Placement5. API6. Sample Firmware
Source Code
![Page 21: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/21.jpg)
Prototipo C Descripción
void LCD_Start(void); Enciende la interface User Module LCD.
void LCD_Init(void); Inicializa a cero (reset).
void_LCD_Position(BYTE bRow, BYTE bCol);
Mueve el cursor hasta la posición indicada. bRow: posición de la fila donde apuntar. bCol: posición de la columna donde apuntar. Para fila 0 y columna 0 posición inicial. Para fila 1, columna 15 posición final.
void LCD_PrString(char *sRamString);
Imprime en la posición indicada (bRow,bCol) una variable stringalmacenada en RAM.
void LCD_PrCString(const char *sRomString);
Imprime en la posición indicada (bRow,bCol) una constante string(“hola”) almacenada en ROM.
void LCD_PrHexByte(BYTE bValue);
Imprime una variable de 8 bits en formato de 2 caracteres hexadecimal.
void LCD_PrHexInt(INT iValue);
Imprime una variable del tipo int (2 bytes) en formato de 4 caracteres hexadecimal.
Otras APIs: funciones de dibujo barra horizontal, funciones de dibujo barra vertical y funciones opcionales.
Ángel Castillo Jordán TFC EPSC 21
![Page 22: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/22.jpg)
Ángel Castillo Jordán TFC EPSC 22
VENTANA “APPLICATIONEDITOR”.
Ficheros código del proyecto (librerías y main.c)
Información de compilación y ensamblado.
![Page 23: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/23.jpg)
Compilamos y creamos el proyecto “build”.
Si todo es correcto fichero .hex de salida.
Pulsamos botón “Program Part” PSoC Programmer v2.32.0.3
Grabación botón PSoC MiniProg.
Ángel Castillo Jordán TFC EPSC 23
![Page 24: TUTORIAL / EJEMPLOS / EJERCICIOSdigsys.upc.es/ed/SED/grups_classe/07-08_Q2/SDR/PROJ1_A_Castillo… · PSoC Microcontroladores de nueva generación y bajo coste. USER MODULES Bloques](https://reader036.vdocuments.net/reader036/viewer/2022090509/601ec1d4353ec4775d459e68/html5/thumbnails/24.jpg)
Pulsamos el botón
para alimentar la placa de entrenamiento PSoCEval1.
Comprobación satisfactoria, cada vez que se pulsa se incrementa la variable en la pantalla LCD y se enciende el led.
No es necesario ningún sistema para el efecto “DEBOUNCE”
Ángel Castillo Jordán TFC EPSC 24