lab_03_psoc

10
IE. MSc. JOSÉ ARMANDO BECERRA VARGAS IE. MSc. JOSÉ ARMANDO BECERRA VARGAS IE. MSc. JOSÉ ARMANDO BECERRA VARGAS IE. MSc. JOSÉ ARMANDO BECERRA VARGAS USO DEL PSoC EXPRESS #01 Ejercicio Propuesto: Controlar la velocidad de un ventilador tipo brushless dc de acuerdo a los registros de temperatura capturados desde un sensor de estado sólido (LM20), utilizando como plataforma PSoC Express. Elementos Requeridos 1. Priority Encoder: Un codificador de prioridad proporciona un método para generar un estado de salida solo con la más alta prioridad de entrada cierta. Los codificadores de prioridad son utilizados a menudo para combinar múltiples entradas de estado jerárquico en un solo Valuator. Un ejemplo es el uso de un codificador de prioridad para comandar un ventilador que gira a cierta velocidad comandado por múltiples sensores de temperatura de entrada. Decodificador de prioridad es similar al siguiente Pseudo-código: If x1 then y1 Else If x2 then y2 Else If x3 then y3 Else If x4 then y4 2. 5VDC 2A 3 WIRE FAN Descripción Funcional: Este driver para ventilador está provisto de un modulador de ancho de pulso (PWM) como base para el control de velocidad de ventiladores brushless DC.

Upload: josarbe60

Post on 30-Apr-2017

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Lab_03_PSoC

IE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGAS

USO DEL PSoC EXPRESS #01

Ejercicio Propuesto: Controlar la velocidad de un ventilador tipo brushless dc de acuerdo

a los registros de temperatura capturados desde un sensor de estado sólido (LM20),

utilizando como plataforma PSoC Express.

Elementos Requeridos

1. Priority Encoder:

Un codificador de prioridad proporciona un método para generar un estado de salida solo

con la más alta prioridad de entrada cierta. Los codificadores de prioridad son utilizados a

menudo para combinar múltiples entradas de estado jerárquico en un solo Valuator. Un

ejemplo es el uso de un codificador de prioridad para comandar un ventilador que gira a

cierta velocidad comandado por múltiples sensores de temperatura de entrada.

Decodificador de prioridad es similar al siguiente Pseudo-código:

If x1 then y1 Else If x2 then y2 Else If x3 then y3 Else If x4 then y4

2. 5VDC 2A 3 WIRE FAN

Descripción Funcional: Este driver para ventilador está provisto de un modulador de

ancho de pulso (PWM) como base para el control de velocidad de ventiladores brushless

DC.

Page 2: Lab_03_PSoC

IE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGAS

Hardware Interface: El pin de salida del PSoC gobierna el circuito integrado dentro del

ventilador. Una salida opcional de tacómetro del ventilador es soportada mediante el uso

de un controlador de entrada de tacómetro.

Software Interface: El ciclo de trabajo de la señal del PWM que gobierna el ventilador se

controla con un Byte no signado para un rango entre 0 y 100.

Propiedades del driver

Configuración de usuario:

• SpinUp Time: El periodo de tiempo en que el ventilador es gobernado a toda

velocidad en el momento del arranque está comprendido entre 1/8 de segundo y 2

segundos. El valor predeterminado es de ¼ de segundo.

• DrivePolarity: Permite invertir la señal del driver para soportar otras topologías de

circuitos. Por defecto el sistema usa “Normal” soportando los circuitos de los ejemplos

dados. • DriveFrecuencia: Frecuencia de PWM desde 10 Hz hasta 240 KHz.

Propiedades no configurables

• KickTach: 1

• KickStart: 1

• Fan Type: 5V 3 wire

Driver specifications

• Fan Voltage: 5.5 V (max)

• Fan Current: 2.0 A (max)

Interface Shematic

Page 3: Lab_03_PSoC

IE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGAS

3. LM20 Sensor de temperatura de estado sólido

Descripción Funcional: La temperatura de entrada del LM20 ofrece una lectura

precisa de la temperatura en los rangos típicos industriales y de automoción. Estos

sensores deben ser colocados cerca de los puntos de interés para controlar la

temperatura y ofrecer así una lectura de bajo coste y precisa, sin calibración.

Hardware Interface: El pin de conexión del sistema PSoC al LM20, es de alta

impedancia tipo entrada análoga conectado a un convertidor análogo digital (ADC). El

voltaje del ADC se convierte en temperatura de acuerdo a las especificaciones de la

hoja de datos del sensor.

Software Interface: La temperatura siempre será un número de 16 bits con signo, el

sistema almacena primero el bit más significativo y mantiene la temperatura en formato

de punto fijo con una resolución de 0.1 grados (p.e. 113.7 grados se almacena como

1137). La temperatura estará dada en grados Celsius.

Propiedades del driver Este driver no tiene propiedades configurables de usuario.

Especificaciones del driver

• Rango de sensado de temperatura: -55ºC a +130ºC • Exactitud de temperatura: +/- 2.5ºC sobre el rango de temperatura,

dependiendo de la versión LM20 usada. • Alimentación: 3.3 Voltios o 5.0 Voltios

Circuito de la Interface

Page 4: Lab_03_PSoC

IE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGAS

4. I2C Interface esclavo

Descripción funcional: Este dispositivo incluye un I2CTM

registrado basado en una

interface esclava. El maestro inicia todas las comunicaciones en el bus I2C y suministra

el reloj para todos los dispositivos esclavos. La interface I2C soporta en modo estándar

velocidades de hasta 400 Kbits/s. Esta interface es compatible con varios dispositivos

del mismo bus.

La dirección del esclavo definida para este dispositivo representa los 7 bits más

significativos de la dirección, el bit menos significativo puesto a 1 o 0 por el maestro

indicará una escritura o lectura respectivamente. Una segunda dirección es

proporcionada por el acceso 0x40 de la ROM/FLASH más la dirección del registro

base del dispositivo.

Descripción del protocolo: El protocolo del registro base para este dispositivo

requiere una orden de escritura para poner el registro interno en el puntero de datos.

Cada orden de escritura va a establecer el puntero de datos para el primer byte de datos

de la transacción. Al escribir uno o más bytes, el byte después del indicador de datos se

escribe en la dirección donde apunta el puntero de datos. El tercer byte (segundo byte

de datos) se escribirá en la posición indicada por el puntero + 1 (incrementado en uno)

y así sucesivamente. El indicador de datos se incrementará por cada byte leído o

escrito, pero se restablecerá al principio de cada nueva operación de lectura.

Cada transacción de lectura empezará por leer datos en la ubicación apuntada por el

puntero de datos después de la última transacción de escritura. Para establecer el

puntero de datos para una lectura, una transacción de escritura es realizada únicamente

poniendo el puntero de datos. (solo un byte de datos)

Si el maestro I2C intenta escribir datos en una ubicación de solo lectura o un lugar no

definido, los datos serán descartados y no tendrán ningún efecto. Los datos no pueden

ser leídos fuera del rango definido. Cualquier solicitud de lectura del maestro, fuera del

rango asignado dará lugar a datos no válidos.

Hardware Interface: Los pines de PSoC para I2C son configurados directamente

sobre el bus I2C. Una apropiada alimentación Pull-Up debe establecerse en las líneas

del reloj y datos en algún punto del bus. Para más información referirse a “Philips I2C

specifications”

Software interface: Esta interface no tiene software. No necesario.

Page 5: Lab_03_PSoC

IE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGAS

Propiedades del driver

Propiedades configurables de usuario

• I2C Address: Dirección base esclavo en el rango de 0 a 63. La dirección 64 a

127 son reservadas para acceso a la memoria ROM/FLASH.

Especificaciones del driver

• Rata de datos: 400 Kbits/s (max).

Esquema de la interface

5. Tacómetro

Descripción Funcional: Este driver mide la velocidad de rotación de un tacómetro digital

y la correspondiente salida en Revoluciones Por Minuto (RPM).

Hardware interface: El pin de PSoC conecta la entrada del tacómetro a través de una

resistencia limitadora de corriente. Un resistor de pull up está soportando siempre el sensor

del tacómetro tipo colector abierto.

Software interface: Las RPM están representadas siempre como un entero signado de 16

bits, almacenando primero el byte más significativo. La velocidad es expresada en RPM

con 1 contador igual a 1 RPM (Ejemplo: 4500 RPM será almacenado como 4500).

Page 6: Lab_03_PSoC

IE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGAS

Propiedades del driver Propiedades configurables de usuario

• Pulsos por revolución: Número de pulsos generado por el sensor del tacómetro por

revolución en el eje de medida. • Rata de actualización: Intervalo de tiempo entre lecturas del tacómetro. • Conjunto ventilador: Con el fin de garantizar la correcta lectura del tacómetro para

un ventilador de tres hilos, el ciclo de trabajo del PWM del ventilador debe ser del

100% mientras el chip PSoC adquiere la medida del tacómetro. Esta característica

permite que el driver del tacómetro establezca un ciclo de trabajo del 100% mientras

realiza la medición de velocidad.

NOTA: Esta propiedad únicamente puede ser puesta después de que el objeto

tacómetro ha sido definido. De otro modo únicamente se verá ‘no ventilador’.

Especificaciones del driver

• Rango de RPM: 300 a 25000 RPM.

Esquema de la interface

Page 7: Lab_03_PSoC

IE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGAS

IMPLEMENTACIÓN DEL CONTROLADOR

Generalidades: PSoC Express es un software de desarrollo para dispositivos PSoC, cuenta

con un ambiente de trabajo completamente gráfico, el cual permite de una manera sencilla

desarrollar proyectos a todo nivel, basa su funcionamiento en la utilización de bloques

valuators e interfaces para conectar dispositivos de entrada y salida. La lógica de

funcionamiento entre entradas/salidas (Transfer Functions) es ejecutada en estas interfaces

para producir la salida deseada.

En la figura 1 se muestra la captura del ambiente de trabajo del software PSoC Express,

nótese que al igual que los programas que trabajan bajo ambiente Windows, aquí también

se cuenta con una interfaz amigable al usuario, de fácil manejo, con acceso a todas las

herramientas de trabajo gracias a su barra de menú y de herramientas, áreas de información

de dispositivos de entrada, salida e interfaces, árbol jerárquico del proyecto y el workspace

para el diseño.

Figura 1. Ambiente de trabajo PSoC Express de Cypress.

Diseño del controlador de velocidad Lo primero que se debe tener en cuenta son los elementos de entrada y salida para la

implementación del diseño, el usuario cuenta con una variedad de dispositivos de entrada y

salida para iniciar su trabajo, para el caso del presente ejercicio, se utiliza un módulo de

temperatura tipo LM20, cuya descripción se hizo anteriormente, la salida está compuesta

por el módulo de potencia driver del ventilador y la interface I2C, para implementar la

función se toma un valuator tipo encoder de prioridad como el descrito en la sesión

anterior.

Page 8: Lab_03_PSoC

IE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGAS

Lo que se pretende aquí es controlar la velocidad de un ventilador tipo brushless de

acuerdo al rango de temperatura medido por el sensor LM20, para ello se implementa en el

encoder de prioridad una función rampa del tipo Sal = Temp./10 ºC. Esta función se

consigue, incluyendo en los campos del encoder de prioridad las expresiones condicionales

que determinan el funcionamiento en el rango de temperaturas del sistema. Ver figura 2.

Figura 2. Configuración del encoder de prioridad para el control PWM

Para iniciar el diseño del sistema, se deben realizar las siguientes tareas:

• Primero colocamos en el workspace el driver del sensor LM20.

• Luego colocamos el Driver de control del ventilador.

• Seguidamente se coloca el Tacómetro.

• Seleccionamos el encoder de prioridad y lo pegamos en el workspace.

• Por último seleccionamos el bus I2C y lo incluimos en el proyecto.

Una vez se tienen los elementos ubicados en el workspace, el siguiente paso es configurar

el encoder de prioridad para que genere la función rampa y poder así tener control sobre el

driver de salida, en los campos condicionales se escriben las expresiones que permiten

obtener la función rampa así:

If Temperature < 300 then RampFunction = 0

Else If Temperature < 1000 then RampFunction = Temperature/10

Else If 1 then RampFunction = 100

Page 9: Lab_03_PSoC

IE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGAS

De esta manera queda configurado el encoder de prioridad para efectuar la función

RampFunction (Ver figura 3). El siguiente paso es concatenar la función rampa generada

en el encoder de prioridad con el driver de salida (Fan), dar click derecho sobre el ícono

del driver y seleccionar Transfer Fuction del driver de salida, aquí de nuevo se usa un

encoder de prioridad el cual se configura con la función rampa obtenida anteriormente, así:

If 1 then Fan = RampFunction

Figura 3. Expresiones condicionales para el encoder de prioridad. RampFunction

De esta manera queda terminado el diseño para el control de velocidad del ventilador

basado en el registro de temperatura del sistema.

COMPILANDO EL PROYECTO El siguiente paso es compilar y construir el diseño en el chip PSoC, para ello se selecciona

en la barra de menú Build ���� Generate/Build ‘Nombre del proyecto’ Project, se ejecuta y

el sistema devuelve la estructura completamente diseñada y lista para programar sobre el

chip, en este paso el usuario selecciona el tipo de chip a utilizar así como la distribución de

pines de la pastilla. Finalmente aparece la ventana de status que indica los pormenores del

diseño, en caso de errores aquí serán desplegados. Ver figura 4.

Figura 4. Proceso de compilación del proyecto

Page 10: Lab_03_PSoC

IE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGASIE. MSc. JOSÉ ARMANDO BECERRA VARGAS

El sistema genera un informe completo del diseño en formato HTM, el cual se puede

consultar en el link ‘Nombre del proyecto’ Datasheet.HTM, también genera el esquemático

del diseño que se puede consultar en ‘Nombre del proyecto’ Schematic.HTM. De esta

manera queda terminado el proyecto y estará listo para ser descargado sobre el chip.

PROGRAMANDO EL CHIP

La programación del dispositivo PSoC es muy sencilla, abrir barra de menú Program y

seleccionar program part, seguidamente se abre una pequeña ventana que le pide

actualizar el archivo HEX, después se abre la ventana del programador (ver figura 5)

Figura 5. Ventana de control del programador.

Automáticamente el sistema detecta el tipo de programador instalado y la versión del

software PSoC Programmer. Se configuran los parámetros de programación mostrados en

la ventana (Ejemplo: Acquire Mode: Reset; Verification: On), una vez realizados todos los

ajustes se da click sobre la flecha bajando de color azul, el sistema empieza el proceso de

grabación del chip.

Una vez programado el dispositivo, desde la ventana de programación, se puede energizar

el sistema para realizar las pruebas correspondientes.

De esta forma se completa el proceso de diseño, compilación y programación de un

dispositivo PSoC con el software PSoC Express.