MAX31855 Termopar J Pag35
MAX31855 Termopar J Pag35
MAX31855 Termopar J Pag35
Implementación de un sistema
multicanal de medida de
temperatura con termopares
iii
iv
Índice
Índice........................................................................................................................................... v
Índice de figuras ....................................................................................................................... ix
Índice de tablas ......................................................................................................................... xi
Agradecimientos .................................................................................................................... xiii
Resumen ................................................................................................................................... xv
Abstract................................................................................................................................... xvii
1 Introducción ....................................................................................................................... 1
2 Requisitos del sistema ...................................................................................................... 3
2.1 Introducción ............................................................................................................... 3
2.2 Especificaciones del diseño ...................................................................................... 4
2.3 Objetivos de aprendizaje .......................................................................................... 5
2.1 Entorno de trabajo ..................................................................................................... 6
3 Descripción del sensor de temperatura.......................................................................... 9
3.1 Introducción ............................................................................................................... 9
3.2 Termoelectricidad ................................................................................................... 10
3.3 Termopares. El efecto Seebeck .............................................................................. 10
3.4 Tipos de Termopares .............................................................................................. 13
3.5 Sensor Utilizado: Tipo J .......................................................................................... 16
4 Descripción del conversor .............................................................................................. 19
4.1 Introducción ............................................................................................................. 19
4.2 Conversor de Termopar a Digital con Compensación de la Unión Fría ......... 20
4.2.1 Descripción Hardware.................................................................................... 20
4.2.2 Descripción Software ...................................................................................... 23
5 Sistema de control y procesado: FPGA ........................................................................ 27
5.1 Introducción ............................................................................................................. 27
5.2 FPGA ......................................................................................................................... 28
5.3 Kit de desarrollo ...................................................................................................... 29
5.4 Diagrama de bloques .............................................................................................. 30
6 Arquitectura del sistema completo ............................................................................... 33
6.1 Introducción ............................................................................................................. 33
6.2 Visión general del sistema completo .................................................................... 34
v
7 Bloque I: Conversión....................................................................................................... 37
7.1 Introducción ............................................................................................................. 37
7.2 Diagrama de bloques .............................................................................................. 38
7.3 Esquemático ............................................................................................................. 39
7.3.1 Alimentación .................................................................................................... 39
7.3.2 Conectores de termopar y protecciones ....................................................... 39
7.3.3 Circuito de conexión del MAX31855 ............................................................ 40
7.4 Diseño ....................................................................................................................... 41
7.4.1 Diseño PCB....................................................................................................... 41
7.4.1 Fabricación del PCB ........................................................................................ 42
7.4.2 Montaje de los componentes ......................................................................... 43
7.4.3 Costes ................................................................................................................ 45
8 Bloque II: Procesado digital ........................................................................................... 47
8.1 Introducción ............................................................................................................. 47
8.2 Periféricos utilizados .............................................................................................. 48
8.3 Configuración de la FPGA: XPS ............................................................................ 48
8.3.1 Bloques VHDL y drivers implementados en la plataforma XPS .............. 49
8.3.1 Restricciones del sistema y pines de entrada salida ................................... 53
8.4 Programación del procesador: SDK ..................................................................... 55
9 Bloque III: Procesado de datos en el PC ....................................................................... 59
9.1 Introducción ............................................................................................................. 59
9.2 Captura y procesado de la trama mediante LabVIEW ...................................... 60
9.3 Interfaz de usuario LabVIEW ................................................................................ 65
9.3.1 Interfaz de usuario para visualización de medidas.................................... 65
9.3.2 Interfaz de usuario para visualización y captura de medidas. ................. 66
10 Proceso de calibración ................................................................................................ 67
10.1 Introducción ............................................................................................................. 67
10.2 Calibrador del sistema ............................................................................................ 68
10.3 Cálculos de ajuste y calibración mediante Excel................................................. 69
Primer método de calibración ....................................................................................... 70
Segundo método de calibración .................................................................................... 73
10.4 Verificación de los cálculos de calibración .......................................................... 75
11 Conclusiones y posibles mejoras............................................................................... 77
11.1 Conclusiones ............................................................................................................ 77
vi
11.2 Posibles mejoras ...................................................................................................... 78
12 Apéndices ..................................................................................................................... 79
12.1 Esquemático completo del Bloque I ..................................................................... 81
12.2 Fotolitos para la fabricación de la placa acondicionadora del Bloque I .......... 82
12.3 Lista de componentes necesarios. MPL (Master Part List) ................................ 83
12.4 IPCores de XPS ........................................................................................................ 85
12.5 Diagrama de bloques de XPS ................................................................................ 86
12.6 Restricciones del usuario UCF (User Constraints File) ...................................... 87
12.7 Código de programa en C del PowerPC440 ........................................................ 88
12.8 Código del archivo MHS ........................................................................................ 96
12.9 Código del archivo MSS ......................................................................................... 99
12.10 Código del archivo *.UCF ................................................................................ 101
12.11 Código LabVIEW .............................................................................................. 102
Panel frontal básico de usuario ................................................................................... 104
Panel frontal de calibración ......................................................................................... 104
12.12 Cálculos y gráficas en Excel de los cuatro canales........................................ 105
Canal 1 ............................................................................................................................ 105
Canal 2 ............................................................................................................................ 106
Canal3 ............................................................................................................................. 107
Canal4 ............................................................................................................................. 108
Bibliografía ............................................................................................................................. 109
vii
Índice de figuras
Figura 1. Diagrama del desarrollo. ........................................................................................ 3
Figura 2. Diagrama de bloques del sistema completo. ....................................................... 5
Figura 3. Termopar tipo J. ....................................................................................................... 9
Figura 4. Efecto Seebeck: Al aplicar calor a una unión de las uniones de dos
materiales diferentes, se crea una diferencia de tensión proporcional a
la temperatura aplicada....................................................................................... 10
Figura 5. Unión fría creada al conectar un instrumento de media en los bornes del
termopar, con ello se crean tensiones parásitas que deben ser
compensadas. ........................................................................................................ 12
Figura 6. Modelo de compensación de la unión fría mediante región isotérmica.
Se crean dos nuevas uniones de las mismas características (J2 y J4) de
este modo se anulan las tensiones parásitas (VJ2 y VJ4). La
compensación de la tensión parásita VJ3 se debe hacer mediante
software o hardware. ........................................................................................... 12
Figura 7. Tensión de termopar frente a temperatura según los diferentes tipos de
termopares............................................................................................................. 16
Figura 8. Encapsulado MAX31855. ...................................................................................... 19
Figura 9. Diagrama de bloques. MAX31855, incluye un amplificador operacional,
detección del estado de la conexión del termopar y un bloque especial
para la compensación de la unión fría así como un ADC para hacer la
conversión de termopar adigital ........................................................................ 20
Figura 10. Circuito de aplicación típico del MAX31855, a la entrada se conecta el
termopar, la comunicación SPI se gestionará en este caso con el
procesador de la FPGA........................................................................................ 21
Figura 11. Pinout del MAX31855. Encapsulado tipo SOP de 8 pines. ............................ 23
Figura 12. Diagrama del protocolo de la comunicación SPI. ........................................... 23
Figura 13. Diagrama de tiempos de la comunicación SPI. ............................................... 24
Figura 14. Vista simplificada de una FPGA. ...................................................................... 27
Figura 15. Esquema de la arquitectura interna de una FPGA. ........................................ 28
Figura 16. Placa de desarrollo Virtex-5 ML507. ................................................................. 29
Figura 17. Diagrama de bloques de la plataforma de evaluación FPGA Virtex-5
ML507. ................................................................................................................... 31
Figura 18. Diagrama de bloques global .............................................................................. 33
Figura 19. Sistema completo. ................................................................................................ 34
Figura 20. Placa acondicionadora de señal (Bottom) ........................................................ 37
Figura 21. Bloque de conversión. ......................................................................................... 38
Figura 22. Conectores de alimentación, jumper de selección y condensadores de
desacoplo para los circuitos integrados. ........................................................... 39
Figura 23. Conector de termopar y circuito de protección. .............................................. 40
Figura 24. Circuito de conexión del MAX31855. ............................................................... 40
Figura 25. Diseño PCB en OrCAD Layout.......................................................................... 41
ix
Figura 26. Insoladora donde se colocará la placa con el fotolito. .................................... 42
Figura 27. Equipo de revelado y atacado con calentadores para los líquidos y
generador de burbujas que aceleran el proceso de fabricación. .................... 43
Figura 28. Placa acondicionadora finalizada.Detalle soldadura. .................................... 44
Figura 29. Placa acondicionadora finalizada.. .................................................................... 44
Figura 30. FPGA Virtex 5. ..................................................................................................... 47
Figura 31. Diagrama de bloques implementados en la plataforma de desarrollo
Virtex-5 .................................................................................................................. 48
Figura 32. Bus de interfaces implemntadas en la plataforma de desarrollo XPS .......... 50
Figura 33. Diagrama de bloques de los IPCores implementados mediante la
plataforma de desarrollo XPS. ............................................................................ 51
Figura 34. Diagrama de flujo del programa principal del procesador PowerPC440 ... 56
Figura 35. Trama de temperaturas para comunicación RS-232 ....................................... 57
Figura 36. Logo del programa LabVIEW de National Instruments. ............................... 59
Figura 37. Código LabVIEW para lectura escritura de puerto serie. .............................. 61
Figura 38. Inicio del procesado de la trama leída. ............................................................. 61
Figura 39. Procesado de la trama, código completo. ......................................................... 62
Figura 40. Procesado de la trama, comprobación del estado de la conexión. Byte
de control. .............................................................................................................. 63
Figura 41. Procesado de la trama. Procesado de temperaturas con valor decimal....... 63
Figura 42. Procesado de trama de medida. Índice de canal medido. ............................. 64
Figura 43. Procesado de trama de medidas. Guardado de datos en array. ................... 64
Figura 44. Interfaz gráfica de usuario en LabVIEW. ......................................................... 65
Figura 45. Interfaz gráfica de usuario en LabVIEW. ......................................................... 66
Figura 46. Calibrador FLUKE 725. ....................................................................................... 67
Figura 47. Sistema completo con el calibrador utilizado. ................................................. 68
Figura 48. Representación gráfica de los errores de genancia y offset. .......................... 69
Figura 49. Error de medida tras la calibración por el primer método. ........................... 72
Figura 50. Comparación del valor medido respecto al ideal con el primer método
de calibración. ....................................................................................................... 72
Figura 51. Error de medida tras la calibración por el segundo método. ........................ 74
Figura 52. Comparación de la medida real frente a la ideal con el segundo
método de calibración. ........................................................................................ 74
x
Índice de tablas
Tabla 1. Comparativa de los tipos de de termopares más comunes según material
y rango de temperatura. ........................................................................................ 15
Tabla 2. Coeficientes para la calibración de termopar tipo J en función del rango
de temperatura. ....................................................................................................... 17
Tabla 3. Condiciones de trabajo del MAX31855 recomendados por el fabricante. ....... 21
Tabla 4. Características térmicas y tiempos de conversión del MAX31855 en su
versión para termopar tipo J. ................................................................................ 22
Tabla 5. Características de los tiempos en la comunicación SPI. ..................................... 24
Tabla 6. Descripción del Mapa de Memoria. Indica la posición de los bits y la
información de la trama. ........................................................................................ 25
Tabla 7. Formato de la temperatura en la trama de comunicación serie. Izquierda:
temperatura del termopar, derecha: temperatura de la unión fría. ................. 25
Tabla 8. Costes de fabricación del PCB. .............................................................................. 45
Tabla 9. Resumen de recursos utilizados en la FPGA...................................................... 52
Tabla 10. Localización de los LEDs en la FPGA................................................................. 53
Tabla 11. Localización del conector de expansión J6 en la FPGA. .................................. 54
Tabla 12. Cálculos del primer método de calibración realizados con Excel. ................ 71
Tabla 13. Cálculos del segundo método de calibración realizados con Excel. ............. 73
xi
Agradecimientos
Qué mejor broche para cerrar este ciclo que agradecer a todos los que han
estado conmigo en los últimos años de estudio, tanto en los libre acceso y en la
biblioteca estudiando y terminando prácticas hasta las tantas, como en los ratos libres
de descanso merecido para desconectar.
Muchas gracias PANDA por estar ahí siempre, pase lo que pase y sea cuando
sea. Nos fundamos hace casi diez años y ya somos diez, seguiremos sumando y
creciendo, viajando y riendo…y jugando, por supuesto.
Gracias también a toda la gente de AETEL, vosotros sois los que más me habéis
visto estos meses siempre acompañada del portátil y sin otro tema de conversación
casi que no fuese sobre el proyecto. Os meto caña pero sabéis que es desde el cariño.
Néstor, gracias por hacerme este camino más fácil. Te debo una, o dos, o mil.
Rober, tú has estado ahí desde el primer día, y por muy lejos que te vayas no te libras
de mí, ya lo sabes. Barras, mucho ánimo que esto acaba. Alberto y Guti, esos libres
accesos marcarán época. Extre, ¿me traerás esas cerezas como premio por haber
llegado hasta aquí? Tania, gracias por tus minidetallazos que alegran el día y por
recordarme que el túnel acaba sin que te des cuenta de que has llegado al final. Jana,
mi compi en el extranjero, al final presentamos el mismo año ¿dónde nos vamos para
celebrarlo?
Al gañán de turno le quiero dar las gracias por aguantarme y por todo lo que
me ha ayudado, aunque diga que no. Richi, gracias por las risas cuando no había
manera de encontrarlas.
Quiero agradecer a Juanjo, Javi, Carlos, Luis y Chechu por la gran oportunidad
y toda la ayuda que me han dado a lo largo de estos meses.
xiii
Resumen
xv
Abstract
This project has been developed at a private electronics design company. The
company wants to study an update to change the analogue temperature controller
equipment to a digital one. So this prototype studies a digital version of the
temperature measurement block.
The processes accomplished for the prototype development are detailed in the
next pages of this document. It includes the studies and information needed to
develop the design, manufacturing process and programming of the blocks which
integrate with the global system.
xvii
1 Introducción
1
1. Introducción
de desarrollo Virtex-5, que es el que se emplea en este proyecto, junto con las
herramientas de desarrollo necesarias.
2
2 Requisitos del sistema
2.1 Introducción
4
2. Requisitos del sistema
3,3V GND
AL PC
3V3
Conectores
GND
J5 Alimentación RS-232
Termopares
Comunicación
DESDE
Protecciones SPI Master JTAG PC
Programador
SPI_CLK
4 x /CS
Control Termopares
MAX Conversores J6 Entradas
SPI_DO PPC 440
Acondicionador FPGA
5
2. Requisitos del sistema
Tal como se ha dicho, este proyecto está orientado al uso de un sistema basado
en FPGA con el uso del kit de evaluación de la tarjeta Virtex-5 ML507 de Xilinx, así
como su entorno de desarrollo EDK con los programas XPS para el diseño hardware y
SDK para diseño software de dicha tarjeta.
Para que la presentación de resultados sea más visual por parte del usuario, se
ha implementado una aplicación en LabVIEW mediante la que se controla la
adquisición de datos y el modo de visualización y guardado de los mismos.
6
2. Requisitos del sistema
7
3 Descripción del sensor de
temperatura
3.1 Introducción
La medida de temperatura
ha sido muy empleada a lo largo
de los años, desde los primeros
termómetros de presión hasta los
sensores más precisos de la
actualidad. En muchos campos de
ingeniería se necesita gran
precisión en la medida de la
temperatura, lo que ha provocado
la aparición de muchos tipos de
Figura 3. Termopar tipo J. sensores diferentes.
9
3. Descripción del sensor de temperatura
3.2 Termoelectricidad
Material X
Calor
Tfría Material Y Tcaliente
Material Y
VAB
A B
Figura 4. Efecto Seebeck: Al aplicar calor a una unión de las uniones de dos materiales diferentes, se crea una
diferencia de tensión proporcional a la temperatura aplicada.
10
3. Descripción del sensor de temperatura
Del modelo para el estudio del efecto Seebeck, visto en la figura 4, se extrae la
relación entre la temperatura de ambas uniones y la tensión que se crea entre los
bornes A y B, que se presenta en la ecuación 1:
Ecuación 1. Del modelo del Efecto Seebeck se deduce la tensión diferencial proporcional a la temperatura de la unión caliente
de dos hilos de materiales diferentes.
En la ecuación 1 se tiene:
∂𝑉𝐴𝐵
𝛼𝑥𝑦 = (Ec.2)
∂T
Ecuación 2. Definición del Coeficiente Seebeck, variación de la tensión en función de la temperatura aplicada.
11
3. Descripción del sensor de temperatura
Para ello, se debe saber la relación entre los materiales y la temperatura a la que están
expuestos.
J3(+)
Material X
+ + J1
V2 V1 Calor
- J2(-) -
Material Y
Figura 5. Unión fría creada al conectar un instrumento de media en los bornes del termopar, con ello se crean
tensiones parásitas que deben ser compensadas.
J4 J3
Material X
+ + VJ4 - + VJ3 - + J1
V2 V1 Calor
- + VJ2 - - T=Tc
Material Y
J2
Región Isotérmica T=Tref
Figura 6. Modelo de compensación de la unión fría mediante región isotérmica. Se crean dos nuevas uniones de las
mismas características (J2 y J4) de este modo se anulan las tensiones parásitas (VJ2 y VJ4). La compensación de la
tensión parásita VJ3 se debe hacer mediante software o hardware.
Se puede observar que las uniones J2 y J4 son del mismo material, por lo que
tendrán el mismo comportamiento frente a la temperatura de la unión J1 lo que hace
que sus tensiones parásitas (VJ2 y VJ4) se anulen. Por otro lado, la unión J3 tiene las
mismas características que la unión J1, pero se encuentran a temperaturas diferentes.
De esta manera se obtiene la siguiente relación:
12
3. Descripción del sensor de temperatura
13
3. Descripción del sensor de temperatura
Por otro lado, los termopares tipo B, R y S son los más estables, pero debido a
su baja sensibilidad media de unos 10µV/°C, generalmente son usados para medir
altas temperaturas (por encima de los 1000ºC).
14
3. Descripción del sensor de temperatura
Tabla 1. Comparativa de los tipos de de termopares más comunes según material y rango de temperatura.
Como se puede ver en la figura 7, para los diferentes tipos de termopar existen
diferentes gráficos de comportamiento. Se puede observar que a partir de 100ºC la
linealidad prácticamente se conserva. A temperaturas más bajas la aproximación de las
medidas respecto a la temperatura real es polinómica.
15
3. Descripción del sensor de temperatura
Figura 7. Tensión de termopar frente a temperatura según los diferentes tipos de termopares.
16
3. Descripción del sensor de temperatura
Tabla 2. Coeficientes para la calibración de termopar tipo J en función del rango de temperatura.
17
4 Descripción del conversor
4.1 Introducción
19
4. Descripción del conversor
Figura 9. Diagrama de bloques. MAX31855, incluye un amplificador operacional, detección del estado de la
conexión del termopar y un bloque especial para la compensación de la unión fría, así como un ADC para hacer la
conversión de termopar adigital
20
4. Descripción del conversor
Figura 10. Circuito de aplicación típico del MAX31855, a la entrada se conecta el termopar, la comunicación SPI se
gestionará en este caso con el procesador de la FPGA.
PARÁMETROS DE FUNCIONAMIENTO
21
4. Descripción del conversor
CARACTERÍSTICAS TÉRMICAS
Tabla 4. Características térmicas y tiempos de conversión del MAX31855 en su versión para termopar tipo J.
PINOUT
23
4. Descripción del conversor
24
4. Descripción del conversor
MAPA DE MEMORIA
Tabla 6. Descripción del Mapa de Memoria. Indica la posición de los bits y la información de la trama.
Es importante estudiar estas tablas con detalle para encontrar el mejor modo
de procesar la información una vez que se reciba en la FPGA para su posterior
calibración.
Tabla 7. Formato de la temperatura en la trama de comunicación serie. Izquierda: temperatura del termopar, derecha:
Temperatura de la unión fría.
25
5 Sistema de control y procesado:
FPGA
5.1 Introducción
27
5. Sistema de control y procesado: FPGA
5.2 FPGA
28
5. Sistema de control y procesado: FPGA
29
5. Sistema de control y procesado: FPGA
30
5. Sistema de control y procesado: FPGA
31
6 Arquitectura del sistema completo
6.1 Introducción
En este capítulo se presentan los bloques que componen el sistema final para
poder tener una primera aproximación del funcionamiento global. Se describen los
tres bloques en los que se ha divido el mismo. Cada bloque atiende a la naturaleza de
los elementos que lo componen, simplificando así su estudio y presentación. En
primer lugar se tiene el sensor de temperatura y su conversión a digital para la
posterior comunicación, dichos elementos componen el primer bloque, en este
documento también se hace referencia a dicho bloque como “placa acondicionadora de
señal”. A continuación se tiene la gestión de las comunicaciones y el procesado de la
temperatura medida, de esto se encarga la FPGA, en la que estará implementado el
módulo de control de la comunicación SPI con la placa acondicionadora, el de
comunicación serie con el PC así como el código para el procesado de temperaturas y
gestión de comunicaciones. Por último, la parte de software, en el PC se implementa la
interfaz de usuario y se realizan los cálculos de calibración. Todo el software de
programación y configuración de la FPGA se realiza desde el PC tal como se explica en
el capítulo 8.
33
6. Arquitectura del sistema completo
El sistema final, tal como se observa en la figura 19, está compuesto por los
bloques descritos en el apartado anterior, figura 18, que son la placa acondicionadora
que compone el bloque I, y que incluye el hardware necesario para la conversión
analígico-digital. La FPGA tiene dos funciones principales, la primera es hacer de
puente entre la placa y el PC, a su entrada controla la comunicación SPI con la placa
acondicionadora y a su salida la comunicación serie con el PC, y la segunda es realizar
la calibración y procesado de la trama SPI. Recibe la trama que contiene las medidas
realizadas por el MAX31855, aplica la calibración a dichas medidas y conforma una
nueva trama que envía por puerto serie al PC. El tercer y último bloque, a la derecha
en la imagen, está formado por el PC con las aplicaciones necesarias para la
programación de la FPGA con el paquete de desarrollo software EDK de Xilinx.
34
6. Arquitectura del sistema completo
35
7 . Bloque I: Conversión
7.1 Introducción
37
7. Bloque I: Conversión
3,3V GND
3V3
Conectores
Termopares GND
Protecciones
SPI_CLK
4 x /CS
MAX Conversores
SPI_DO
Acondicionador
38
7. Bloque I: Conversión
7.3 Esquemático
7.3.1 Alimentación
Figura 22. Conectores de alimentación, jumper de selección y condensadores de desacoplo para los circuitos
integrados.
emplean dos ferritas, L1 y L2, colocadas cada una en una pista de conexión entre el
conector de termopar y el MAX. Entre ambas conexiones se incorpora un diodo
supresor de tensión, D1, en concreto el NUP2105, este diodo protege la conexión de
forma bidireccional, mejorando el comportamiento del sistema frente a posible
radiación electromagnética (EMI). Finalmente se conecta un condensador cerámico,
C1, que funciona como condensador de desacoplo.
40
7. Bloque I: Conversión
7.4 Diseño
Una vez cerrado el esquemático, se procede al diseño del PCB. Este diseño ha
sido realizado con OrCAD Layout. Se ha optado por un diseño híbrido de doble cara,
con componentes tanto de montaje superficial como de inserción, haciendo que todas
las soldaduras se encuentren en la capa bottom, de modo que los termopares se
conectarán por la capa superior o top, donde se tendrá acceso también a los conectores
de alimentación y comunicación. Una vez decidida la mecánica del prototipo (es decir,
la orientación de los componentes críticos como conectores de entrada, salida y
alimentación), se procede al posicionamiento de todos los componentes, verificando
que las huellas se correspondan con el encapsulado de los componentes que se van a
emplear. Tras esto se procede al rutado manual del PCB.
41
7. Bloque I: Conversión
eliminar posibles restos de barniz fotosensible. Una vez hecho esto, como tercer y
último paso, se introduce la placa en el líquido de atacado, de modo que el cobre no
protegido queda eliminado, dando como resultado la placa de fibra de vidrio (FR4)
con las pistas y huellas de los componentes en cobre. Los líquidos se encuentran en
una cubeta como la mostrada en la figura 27, dispone de tres espacios,
correspondientes al líquido de revelado, agua y líquido de atacado. Este tipo de
cubetas tienen calentadores para los líquidos y circuito generador de burbujas para
acelerar el proceso de fabricación.
Figura 27. Equipo de revelado y atacado con calentadores para los líquidos y generador de burbujas que aceleran el
proceso de fabricación.
Una vez fabricado el PCB, se han realizado los taladros para los componentes
de inserción, utilizando el diámetro de broca adecuado para cada caso según el
tamaño del pin del componente. Y por último, se ha procedido a soldar todos los
componentes también por el método manual, utilizando una estación de soldadura
con soldador de punta fina, en la figura 28 se muestra un detalle de la soldadura de los
componentes de montaje superficial de la placa. El resultado de la placa
acondicionadora una vez finalizado el montaje se puede ver en la figura 29.
43
7. Bloque I: Conversión
44
7. Bloque I: Conversión
7.4.3 Costes
45
8 . Bloque II: Procesado digital
8.1 Introducción
47
8. Bloque II: Procesado digital
AL PC
3V3
GND
J5 Alimentación RS-232
Comunicación
DESDE
SPI Master JTAG PC
Programador
SPI_CLK
4 x /CS
Control Termopares
J6 Entradas
SPI_DO PPC 440
FPGA
48
8. Bloque II: Procesado digital
49
8. Bloque II: Procesado digital
50
8. Bloque II: Procesado digital
Figura 33. Diagrama de bloques de los IPCores implementados mediante la plataforma de desarrollo XPS.
51
8. Bloque II: Procesado digital
Para cada Net declarada se debe indicar la conexión interna con la FPGA. Para
elegir los pines correctamente se debe consultar la documentación del fabricante, en
este caso la guía de usuario de Xilinx “ML505/ML507 Evaluation Platform User Guide
347”. Este archivo describe todos los dispositivos disponibles en el kit de evaluación y
contiene las tablas de correspondencia entre los periféricos y los pines de la FPGA.
LEDs
53
8. Bloque II: Procesado digital
Comunicación SPI
54
8. Bloque II: Procesado digital
55
8. Bloque II: Procesado digital
Inicialización
NO
Leer siguiente
Canal
SI Estado NO
Conexión OK
Procesar medidas
Figura 34. Diagrama de flujo del programa principal del procesador PowerPC440
56
8. Bloque II: Procesado digital
Tal como se muestra en la figura 35, el formato de la trama que llega al PC por
puerto serie contiene el canal medido, la temperatura de la unión, la temperatura del
termopar y por último un delimitador de fin de trama. Los datos está separados por el
delimitador ‘\t ‘ Los cuatro byte correspondientes a la temperatura contienen en
primer lugar, el signo de la misma, a continuación la parte entera representada con
tres dígitos y dos dígitos para el valor decimal. La trama completa tiene un tamaño de
19 bytes, éste será el tamaño a comprobar para que la trama sea considerada válida
cuando se procesa en LabVIEW.
57
9 . Bloque III: Procesado de datos en
el PC
9.1 Introducción
59
9. Procesado de datos en el PC
60
9. Procesado de datos en el PC
Inicialización
Guardado
Lectura puerto serie
61
9. Procesado de datos en el PC
62
9. Procesado de datos en el PC
Figura 40. Procesado de la trama, comprobación del estado de la conexión. Byte de control.
una columna por canal. El código que lleva a cabo este proceso se puede ver en la
figura 42.
64
9. Procesado de datos en el PC
La interfaz básica tal como se puede observar en la figura, incluye una gráfica
en la que se muestran las curvas de temperatura de termopar de los cuatro canales,
representado cada uno en un color. En la parte superior se muestran los valores de
temperatura en ºC, tanto de la medida de termopar como de la medida de la unión fría
en cada canal.
65
9. Procesado de datos en el PC
66
10 . Proceso de calibración
10.1 Introducción
67
10. Proceso de calibración
68
10. Proceso de calibración
∆ Medida real
offset
∆ Medida ideal
∆𝑀𝑒𝑑𝑖𝑑𝑎 𝑖𝑑𝑒𝑎𝑙
𝐺= (Ec 3)
∆𝑀𝑒𝑑𝑖𝑑𝑎 𝑟𝑒𝑎𝑙
69
10. Proceso de calibración
70
10. Proceso de calibración
Ganancia = 1,075
Offset = 3,23ºC
Corrección Corrección Error
Ideal (ºC) Medida (ºC) Error (ºC)
Ganancia (ºC) Offset (ºC) final (ºC)
0,00 3,00 3,00 3,23 0,00 0,00
Tabla 12. Cálculos del primer método de calibración realizados con Excel.
71
10. Proceso de calibración
2,50
2,00
1,50
Error (ºC)
1,00
0,50
0,00
0 50 100 150 200
-0,50
-1,00
Temperatura (ºC)
200,00
y = 0,9981x - 1,489
150,00
Valor corregido (ºC)
100,00
50,00
0,00
0 50 100 150 200
Valor ideal (ºC)
Figura 50. Comparación del valor medido respecto al ideal con el primer método de calibración.
72
10. Proceso de calibración
Tabla 13. Cálculos del segundo método de calibración realizados con Excel.
73
10. Proceso de calibración
1,00
0,50
Error (ºC)
0,00
0 50 100 150 200
-0,50
-1,00
Temperatura (ºC)
200
Ch1
150
Valor corregido (ºC)
100
50
0
0 50 100 150 200
Valor ideal (ºC)
Figura 52. Comparación de la medida real frente a la ideal con el segundo método de calibración.
74
10. Proceso de calibración
Para poder hacer las pruebas del sistema completo, una vez realizados los
cálculos de calibración en Excel, se añaden al código del procesador. Se monta el
sistema y mediante el calibrador se aplica de nuevo la curva de temperaturas que se
ha utilizado en la fase de calibración, es decir, un rango de 0 a 200ºC en incrementos
de 10ºC. Una vez validados los resultados, verificando que el error entra en los límites
especificados de ±1ºC se da el diseño por válido.
75
11 . Conclusiones y posibles mejoras
11.1 Conclusiones
77
11. Conclusiones y posibles mejoras
78
12 . Apéndices
79
12. Apéndices
80
12. Apéndices
81
12. Apéndices
Bajo estas líneas se muestran los fotolitos del diseño del PCB necesarios para el
insolado en el proceso manual de fabricación de la placa. En la parte superior se
encuentra el fotolito correspondiente a la capa Top, y en la parte inferior de la página
se puede ver el correspondiente a la capa Bottom.
82
12. Apéndices
83
Ref Ref
Q Ref. Valor Descripción Footprint Fabricante Precio Total
84
fabricante distribuidor
8 CON_32 Conector 32 pin CON_32 3,00 € 3,00 €
ALIM_ Conector alimentación
1 J5 CONVCC_2 1,00 € 1,00 €
EXT 2 pines extraible
12. Apéndices
ALIM_
1 J6 Jumper 2 pin JUMPER2 0,30 € 0,30 €
FPGA
1 JP Jumper 3 pin JUMPER3 0,30 € 0,30 €
CON2, CON Conector termopar
4 CON_TERMOP LABFACILITY IM-J-LCF 8598274 3,13 € 12,52 €
CON3, Termop tipo J
L1, L2, L3,
Ferrite bead SMD 0603 WURTH
8 L4, L5, L6, 470,00 € 0603 742863147 1748576 0,30 € 2,40 €
470 ELEKTRONIK
L7, L8
R1, R2, R3,
R4, R5, R6, Resistencia SMD 0805 VISHAY CRCW080547
12 470,00 € 0805 1469932 0,02 € 0,26 €
R7, R8, R9, 470R 1/4W DRALORIC 0RFKEA
R10, R11, R12
Conversor de
U1, U2, U3, MAX MAX31855 MAX31855
4 termopar a digital 0805 MAXIM 5,68 € 22,72 €
U4 31855 JASA+ JASA+
MAX31855JASA+
C0805C104J5
C2, C3, C4, Condensador SMD CRCW0805470
4 0,1u 0805 KEMET RACTU14146 0,05 € 0,19 €
C5 0805 0,1uF RFKEA
63
Condensador SMD C0805C103J3
1 C1 10n 0805 KEMET 1457736 0,16 € 0,16 €
0805 10nF GACTU
44,58 €
12. Apéndices
85
12. Apéndices
86
12. Apéndices
87
12. Apéndices
/*
* The following constants map to the XPAR parameters created in the
* xparameters.h file. They are defined here such that a user can easily
* change all the needed parameters in one place.
*/
#define SPI_DEVICE_ID XPAR_SPI_0_DEVICE_ID
/*
* The following data type is used to send and receive data on the SPI
* interface.
*/
typedef u8 DataBuffer[BUFFER_SIZE];
typedef struct{
char sign;
float ftemp;
u16 temp;
u16 Temp_integer;
u16 Temp_decimal;
}Temp;
typedef struct {
Temp ext; /* External temperature. */
Temp junct; /* Junction temperature. */
}Temps;
88
12. Apéndices
/*
* The instances to support the device drivers are global such that the
* are initialized to zero each time the program runs.
*/
static XSpi SpiInstance; /* The instance of the SPI device. */
static XUartLite UartInstance; /* The instance of the UART Lite device. */
/*
* The following variables are used to read the Spi device,
* global to avoid having large buffers on the stack.
*/
u8 ReadBuffer[BUFFER_SIZE];
u8 values[1800][BUFFER_SIZE];
u8 control; /* Connection check info. */
u8 j=0; /* Measure index. */
u32 data = 0; /* Data read RAW. */
//SIMULACION FLASH
u16 Gains [NUM_CHANNELS];
u16 Offsets [NUM_CHANNELS];
/********************************************************************
* Main function to call the Spi Reading, process the data and send it
* via RS-232.
*
* @param None
* @return XST_SUCCESS if successful, otherwise XST_FAILURE.
* @note None
********************************************************************/
int main(void)
{
int Status;
int ch_i = 0; /* Array index. */
int chx = 0x00; /* Channel select. */
char cadena [100];
89
12. Apéndices
//FLASH Simulation
Gains[0][0] = 0x00000131;
Gains[0][1] = 0x00000129;
Gains[0][2] = 0x00000101;
Gains[0][3] = 0x00000124;
Gains[0][4] = 0x00000121;
Gains[1][0] = 0x00000131;
Gains[1][1] = 0x00000129;
Gains[1][2] = 0x00000126;
Gains[1][3] = 0x00000124;
Gains[1][4] = 0x00000121;
Gains[2][0] = 0x00000131;
Gains[2][1] = 0x00000129;
Gains[2][2] = 0x00000126;
Gains[2][3] = 0x00000124;
Gains[2][4] = 0x00000121;
Gains[3][0] = 0x00000132;
Gains[3][1] = 0x00000130;
Gains[3][2] = 0x00000126;
Gains[3][3] = 0x00000124;
Gains[3][4] = 0x00000121;
Offsets[0] = 0x0000033D;
Offsets[1] = 0x0000033D;
Offsets[2] = 0x000003A0;
Offsets[3] = 0x000003C0;
while (1)
{
j++;
/* Start with channel #1 */
chx=0x01;
/* Get data from all channels. */
for (ch_i=0; ch_i < NUM_CHANNELS; ch_i++)
{
Status = SpiRead(&SpiInstance, SPI_DEVICE_ID, chx);
if (Status != XST_SUCCESS)
{
return XST_FAILURE;
}
XSpi_Stop(&SpiInstance);
90
12. Apéndices
}
}
return XST_SUCCESS;
}
void FillTempStruct (Temps temps[], int i, char signE, u16 ext, char signJ,
u16 junct)
{
temps[i].ext.sign = signE;
temps[i].ext.temp = ext; //need an extra digit to use Gain and Offset
with 3 decimal digits.
temps[i].junct.sign = signJ;
temps[i].junct.temp = junct;
}
91
12. Apéndices
}
return (ctrl);
}
u32 gain;
u32 offset;
offset = 0x2C0;//Offsets[0];
92
12. Apéndices
{
gain = CalibParams[i].Gains[3];
}
else
{
gain = CalibParams[i].Gains[4];
}
tempE *= gain;
tempE = tempE<<4;
tempE = ((tempE - CalibParams[i].Offset));
tempE=tempE>>12;
xil_printf ( "%01d\t%01d\t%c%03d,%02d\t%c%03d,%02dEOL\r\n",
i+1, control,
temps[i].junct.sign, temps[i].junct.Temp_integer,
temps[i].junct.Temp_decimal,
temps[i].ext.sign, temps[i].ext.Temp_integer,
temps[i].ext.Temp_decimal);
/********************************************************************
* This function receive data from MISO pin.
* @param SpiInstancePtr is a pointer to the instance of Spi component.
* @param SpiDeviceId is the Device ID of the Spi Device and is the
* XPAR_<SPI_instance>_DEVICE_ID value from xparameters.h.
* @return XST_SUCCESS if successful, otherwise XST_FAILURE.
********************************************************************/
int SpiRead(XSpi *SpiInstancePtr, u16 SpiDeviceId, int ch )
{
int Status;
u32 Count;
u8 Test;
/*
* Initialize the SPI driver so that it's ready to use,
* specify the device ID that is generated in xparameters.h
*/
/*
93
12. Apéndices
Status = XSpi_SelfTest(SpiInstancePtr);
if (Status != XST_SUCCESS)
{
return XST_FAILURE;
print ("XSpi_SelfTest FAIL\n\r");
}
/*
* Set the Spi device as a master and With manual slave selection.
*/
XSP_MANUAL_SSELECT_OPTION);
if (Status != XST_SUCCESS)
{
print ("XSpi_SetOptions FAIL\n\r");
return XST_FAILURE;
}
/*
* Slave Select.
*/
/*
* Start the SPI driver so that the device is enabled.
*/
XSpi_Start(SpiInstancePtr);
/*
* Disable Global interrupt to use polled mode operation
*/
XSpi_mIntrGlobalDisable(SpiInstancePtr);
/*
* Initialize the read buffer to zero so it can be verified
* after the read.
*/
for (Count = 0; Count < BUFFER_SIZE; Count++)
{
ReadBuffer[Count] = 0;
}
94
12. Apéndices
/*
* Transmit data.
*/
return XST_SUCCESS;
}
95
12. Apéndices
# ##########################################################################
# Created by Base System Builder Wizard for Xilinx EDK 11.5 Build EDK_LS5.70
# Fri Jul 06 11:45:03 2012
# Target Board: Xilinx Virtex-5 ML507 Evaluation Platform Rev A
# Family: Virtex-5
# Device: xc5vfx70t
# Package: ff1136
# Speed Grade: -1
# Processor number: 1
# Processor 1: ppc440_0
# Processor clock frequency: 400.0
# Bus clock frequency: 100.0
# Debug Interface: FPGA JTAG
# #########################################################################
BEGIN ppc440_Virtex-5
PARAMETER INSTANCE = ppc440_0
PARAMETER C_IDCR_BASEADDR = 0b0000000000
PARAMETER C_IDCR_HIGHADDR = 0b0011111111
PARAMETER C_SPLB0_NUM_MPLB_ADDR_RNG = 0
PARAMETER C_SPLB1_NUM_MPLB_ADDR_RNG = 0
PARAMETER HW_VER = 1.01.a
BUS_INTERFACE MPLB = plb_v46_0
BUS_INTERFACE JTAGPPC = ppc440_0_jtagppc_bus
BUS_INTERFACE RESETPPC = ppc_reset_bus
PORT EICC440EXTIRQ = EICC440EXTIRQ
PORT CPMC440CLK = clk_400_0000MHzPLL0
PORT CPMINTERCONNECTCLK = clk_200_0000MHzPLL0
PORT CPMINTERCONNECTCLKNTO1 = net_vcc
PORT CPMMCCLK = clk_100_0000MHzPLL0_ADJUST
END
96
12. Apéndices
BEGIN plb_v46
PARAMETER INSTANCE = plb_v46_0
PARAMETER C_DCR_INTFCE = 0
PARAMETER HW_VER = 1.04.a
PORT PLB_Clk = clk_100_0000MHzPLL0_ADJUST
PORT SYS_Rst = sys_bus_reset
END
BEGIN xps_bram_if_cntlr
PARAMETER INSTANCE = xps_bram_if_cntlr_0
PARAMETER C_SPLB_NATIVE_DWIDTH = 64
PARAMETER HW_VER = 1.00.b
PARAMETER C_BASEADDR = 0xfffe0000
PARAMETER C_HIGHADDR = 0xffffffff
BUS_INTERFACE SPLB = plb_v46_0
BUS_INTERFACE PORTA = xps_bram_if_cntlr_0_port
END
BEGIN xps_uartlite
PARAMETER INSTANCE = RS232_Uart_1
PARAMETER C_BAUDRATE = 9600
PARAMETER C_DATA_BITS = 8
PARAMETER C_USE_PARITY = 0
PARAMETER C_ODD_PARITY = 0
PARAMETER HW_VER = 1.01.a
PARAMETER C_BASEADDR = 0x84000000
PARAMETER C_HIGHADDR = 0x8400ffff
BUS_INTERFACE SPLB = plb_v46_0
PORT RX = fpga_0_RS232_Uart_1_RX_pin
PORT TX = fpga_0_RS232_Uart_1_TX_pin
END
BEGIN xps_gpio
PARAMETER INSTANCE = LEDs_8Bit
PARAMETER C_ALL_INPUTS = 0
PARAMETER C_GPIO_WIDTH = 8
PARAMETER C_INTERRUPT_PRESENT = 0
PARAMETER C_IS_DUAL = 0
PARAMETER HW_VER = 2.00.a
PARAMETER C_BASEADDR = 0x08140000
PARAMETER C_HIGHADDR = 0x0814ffff
BUS_INTERFACE SPLB = plb_v46_0
PORT GPIO_IO = fpga_0_LEDs_8Bit_GPIO_IO_pin
END
BEGIN bram_block
PARAMETER INSTANCE = xps_bram_if_cntlr_0_block
PARAMETER HW_VER = 1.00.a
BUS_INTERFACE PORTA = xps_bram_if_cntlr_0_port
END
BEGIN clock_generator
PARAMETER INSTANCE = clock_generator_0
PARAMETER C_EXT_RESET_HIGH = 0
PARAMETER C_CLKIN_FREQ = 100000000
PARAMETER C_CLKOUT0_FREQ = 100000000
PARAMETER C_CLKOUT0_PHASE = 0
PARAMETER C_CLKOUT0_GROUP = PLL0_ADJUST
PARAMETER C_CLKOUT0_BUF = TRUE
97
12. Apéndices
BEGIN jtagppc_cntlr
PARAMETER INSTANCE = jtagppc_cntlr_inst
PARAMETER HW_VER = 2.01.c
BUS_INTERFACE JTAGPPC0 = ppc440_0_jtagppc_bus
END
BEGIN proc_sys_reset
PARAMETER INSTANCE = proc_sys_reset_0
PARAMETER C_EXT_RESET_HIGH = 0
PARAMETER HW_VER = 2.00.a
BUS_INTERFACE RESETPPC0 = ppc_reset_bus
PORT Slowest_sync_clk = clk_100_0000MHzPLL0_ADJUST
PORT Ext_Reset_In = sys_rst_s
PORT Dcm_locked = Dcm_all_locked
PORT Bus_Struct_Reset = sys_bus_reset
END
BEGIN xps_gpio
PARAMETER INSTANCE = xps_gpio_0
PARAMETER HW_VER = 2.00.a
PARAMETER C_GPIO_WIDTH = 7
PARAMETER C_BASEADDR = 0x81440000
PARAMETER C_HIGHADDR = 0x8144ffff
BUS_INTERFACE SPLB = plb_v46_0
PORT GPIO_IO = xps_gpio_0_GPIO_IO_pin
END
BEGIN xps_spi
PARAMETER INSTANCE = xps_spi_0
PARAMETER HW_VER = 2.01.b
PARAMETER C_FIFO_EXIST = 0
PARAMETER C_NUM_TRANSFER_BITS = 8
PARAMETER C_NUM_SS_BITS = 4
PARAMETER C_BASEADDR = 0x81480000
PARAMETER C_HIGHADDR = 0x81487fff
BUS_INTERFACE SPLB = plb_v46_0
PORT IP2INTC_Irpt = xps_spi_0_IP2INTC_Irpt
PORT SCK = xps_spi_0_SCK
PORT MISO = xps_spi_0_MISO
PORT SS_O = xps_spi_0_SS_O
PORT SS = xps_spi_0_SS
END
98
12. Apéndices
BEGIN OS
PARAMETER OS_NAME = standalone
PARAMETER OS_VER = 2.00.a
PARAMETER PROC_INSTANCE = ppc440_0
PARAMETER stdin = RS232_Uart_1
PARAMETER stdout = RS232_Uart_1
END
BEGIN PROCESSOR
PARAMETER DRIVER_NAME = cpu_ppc440
PARAMETER DRIVER_VER = 1.01.a
PARAMETER HW_INSTANCE = ppc440_0
PARAMETER COMPILER = powerpc-eabi-gcc
PARAMETER ARCHIVER = powerpc-eabi-ar
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = bram
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = xps_bram_if_cntlr_0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = uartlite
PARAMETER DRIVER_VER = 1.14.a
PARAMETER HW_INSTANCE = RS232_Uart_1
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 2.13.a
PARAMETER HW_INSTANCE = LEDs_8Bit
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = xps_bram_if_cntlr_0_block
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = clock_generator_0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = jtagppc_cntlr_inst
END
99
12. Apéndices
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = proc_sys_reset_0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 2.13.a
PARAMETER HW_INSTANCE = xps_gpio_0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = spi
PARAMETER DRIVER_VER = 2.01.b
PARAMETER HW_INSTANCE = xps_spi_0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = plb_v46_0
END
100
12. Apéndices
101
12. Apéndices
102
Lectura y procesado
Inicialización
Guardado
103
12. Apéndices
12. Apéndices
104
12. Apéndices
Canal 1
1,00
0,50
Error (ºC)
0,00
0 50 100 150 200
-0,50
-1,00
Temperatura (ºC)
105
12. Apéndices
Canal 2
1,00
0,50
Error (ºC)
0,00
0 50 100 150 200
-0,50
-1,00
Temperatura (ºC)
106
12. Apéndices
Canal3
1,00
0,50
Error (ºC)
0,00
0 50 100 150 200
-0,50
-1,00
Temperatura (ºC)
107
12. Apéndices
Canal4
1,00
0,50
Error (ºC)
0,00
0 50 100 150 200
-0,50
-1,00
Temperatura (ºC)
108
Bibliografía
Xilinx. http://www.xilinx.com/
Xilixn EDK.
http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/edk_ctt.pdf
Hassan Hassan, Mohab Anis “Low-Power Design of Nanometer FPGAs: Architecture and
EDA“MK
“The theory and properties of Thrmocouple Elements.” American society for testing and
materials.
109