lab_03_psoc
TRANSCRIPT
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.
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
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
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.
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).
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
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.
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
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
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.