Diseño de un sistema de control de velocidad de un motor de - IIT

October 30, 2017 | Author: Anonymous | Category: N/A
Share Embed


Short Description

La segunda parte del control se basa en dos reguladores PI discretos en cascada, composed of a power stage, which link&n...

Description

Autorizada la entrega del proyecto:

Diseño de un sistema de control de velocidad de un motor de corriente continua basado en acelerómetros Realizado por

Fernando Moreno Pérez

El director del Proyecto:

_________

________

D. Eduardo Santamaría Navarrete Fecha: ……/…………/…….

Vº Bº del Coordinador de Proyectos

_________

________

D. Álvaro Sánchez Miralles Fecha: ……/…………/…….

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INDUSTRIAL

PROYECTO FIN DE CARRERA

DISEÑO DE UN SISTEMA DE CONTROL DE VELOCIDAD DE UN MOTOR DE CORRIENTE CONTINUA BASADO EN ACELERÓMETROS

AUTOR: Fernando Moreno Pérez MADRID, Junio 2010

RESUMEN

DISEÑO DE UN SISTEMA DE CONTROL DE VELOCIDAD DE UN MOTOR DE CORRIENTE CONTINUA BASADO EN ACELERÓMETROS Autor: Moreno Pérez, Fernando. Director: Santamaría Navarrete, Eduardo. Entidad Colaboradora: ICAI – Universidad Pontificia Comillas RESUMEN DEL PROYECTO OBJETIVO Se pretende diseñar un sistema de control que permita regular la velocidad de una maqueta de tren eléctrico, accionado por un motor de corriente continua, en función de la aceleración normal que experimente en cada instante. Dicho control será implantado en un microprocesador. Para ello, será necesario realizar: •

La estimación de los parámetros físicos de la planta mediante ensayos.



El modelado del sistema a partir de dichos parámetros.



El diseño y construcción del hardware del sistema: etapa de potencia (que contendrá el driver

del motor), y circuitos de acondicionamiento de señales de medida (aceleración, intensidad que recorrer el motor, etc.). •

El diseño del sistema de control, y su adecuación al tiempo discreto para su posterior desarrollo

software e implantación en el microprocesador. •

Programación del microprocesador basada en el SOTR FreeRTOS©.

DESARROLLO 1. Estimación de parámetros físicos y modelado del sistema Antes de realizar el diseño del control, es necesario conocer y modelar los distintos parámetros físicos que intervienen en el sistema a controlar. Esos parámetros son los siguientes: •

Resistencia interna del motor



Masa del conjunto planta-actuador



Inductancia del motor



Constantes asociadas al par y a la fuerza contraelectromotriz del motor



Fricción viscosa



Velocidad máxima

Una vez obtenidos dichos parámetros, se ha obtenido un modelo del sistema, a partir de cual trabajar en el diseño del control, ya que, sin una modelización del sistema físico, habría sido imposible realizar dicho diseño o las simulaciones pertinentes para comprobar la validez del mismo. Una primera aproximación del modelo del sistema podría ser la que se observa en la figura siguiente:

RESUMEN

2. Hardware del sistema El control fue implantado sobre un hardware, el cual está compuesto por una etapa de potencia, que sirve de nexo entre el control y el actuador, y de distintos circuitos de acondicionamiento de las señales de medida que intervienen en el control y del microprocesador. La etapa de potencia es la encargada de adecuar la señal de salida del microprocesador, que es el mando del control, para hacerla capaz de “mover” el actuador, que, en este caso, es el motor de corriente continua del tren. Para ello se ha utilizado como elemento principal un puente en H. Los circuitos de acondicionamiento de señal cumplen la función de acondicionar las señales que se desean medir para realimentar el control de manera que dicha medición se efectúe con la mayor precisión y sensibilidad posibles, y sin perturbar a la señal original. Para ello se han utilizado básicamente etapas basadas en amplificadores operacionales y los propios sensores. 3. Diseño e implantación del sistema de control El diseño del sistema de control se puede dividir en dos partes: un sistema que genera una referencia de velocidad, de acuerdo con los valores de aceleración medidos, y otro sistema que se encarga de hacer que la planta siga esa referencia; las cuales, se han implantado en un microprocesador Motorola ColdFire MCF5282. La generación de la referencia se realiza mediante una tarea cuyo diagrama de flujo simplificado es:

La segunda parte del control se basa en dos reguladores PI discretos en cascada, cuyos parámetros

RESUMEN

se fijaron a partir de distintos diseños, que se describen brevemente a continuación: en una primera aproximación se diseñó aproximando los parámetros por simulación, para comprobar posteriormente que este método de diseño no es el más acertado, y se procedió a diseñar aplicando técnicas de respuesta en frecuencia: diseño por margen de fase y diseño por margen de ganancia. Ante el comportamiento de la salida con los controles anteriores, se pensó que se podía mejorar filtrando la corriente medida que va al microprocesador. Para ello se diseñaron dos filtros digitales: un filtro paso bajo de primer orden, y un filtro FIR paso bajo. Después de haber rediseñado el control para el sistema incluyendo esos filtros, se comprobó mediante simulación que no mejoraban, sino que empeoraban la respuesta del sistema. Una vez claro el regulador que se iba a utilizar (el diseñado por técnicas de respuesta en frecuencia, sin filtro de corriente), se procedió a realizar un escalado del sistema, para adecuar las variables del sistema para que pudiesen ser tratadas con registros de 8, 16 ó 32 bits; con el fin de aumentar el rendimiento del microprocesador. Por último, una vez escalado el problema con variables de 16 bits, que se vio que resultaban ser las más adecuadas, se desarrolló el programa que fue implantado en el microprocesador y que gestiona todos los aspectos del control: toma de medidas mediante conversor A/D, algoritmos de control, gestión de salidas mediante onda PWM, etc., sobre el sistema operativo en tiempo real FreeRTOS. RESULTADOS Y CONCLUSIONES Se muestra a continuación la respuesta que se obtuvo con el control, ante dos escalones a la entrada de 0.5 y 0.1 m/s, el primero de los cuales se utiliza para llevar al sistema al régimen permanente:

Se puede observar una respuesta que se adapta con bastante precisión a la referencia, lo que induce a pensar que el control ha sido diseñado de forma satisfactoria, tal y como demostraron los ensayos.

ABSTRACT

ABSTRACT OBJECTIVE The main objective of this project is to design a control system to control the speed of an electric model railroad, operated by a DC motor, depending on the normal acceleration that it experiments in every moment. The control will be embedded in a microprocessor. The steps for the design will be: •

Physical parameters estimation.



System model design, according to those parameters.



Design and construction of the system´s hardware: power stage (which contains the motor

driver), and measure signals conditioning circuits (acceleration, current through the motor…) •

Control system design, and translation to discreet time for its software development and

microprocessor implementation. •

Microprocessor programming, based on the RTOS FreeRTOS©.

DEVELOPMENT 1. Physical parameters estimation Before the control system is designed, it is necessary to know and model the different physical parameter values that interfere in the system that is going to be controlled. These parameters are: •

Motor´s internal resistance



System´s mass



Motor´s inductance



Constants associated to the motor´s torque



Viscous friction



Maximum speed

Once these parameters have been measured, a system´s model can be obtained, which will be the base to work on in order to design the control. Without a model of the physical system it would have been impossible to accomplish the mentioned design or the simulations that were performed to verify its adequacy. A first approximation of the model is shown in the following figure:

ABSTRACT

2. Hardware The control system needs to interact with the hardware to be useful. The hardware of the system is composed of a power stage, which links the control and the DC motor, and different conditioning circuits for the measure signals and the microprocessor. The power stage is in charge of adequate the output signal of the microprocessor to make it able to move the DC motor. The main component of this stage is an “H bridge”. The signal conditioning circuits adequate the signals that are needed to be measured to feedback the control with the most sensibility and accuracy possible, and without disturbing the original signal. In these circuits have been basically used stages based on operational amplifiers, and sensors. 3. Design and implementation of the control system The control system design can be divided into 2 different parts: a system to generate the speed reference, depending on the acceleration values measured, and another system that will make the train follow that reference. These 2 parts have been implemented in a Motorola ColdFire MCF5282 microprocessor. The reference generation´s simplified flowchart is shown in the following image:

The second part of the control is bsed on two PI reculators in cascade, whose parameters have been fixed according to different designs: in the first place, the design was made approximating the

ABSTRACT

parameters by different simulations. This method didn´t give very good results, and aftger realizing that, some techniques of frequency response were applied to the design. When the behaviour of the output signal of the control system was analyzed, it could be thought that it could be improved by filtering the measured current that goes into the microprocessor. In order to do so, 2 digital filters were designed: a first-order low-pass filter, and a los-pass FIR filter. Afer redesigning the system control including those filters, and after simulating the system, it was shown that, instead of improving the output, the filters worsed it. Once the control was selected, a system´s escalating was performed, so the microprocessor could work with 8, 16 or 32 bit variables, in order to increase its performing. In the last place, once the system and the control was escalated with 16 bit variables (which were considered the best variable type according to the simulations), the program for the microprocessor was developed, and it was implanted using the real time operatie system FreeRTOS©. RESULTS AND CONCLUSIONS The following figure shows the control response with two step-functions in the reference (the first step, of 0.5m/s was used to take the system into the steady state):

It can be observed that the system´s response adapts to the reference with a considerable adequacy, which induces to think that the control has been designed in a satisfactory way. This premise was corroborated with the experiments performed.

I.- MEMORIA

MEMORIA

Índice

ÍNDICE

ÍNCIDE DE FIGURAS .................................................................................4 ÍNDICE DE TABLAS ...................................................................................9 CAPÍTULO 1: INTRODUCCIÓN ...............................................................10 1.1.

Motivación ................................................................................................ 10

1.2.

Objetivos y fases del proyecto .................................................................. 12

1.3.

Estructura de la memoria ........................................................................ 15

CAPÍTULO 2: ESTADO DEL ARTE .........................................................17 2.1.

Introducción ............................................................................................. 17

2.2.

Sistemas de control de trenes ................................................................... 17

2.3.

Control de motores de corriente continua ............................................... 24

CAPÍTULO 3: DESCRIPCIÓN Y MODELADO DEL SISTEMA ...............27 3.1.

Introducción ............................................................................................. 27

3.2.

Descripción del sistema ............................................................................ 29

3.3.

Estimación de parámetros físicos ............................................................ 33 3.2.1. Cálculo de la resistencia interna del motor ...............................33 3.2.2. Cálculo de la inductancia del motor ..........................................34 3.2.3. Cálculo de la constante asociada a la fuerza contraelectromotriz del motor (Ke) ..............................37 3.2.4. Cálculo de la constante del par motor (Km) ..............................38 3.2.5. Cálculo de la fricción viscosa ...................................................39 3.2.6. Cálculo de la masa ....................................................................40 3.2.7. Estimación de la velocidad máxima ..........................................41

3.4.

Obtención del modelo ............................................................................... 42 3.3.1. Modelo de la planta ...................................................................42 3.3.2. Modelo del actuador (motor DC) ..............................................43

3.5.

Conclusiones ............................................................................................ 46

1

MEMORIA

Índice

CAPÍTULO 4: DISEÑO DEL HARDWARE ..............................................47 4.1.

Introducción ............................................................................................. 47

4.2.

Etapa de potencia ..................................................................................... 48

4.3.

Reguladores de tensión ............................................................................ 61

4.4. Circuito de acondicionamiento de medida de la intensidad que atraviesa el motor ................................................................................................................. 63 4.5.

Circuito de acondicionamiento de la señal del acelerómetro ................. 67

4.6.

Diseño de las balizas ................................................................................ 72

4.7.

Conclusiones ............................................................................................ 77

CAPÍTULO 5: SISTEMA DE CONTROL ..................................................79 5.1.

Introducción ............................................................................................. 79

5.2.

Sistemas de control digital ....................................................................... 79

5.3.

Control proporcional-integral discreto.................................................... 83

5.4.

Diseño del control .................................................................................... 86 5.4.1. Diseño mediante ajuste por simulación.....................................88 5.4.2. Diseño basado en técnicas de respuesta en frecuencia en lazo abierto con modelado de los efectos de retrasos de actualización de valores y PWM .................................99

5.5.

Filtros digitales: filtro de primer orden y filtro FIR ............................ 109 5.5.1. Filtro paso bajo de primer orden .............................................109 5.5.2. Filtro paso bajo FIR ................................................................115

5.6.

Escalado del problema ........................................................................... 123

5.7.

Conclusiones .......................................................................................... 128

CAPÍTULO 6: IMPLANTACIÓN EN EL MICROPROCESADOR ...........129 6.1.

El microprocesador ColdFire MCF5282 .............................................. 129

6.2.

Implantación: programación del microprocesador .............................. 134 6.2.1. Main…… ................................................................................137 6.2.2. Control….................................................................................138 6.2.3. ADCTask.................................................................................139 6.2.4. IntGPTA0 ................................................................................140 6.2.5. IntPIT0....………………………………………………....140

2

MEMORIA

Índice

6.2.6. Programación del regulador PI discreto ..................................142 6.3.

Conclusiones .......................................................................................... 145

CAPÍTULO 7: RESULTADOS EXPERIMENTALES ..............................146 7.1.

Introducción ........................................................................................... 146

7.2.

Pruebas del circuito de potencia ............................................................ 146

7.3.

Pruebas del prototipo ............................................................................. 149

CAPÍTULO 8: CONCLUSIONES Y TRABAJO FUTURO ......................150 AGRADECIMIENTOS .............................................................................154 BIBLIOGRAFÍA ......................................................................................155 ANEXOS .................................................................................................157

3

MEMORIA

Índice ÍNCIDE DE FIGURAS

Figura 1.1: Diagrama de bloques del sistema a diseñar .................................... 13 Figura 3.1: diagrama funcional de bloques de un sistema de control continuo tipo...... .................................................................................................................. 29 Figura 3.2: Primera aproximación del diagrama funcional de bloques del sistema completo................................................................................................... 32 Figura 3.3: corriente que atraviesa el motor ...................................................... 35 Figura 3.4: Esquema eléctrico de un motor DC ................................................. 36 figura 3.5: fuerza contraelectromotriz en función de la velocidad del tren desarrollada en el experimento. ........................................................................... 38 figura 3.6: fuerza del par motor en función de la velocidad del tren desarrollada en el experimento. ........................................................................... 40 Figura 3.7: velocidad en función de tensión de alimentación. .......................... 41 Figura 3.8: representación mecánica de la planta ............................................. 42 Figura 3.9: diagrama funcional de bloques de la planta ................................... 43 Figura 3.10: diagrama funcional de bloques del actuador ................................ 45 Figura 4.1: representación esquemática del funcionamiento de un puente en H …………………………………………………………………………..49 Figura 4.2: esquema interno simplificado de un puente en H comercial ......... 50 Figura 4.3: configuración para frenado del motor utilizando el puente en H .. 51 Figura 4.4: Esquema del circuito de la etapa de potencia ................................. 53 Figura 4.5: disposición de los pines del ILQ74 .................................................. 55 Figura 4.6: Corriente colector-emisor frente a corriente por el LED y temperatura en el optoacoplador ......................................................................... 56 Figura 4.7: caída de tensión en el diodo en conducción directa, en función de la corriente que lo atraviesa ..................................................................................... 56 Figura 4.8: esquema del puente en H L298N ..................................................... 59 Figura 4.9: 78SR. Se pueden observar los elementos discretos integrados ....... 62

4

MEMORIA

Índice

Figura 4.10: circuito de regulación de tensión de 14V a 3V .............................. 62 Figura 4.11: circuito de regulación de tensión de 14V a 5V .............................. 63 Figura 4.12: circuito de acondicionamiento de medida de la intensidad que atraviesa el motor ................................................................................................. 64 Figura 4.13A: situación del acelerómetro sobre la maqueta del tren ................ 67 Figura 4.13B: configuración de los pines del ADXL320 ................................... 68 Figura 4.14: circuito de acondicionamiento de la señal del acelerómetro ........ 70 Figura 4.15: característica del rectificador de precisión .................................... 72 Figura 4.16: Circuito de una baliza .................................................................... 73 Figura 4.17: sumador, inversor y protección del microprocesador ................... 77 Figura 5.1: discretización de una señal continua y efecto aliasing ................... 80 Figura 5.2: esquema genérico de un sistema de control digital ......................... 81 Figura 5.3: diagrama de Bode del control proporcional-integral...................... 84 Figura 5.4: diagrama de bloques del control PI en tiempo discreto ................. 85 Figura 3.2: Primera aproximación del diagrama funcional de bloques del sistema completo................................................................................................... 87 Figura 5.5: diagrama de bloques del lazo de control de corriente ..................... 89 Figura 5.6: relación entre Ti y K para un amortiguamiento de 0.7 ................... 90 Figura 5.7: respuesta ante un escalón de la salida del lazo de corriente linealizado con distintos valores de K y Ti ........................................................... 91 Figura 5.8: respuesta ante un escalón del mando de corriente ......................... 92 con distintos valores de K y Ti .............................................................................. 92 Figura 5.9: ajuste de la parte proporcional del control ...................................... 93 Figura 5.10: ajuste de la parte integral del control ............................................ 94 Figura 5.11: diagrama de bloques del sistema simulado ................................... 96 Figura 5.12: simulación del sistema con distintos valores de K ........................ 97 Figura 5.13: simulación del sistema con distintos valores de Ti ........................ 97

5

MEMORIA

Índice

Figura 5.14: respuesta del mando de corriente .................................................. 98 Figura 5.15: respuesta del mando de tensión ..................................................... 98 Figura 5.16: respuesta del sistema en simulación con retardos de actualización de salidas y PWM modelados ............................................................................. 100 Figura 5.17: diagrama de bloques del sistema, incluyendo retardos de actualización de salidas y efecto del PWM........................................................ 101 Figura 5.18: diagrama de bloques del lazo de control completo abierto, en tiempo continuo .................................................................................................. 102 Figura 5.19: diagrama de bloques del lazo de control de corriente abierto, .. 103 en tiempo continuo ............................................................................................. 103 Figura 5.20: diagrama de Black del lazo de corriente abierto, antes de aplicar el control …………………………………………………………………………104 Figura 5.21: diagrama de Black del lazo de corriente abierto, después de aplicar el primer diseño del control ............................................................................... 105 Figura 5.22: diagrama de Black del lazo de corriente abierto, después de aplicar el segundo diseño del control ............................................................................. 106 Figura 5.23: diagrama de Black del lazo completo abierto, antes de aplicar el el control …………………………………………………………………………106 Figura 5.24: diagrama de Black del lazo completo abierto, después de aplicar diseño del control ............................................................................................... 107 Figura 5.25: respuesta de la simulación del sistema ....................................... 108 Figura 5.26: ampliación de la respuesta de la simulación del sistema ............ 108 Figura 5.27: diagrama de bloques del filtro de primer orden .......................... 110 Figura 5.28: diagrama de Bode del filtro .......................................................... 111 Figura 5.29: diagrama de Black del lazo de corriente abierto, antes de aplicar el control …………………………………………………………………………..112 Figura 5.30: diagrama de Black del lazo de corriente abierto, una vez aplicado el control ............................................................................................................. 112 Figura 5.31: diagrama de Black del lazo completo abierto, antes de aplicar el control …………………………………………………………………………113 Figura 5.30: diagrama de Black del lazo completo, con control aplicado ...... 114

6

MEMORIA

Índice

Figura 5.31: respuesta del sistema en simulación ............................................ 114 Figura 5.32: diagrama de ceros y polos del filtro FIR diseñado ..................... 117 Figura 5.33: diagrama de Bode del filtro FIR diseñado .................................. 117 Figura 5.34: diagrama de bloques del filtro FIR diseñado .............................. 118 Figura 5.35: diagrama de Black del lazo de corriente abierto, antes de aplicar el control ………………………………………………………………………….119 Figura 5.36: diagrama de Black del lazo de corriente abierto, después de aplicar el control ............................................................................................................. 119 Figura 5.37: diagrama de Black del lazo completo abierto, antes de aplicar el control …………………………………………………………………………120 Figura 5.38: diagrama de Black del lazo completo abierto, una vez aplicado el control …………………………………………………………………………121 Figura 5.39: respuesta simulada del sistema ante un escalón ......................... 122 Figura 5.40: sistema en coma flotante y sistema escalado, con los distintos tiempos de muestreo del sistema representados ................................................ 124 Figura 5.41: bloque PI3 escalado a 8 bits ......................................................... 125 Figura 5.42: bloque PI4 escalado a 8 bits ......................................................... 126 Figura 5.43: respuesta del sistema en coma flotante y del sistema escalado a enteros de 8,16 y 32 bits ante un escalón de amplitud 0.1 m/s. ........................ 127 Figura 6.1: diagrama de bloques del microprocesador .................................... 130 Figura 6.2: características mecánicas del microprocesador MCF5282 .......... 131 Figura 6.3: asignación de pines (pinout) del microprocesador ....................... 131 Figura 6.4: diagrama de flujo de la función main ........................................... 137 Figura 6.5: diagrama de flujo de la tarea de control........................................ 138 Figura 6.6: diagrama de flujo de la tarea ADCTask ........................................ 139 Figura 6.7: diagrama de flujo de la interrupción IntGPTA0........................... 140 Figura 6.8: diagrama de flujo de la interrupción PIT0 ................................... 141 Figura 6.9: diagrama de flujo del sistema completo ........................................ 144 Figura 7.1: prototipo de la etapa de potencia en protoboard para pruebas I .. 146 7

MEMORIA

Índice

Figura 7.2 : generador de señales Thandar TG501 ......................................... 147 Figura 7.3: osciloscopio Tektroniks TDS 1002B .............................................. 147 Figura 7.4: medidas osciloscopio ...................................................................... 148 Figura 7.5: medidas osciloscopio ...................................................................... 148 Figura 7.6: prototipo final ................................................................................. 149

8

MEMORIA

Índice

ÍNDICE DE TABLAS Tabla 4.1: características eléctricas del circuito ILQ74 ..................................... 54 Tabla 4.2: funciones de cada uno de los pines del L298N ................................. 59 Tabla 4.3: características eléctricas más relevantes del L298N ......................... 60 Tabla 4.4: Características del acelerómetro ADXL320 ...................................... 68 Tabla 6.1: características eléctricas máximas del MCF5282 ........................... 132 Tabla 6.2: características eléctricas DC del MCF5282 .................................... 132 Tabla 6.3: características eléctricas DC del MCF5282 (continuación) ........... 133 Tabla 6.4: funciones asociadas a cada módulo ................................................ 136

9

MEMORIA

Introducción

Capítulo 1: Introducción 1.1. Motivación Los sistemas automáticos de control han desempeñado, y desempeñan, un papel muy importante dentro y fuera de la industria. Se pueden encontrar ejemplos de ello ya en el siglo III antes de Cristo, en la Antigua Grecia, con el diseño del reloj de agua, también conocido como Clepsydra, por parte de Ktesibios. El primer uso del control automático en la industria parece haber sido el regulador centrífugo de la máquina de vapor de Watt, en el año 1775, pero no fue hasta 1868 cuando se comienza a estudiar la teoría del control por realimentación, gracias a la explicación matemática del regulador centrífugo por James Clerk Maxwell.

Hoy en día, el control de sistemas es una de las áreas de estudio más interesantes y completas para el alumno de Ingeniería Electrónica, tanto por la complejidad que en sí mismo representa el control, como por la amplia gama de campos de conocimiento paralelos que se han de dominar a la hora de modelar el sistema (mecánica, teoría de fluidos, transmisión de calor… etc., dependiendo del tipo de sistema), diseñar el actuador que actuará sobre la planta del sistema (electrónica de potencia, funcionamiento de máquinas eléctricas…), o diseñar el circuito de acondicionamiento de medida de señales (electrónica analógica, instrumentación electrónica…).

Además, son muy amplias las aplicaciones que tiene el control de sistemas, por lo cual el presente proyecto adquiere gran valor didáctico de cara a la incorporación del alumno al mercado laboral.

El hecho de que se haya decidido implantar el control en un microprocesador aporta al proyecto un indudable valor formativo en el área del control digital de sistemas, así como del tratamiento de señales discretas, la programación en general, y la orientada a microprocesadores en particular.

10

MEMORIA

Introducción

Se consideró bastante interesante desde el principio que la planta a controlar fuese una pequeña maqueta de tren eléctrico. De esta forma se podrían observar físicamente los efectos del control, en vez de tener que intuirlos a partir de simulaciones por ordenador. Además, el sector del transporte ferroviario es un campo de trabajo bastante atractivo, y que presumiblemente ganará aceptación en el futuro frente a otros medios de transporte (avión, coche) de seguir como hasta ahora las tendencias inflacionistas del precio del petróleo.

Además, se puede consultar en la bibliografía una relación de noticias de accidentes ferroviarios por llevar una elevada velocidad al recorrer una curva. Este tipo de accidentes se podrían haber evitado con un sistema automático de control como el que propone el presente proyecto, aplicado a los sistemas ferroviarios reales, en vez de a una maqueta.

11

MEMORIA

Introducción

1.2. Objetivos y fases del proyecto El objetivo del presente proyecto es el diseño de un sistema de control de velocidad de una maqueta de tren a escala, accionado por un motor de corriente continua, basado en acelerómetros, que será implantado en un microprocesador. Dicho control actuará sobre el motor de la maqueta, haciendo que el tren desarrolle la máxima velocidad posible en cada tramo, dependiendo de la aceleración normal que experimente en cada instante. Cuando el tren entre en una curva, una baliza enviará una señal al microprocesador para que el tren adopte una velocidad moderada, entonces, el tren comenzará a aumentar su velocidad hasta alcanzar un máximo que vendrá dado por la aceleración normal, la cual será proporcional a la velocidad y al radio de la curva, que experimente el tren en dicha curva.

Se deberá diseñar tanto el circuito de potencia que permita actuar sobre el motor del tren, como el circuito de acondicionamiento de señal que permita medir las variables necesarias para efectuar el control. Además, se deberán diseñar distintos controles, y realizar pruebas mediante simulación de los mismos, para finalmente elegir el que mejor se adecúe a las funciones anteriormente descritas.

Por último, se deberá implantar el control en un microprocesador, trabajando con un sistema operativo en tiempo real. Para ello se habrá de realizar la adaptación del control al tiempo discreto, y posteriormente programar el microprocesador para que efectúe dicho control.

La figura 1.1 ilustra un esquema completo del sistema que se ha de diseñar.

12

MEMORIA

Introducción

Figura 1.1: Diagrama de bloques del sistema a diseñar

13

MEMORIA

Introducción

A continuación se hace referencia a los diferentes pasos a seguir para la realización del proyecto: 1. Diseño del circuito de potencia 2. Estimación de los parámetros físicos del sistema 3. Diseño y simulación del control 4. Diseño de los circuitos de acondicionamiento de señal para la medida 5. Adaptación del control al microprocesador. Escalado. 6. Implantación del control en el microprocesador. Programación. 7. Elaboración del circuito completo (potencia, acondicionamiento, balizas) 8. Elaboración de la memoria.

Diagrama de Gantt de la planificación del proyecto

SEPT

OCT

NOV

DIC

ENE

FEB

MAR

ABR

MAY

JUN

1 2 3 4 5 6 7 8

14

MEMORIA

Introducción

1.3. Estructura de la memoria A continuación se comentan los capítulos de los que está compuesta la memoria y el contenido de los mismos: •

Capítulo 2: Estado del arte. Abarca: o Breve historia de la evolución de los mecanismos de control ferroviario, hasta llegar a los sistemas de control actuales. o Breve historia de la evolución de los mecanismos de control de motores de corriente continua.



Capítulo 3: Descripción y modelado del sistema. Abarca: o Introducción a los sistemas de control continuo. o Estimación de los parámetros físicos necesarios a la hora de diseñar el control. o Obtención de los modelos de la planta y del actuador del sistema, así como una descripción del sistema completo.



Capítulo 4: Diseño y construcción del hardware. Abarca: o Diseño de la etapa de potencia del sistema. o Elección de los reguladores de tensión. o Diseño del circuito de acondicionamiento de medida de la corriente que atraviesa el motor. o Diseño del circuito de acondicionamiento de medida de la aceleración. o Diseño de las balizas.



Capítulo 5: Sistema de control. Abarca: o Introducción a los sistemas de control discreto. o Diseños del control del sistema sin filtros. o Diseños del control del sistema con filtros de primer orden y filtros FIR.

15

MEMORIA

Introducción o Escalado del problema a 16 bits.



Capítulo 6: Implantación en el microprocesador. Abarca: o Breve introducción al microprocesador ColdFire MCF5282 y sus características más importantes para este proyecto. o Programación del microprocesador, explicando las tareas y funciones más relevantes.



Capítulo 7: Resultados experimentales. Abarca: o Pruebas del circuito de potencia o Pruebas del prototipo



Capítulo 8: Conclusiones y trabajo futuro. Abarca: o Recopilación de las conclusiones que se han obtenido a lo largo de todos los capítulos mencionados. o Breve descripción del trabajo futuro que se podría desarrollar.

16

MEMORIA

Estado del arte

Capítulo 2: Estado del arte

2.1. Introducción En el presente capítulo se tratarán distintos aspectos del desarrollo tecnológico aplicado hoy en día tanto a sistemas de control de trenes como a control de velocidad de motores. También se expondrá brevemente la evolución tecnológica a largo de la historia de dichas disciplinas.

2.2. Sistemas de control de trenes Por razones históricas, la terminología ferroviaria mezcla a menudo dos conceptos diferentes bajo el término "control de tren": la intervención automática sobre el movimiento del tren (en los sistemas más simples generalmente sólo bajo la forma de frenado de emergencia) y la señalización en cabina (que no obligatoriamente controla la marcha del tren). Los primeros elementos no visuales para apoyar la señalización lateral son muy antiguos. Ya en 1842, E. A. Cowper patentó la primera señal acústica, el "detonador", que era prácticamente un petardo unido al carril, que estallaba cuando pasaba un tren por encima. Puesto que los petardos tenían que ser colocados manualmente, el uso era limitado a las situaciones de emergencia. El paso siguiente fue, en Gran Bretaña y los E.E.U.U. y a partir de 1850, la automatización de señales acústicas, mediante contactos mecánicos entre las señales y las locomotoras. Los primeros aparatos eran una señal acústica (típicamente un gong) instalada lateralmente a la vía, p. e., en el soporte de la señal. Si la señal indicaba parada una barra tocaba las ruedas y sonaba el gong. Más adelante el gong fue instalado en la locomotora constituyendo, así, la forma más temprana señalización en cabina. Alrededor de 1872, se creó en Francia el "Crocodile", el sistema de control de tren (al principio sólo repetición de señales laterales) con un ciclo de vida más

17

MEMORIA Estado del arte largo, pues todavía está en operación en las redes francesa y belga. El término "Crocodile" deriva de la forma del dispositivo de la rampa colocada entre los carriles, que se utiliza para establecer un contacto galvánico (electromecánico) y transmitir información a la locomotora. A partir de ese momento, la introducción del primer verdadero sistema de control del tren estaba sólo a un paso. Alrededor de 1870, Axel Vogt, el jefe de mecánicos del ferrocarril de Pennsylvania colocó un tubo de vidrio en la cabina, conectado con el tubo del freno neumático. Si un tren sobrepasaba una señal de parada, una palanca de la señal golpeaba y rompía el tubo de vidrio y se aplicaban los frenos. El primer sistema de control del tren utilizado a gran escala fue el ATC (control automático del tren) de la compañía británica GWR, que fue introducido en 1906. El ATC se basó en el sistema francés "Crocodile" pero, además de la señal acústica, el ATC también tuvo desde el principio métodos de visualización mecánica en la cabina y de accionamiento automático del freno de emergencia. Aunque el ATC y los sistemas similares han experimentado varias modificaciones, el principio de base es el mismo, y todavía se utiliza hoy. En 1920, el ferrocarril de Pennsylvania introdujo el sistema de CCS (Continuous Cab Signals), que a menudo está considerado como un hito en la historia del control del tren. El CCS es el antepasado de muchos sistemas existentes, incluyendo el BACC italiano y el ATB holandés. En vez de contactos electromecánicos (y sus partes móviles posibles fuentes de averías), el CCS se basa en un contacto inductivo entre circuitos cifrados en la vía y un receptor en la locomotora. Desde el principio fueron utilizadas luces de colores para anunciar en la cabina el aspecto de la próxima señal. El sistema original tenía dispositivo de intervención automática del freno, pero fue desactivado más adelante por algunas compañías. El CCS anunciaba las señales en la cabina tan correctamente que algunas compañías ferroviarias americanas quitaron las señales laterales para reducir gastos de explotación. Después de la primera guerra mundial, CCS fue transferido a la Unión Soviética. En lo que se refiere a longitud de líneas equipadas, CCS es el sistema mayoritario en el mundo.

18

MEMORIA Estado del arte Mientras, en Alemania, Siemens comenzaba el desarrollo de Indusi, el primer sistema de control aplicado a gran escala que incorporó la supervisión de la curva de frenado. De una forma semejante al CCS americano, también utiliza inducción para transmitir la información, pero la transmisión tiene lugar solamente en puntos discretos, mediante circuitos magnéticos en la locomotora y en las señales. Debido a su confiabilidad, a la simplicidad y a la capacidad de parar el tren antes del punto de peligro, Indusi y sus derivados se convirtió en el sistema de control más popular en buena parte de Europa (Alemania, Austria, Polonia, la antigua Yugoeslavia, Rumania, Turquía). La transmisión de información mediante transponders es más reciente y en ella se basan los sistemas españoles ASFA y el sueco EBICAB (en España se utiliza la versión EBICAB 900). Mas reciente aún es la transmisión sin hilos que es el sistema utilizado por el europeo ERTMS y sus antecesores FFB (FunkFahrBetrieb) y FZB (FunkZugBeeinflussung) de la Deutsche Bahn. Basados en los "antepasados" comunes (el Crocodile francés, el CCS americano y el Indusi alemán, los tres sistemas de control han evolucionado históricamente de maneras muy diferentes en las distintas compañías ferroviarias. Los sistemas modernos incluyen el cálculo dinámico en tiempo real del perfil de la velocidad. En 1990, había por lo menos 30 diversos sistemas de control del tren en operación en la red europea de vía ancha. A pesar de los antepasados comunes, casi todos los sistemas existentes son completamente incompatibles. La creación de las eurobalizas y sobre todo de ERTMS, debe terminar con esta "torre de Babel de estándares".

Se pueden considerar dos grupos de sistemas de control de tren: •

Sistemas

"auxiliares"

(señalización

lateral

prominente,

la

señalización en cabina repite la lateral, control de tren sólo en algunas situaciones de emergencia): ASFA, PZB/Indusi, Crocodile, ... •

Sistemas completos de señalización en cabina (señalización

lateral inexistente o subordinada a la de cabina). Son utilizados en LAV y 19

MEMORIA Estado del arte en líneas de cercanías y metro con mucha densidad de tráfico. Los sistemas mensajes que son evaluados en el computador central del vehículo. El sistema supervisa continuamente la velocidad del tren, y gobierna su marcha por medio de sistemas que controlan la tracción y el frenado del vehículo (como por ejemplo el sistema ATF, Automatismo de Tracción y Frenado, de las locomotoras de la serie 252 de Renfe. El equipo del vehículo emite la posición del tren, velocidad, características de frenado y otras informaciones al sistema central para su posterior tratamiento y realimentación del sistema.

En la actualidad, se pueden encontrar diversos sistemas de control de velocidad de trenes y señalización, entre los cuales, caben destacar los siguientes: •

ATP (Protección Automática de Tren, del inglés “Automatic Train Protection”) se puede encontrar implantado de distintas maneras: -

Doble señalización y ATP de una portadora En los sistemas de doble señalización el tren siempre está protegido por dos señales de control. Existe un cantón –tramo por el que un tren está autorizado a circular– único entre señal y señal, que por lo general se compone de uno o más circuitos de vía, conformando un cantón. Cada circuito de vía tiene asignada una velocidad máxima de seguridad (límite civil) a través del sistema de ATP, que es invariable en función de los pasos por diagonales, radios de curva, las pendientes, etc. (perfil de la vía). En caso de superar la velocidad asignada o rebasar una señal de control el tren aplica freno de emergencia hasta su total detención. El sistema de ATP se comunica de forma continua con el tren por medio de una señal que recorre los carriles y aporta un código con la velocidad máxima en el circuito de vía. Este sistema consigue

20

MEMORIA Estado del arte intervalos teóricos de entre 2 min 20 seg y 2 min 50 seg dependiendo de las configuraciones de la vía.

-

Señalización Simple y ATP de dos portadoras En este sistema las parejas de códigos (portadoras) indican la “Velocidad Máxima de Seguridad” y la “Velocidad Objetivo”. Para un tren que circula por una Línea con sistema de códigos de dos portadoras el sistema “avisa” con antelación cual va a ser la velocidad máxima permitida en el siguiente circuito de vía, de tal manera que si el tren llegara a ese circuito de vía a una velocidad superior, se aplicaría freno de emergencia hasta la completa detención del tren. En los sistemas de ATP de dos portadoras existe una señal a la salida de la estación y ésta puede autorizar la salida de los trenes en, blanco, verde o en un aspecto “M Roja” –Rojo para trenes conducidos en “Manual” y vía libre para los trenes conducidos con ATP – que indica que la vía no está libre hasta la siguiente estación, por lo que el tren debe posteriormente guiarse por los códigos de ATP existentes en la vía. Los tramos de vía con códigos de dos portadoras tienen una velocidad máxima de seguridad (límite civil) que puede variar hacia una velocidad menor en función de la proximidad del tren anterior o el aspecto de las señales (por la posición de agujas, vueltas automáticas, etc.) Así mismo se imposibilita la aplicación de tracción cuando la velocidad del tren es superior a la objetivo. El ATP de dos portadoras consigue intervalos teóricos de entre 1 min 55 seg y 2 min 15 seg dependiendo de las configuraciones de la vía.

21

MEMORIA Estado del arte • ATO (Conducción Automática de Tren, del inglés “Automatic Train Operation) El sistema de conducción automática se compone de un conjunto de equipos, que situados en vía y tren sustituyen la función del conductor, excepto la apertura y cierre de puertas y la orden de arranque. Este modo de conducción está bajo la supervisión del ATP que indica al sistema las velocidades máximas para cada tramo, y proporciona un menor tiempo de recorrido y un mejor confort de marcha respecto a la conducción en “Manual” con ATP. El tren puede recibir diferentes tipos de órdenes y en especial la de velocidad de marcha por regulación de tráfico que se realiza desde el Puesto Central a través del SIRAT. También permite la maniobra de vuelta en terminales (autoshunt), sin conductor en una de las cabinas (la de entrada al saco), siempre que existan códigos de ATP. Para la correcta parada de los trenes en las estaciones existen en la vía una serie de balizas denominadas X1, X2 y X3. Por medio de ellas es posible transmitir datos de geometría de vía al tren y desde el Puesto Central órdenes como por ejemplo; el paso sin parada en la estación, situación del punto de parada, velocidad en la interestación, perfil de vía, autoshunt, etc.



SIRAT (Sistema Integrado de Regulación Automática de Trenes) Este sistema permite la regulación de trenes a intervalo y a horario en horas de menor afluencia de viajeros. También realiza de una forma gradual la incorporación o encierre de trenes de la línea y las transiciones de circulación por intervalo a circulación con horario.

22

MEMORIA Estado del arte El Sistema Integrado de Regulación Automática de Trenes está plenamente integrado en las líneas con circulación en ATO, este sistema permite, por medio de una simulación predictiva, un ajuste preciso en la regularidad de los trenes, utilizando las diferentes velocidades que las balizas de ATO pueden transmitir al tren en las interestaciones. Así mismo en las líneas no dotadas de ATO realiza la regulación mediante el uso de las señales. Como resultado de estos ajustes en la regulación se mejora la capacidad de transporte de las líneas y se consiguen unos elevados ahorros de energía derivados de la aplicación de marchas con menor consumo de los trenes y evitando paradas por regulación en las estaciones. Otra de las prestaciones del sistema son los informes en tiempo real en forma de gráficos de los índices de calidad de la regularidad.



Distancia Objetivo En este sistema el tren recibe de la instalación de vía no sólo la velocidad máxima a la que el tren puede circular en el cantón por el que circula, sino también que cantón precedente se encuentra ocupado por otro tren. De esta forma, cada tren tiene información de la distancia que le queda por recorrer hasta el cantón realmente ocupado por delante. Con ello se posibilita un mayor acercamiento de cada tren a su precedente, reduciéndose el intervalo entre trenes en la línea y aumentando la capacidad de transporte de la misma.



Cantón móvil En este sistema el tren va informando vía radio permanentemente a un sistema de control ubicado en la instalación fija de su situación. A su vez, cada tren recibe información vía radio acerca de la situación del 23

MEMORIA Estado del arte tren anterior, de esta forma un tren puede aproximarse al máximo al tren precedente según lo que su parábola o distancia de frenado le exija (en función de su velocidad, el perfil de vía, tiempos de respuesta y seguridad, etc.) La diferencia fundamental con el sistema anterior es que su proximidad es relativa al tren anterior y no a un cantón ocupado, ya que éste en función de su longitud provoca unas distancias mayores entre trenes, esto es, un mayor intervalo.

2.3. Control de motores de corriente continua El motor de corriente continua aparece en el siglo XIX. Esta máquina es una de las más versátiles en la industria. Su fácil control de posición, par y velocidad la han convertido en una de las mejores opciones en aplicaciones de control y automatización de procesos. La principal característica del motor de corriente continua es la posibilidad de regular la velocidad desde vacío a plena carga.

Una máquina de corriente continua (generador o motor) se compone principalmente de dos partes, un estator que da soporte mecánico al aparato y tiene un hueco en el centro generalmente de forma cilíndrica. En el estator además se encuentran los polos, que pueden ser de imanes permanentes o devanados con hilo de cobre sobre núcleo de hierro. El rotor es generalmente de forma cilíndrica, también devanado y con núcleo, al que llega la corriente mediante dos escobillas. También se construyen motores de CC con el rotor de imanes permanentes para aplicaciones especiales.

En 1896 aparece el control Ward Leonard para variación de velocidad. De las tres formas de variar la velocidad de un motor, la más eficaz es la del control de voltaje de armadura, puesto que permite una amplia variación de la velocidad sin afectar el par máximo del motor. La forma normal de variar el voltaje de armadura de un motor de cc, era suministrándolo desde un generador de cc. 24

MEMORIA Estado del arte Un motor primo trifásico que mueve al rotor del generador de cc el cual se usa para alimentar un voltaje de cc a un motor de cc; a éste sistema se le llama Ward-Leonard y es extremadamente versátil. El voltaje de armaura se puede variar mediante cambios en la corriente de campo en el generador de cc, éste voltaje de armadura permite que la velocidad del motor pueda variarse suavemente entre un valor muy pequeño y la velocidad base. La velocidad del motor puede ajustarse por encima de la velocidad base reduciendo la corriente de campo del motor, por eso es que este sistema es tan flexible que permite control total de la velocidad del motor. Además permite también el cambio del sentido de rotación, solamente cambiando la polaridad del voltaje de armadura, así es posible obtener un rango muy amplio de variación de la velocidad en cualquier sentido de rotación. Otra función es la de “regenerar” o retornar a las líneas de alimentación la energía de movimiento de las máquinas. Si una carga pesada se eleva y luego se baja mediante el motor de cc de un sistema Ward-Leonard, cuando la carga esta cayendo, el motor de cc actua como generador, suministrando potencia hacia el sistema de ca. En esta forma, mucha de la energía requerida en el primer momento para alzar la carga puede recuperarse reduciendo el costo total de operación de la máquina. La desventaja del sistemna Ward-Leonard, es la de tener que comprar tres máquinas completas de valores nominales esencialmente iguales, lo cual es muy costoso. Otra es que tres máquinas son mucho menos eficientes que una, por ello han sido reemplazado por circuitos controladores basados en SCRs , que resultan definitivamente más barato que dos máquinas extra.

En 1911 aparece el control Kramer para el motor de Rotor Devanado. Basado en el principio de Leblanc, este método difiere en que el transformador variable va conectado a los anillos colectores del motor bobinado en vez de a la línea. Como en el caso del sistema de Leblanc, la frecuencia del rotor bobinado es también la frecuencia del voltaje en el conmutador. Decalando la posición de fase de las escobillas se alternará el factor de potencia del motor de rotor devanado, e incrementado el voltaje aplicado al rotor del convertidor se incrementará la velocidad. Se pueden conseguir velocidades superiores e inferiores a la síncrona. Además el convertidor de frecuencia también actúa 25

MEMORIA Estado del arte como motor al convertir la potencia que se le suministra a través del autotransformador en potencia mecánica disponible en el eje. Las mayores aplicaciones de los sistemas de Leblanc y Kramer son para grandes motores de rotor bobinado de 500 CV hasta unos 3000 CV. Las ventajas de devolver la energía al sistema, además de las bajas pérdidas en línea del convertidor y el autotransformador (el aparato eléctrico de mayor rendimiento desarrollado hasta el momento), combinado con la ventaja de corrección del factor de potencia, hace que el sistema de Kramer sea particularmente útil en aplicaciones de control de velocidad de elevada potencia. Su mayor inconveniente reside en su elevado costo inicial.

La evolución del control de motores a partir de entonces va de la mano del desarrollo de distintos dispositivos eléctricos y electrónicos. Durante los años 20 aparecen los primeros dispositivos electrónicos de arco (ignitron, tiratron, válvula de mercurio). Durante los años 50 aparecen los semiconductores de estado sólido (diodo y transistor). En la década del 60 aparece el tiristor, que es considerado el dispositivo más importante para la Electrónica de potencia. En la década de los 70 comienza a evolucionar la microelectrónica

En la década del 80 se desarrolla el microprocesador. Este hecho, junto con el avance de la electrónica, ha hecho que los motores de corriente continua hayan caído en desuso pues los motores de corriente alterna del tipo asíncrono, pueden ser controlados de igual forma a precios más accesibles para el consumidor medio de la industria. A pesar de esto el uso de motores de corriente continua continúa y se usan en muchas aplicaciones de potencia (trenes y tranvías) o de precisión (máquinas, micromotores, etc.)

En este proyecto se han utilizado técnicas de control por modulación de ancho de pulso (PWM), las cuales se verán con mayor profundidad en el capítulo cuarto.

26

MEMORIA

Modelado del sistema

Capítulo 3: Descripción y modelado del sistema

3.1. Introducción Se define sistema como un elemento o conjunto de elementos que da una respuesta o salida ante una determinada excitación o entrada. Existen diversos tipos de sistemas, clasificados atendiendo a distintas características o propiedades de los mismos, pudiéndose clasificar el sistema que se va a tratar a continuación como un sistema cuantitativo (se puede tratar siguiendo modelos matemáticos), dinámico (su respuesta en un instante depende de valores anteriores de la entrada, y no sólo del valor de la entrada para ese instante), lineal (se cumple el principio de superposición para las ecuaciones del modelo), e invariante en el tiempo (el sistema va a ser el mismo en cualquier instante de tiempo). Aquellos sistemas lineales e invariantes en el tiempo suelen denominarse comúnmente “LTI”, del inglés linear time-invariant.

Un modelo es un conjunto de ecuaciones matemáticas que se emplean para describir la relación entre la entrada y la salida del sistema. Es poco probable que el modelo pueda representar exactamente las relaciones entre la entrada y la salida de un sistema. En cualquier etapa de modelado hay una serie de efectos que se desprecian para hacer el problema tratable. No obstante, no deja de ser útil el uso de modelos que pueden aproximar la realidad, permitiendo una serie de estudios, como la simulación (obtención de forma numérica o gráfica de la respuesta de un sistema ante una excitación conocida), el control (regulación de la salida de un sistema para que sea igual o parecida a una determinada entrada o consgina) o la predicción (obtención de la respuesta de un sistema en el futuro, supuestas diversa condiciones de entrada), con distintas aplicaciones. Si no se indica lo contrario, en el resto del texto se considerará que el modelo es el sistema, esto es, que las ecuaciones representan suficientemente bien la realidad. De hecho, abusando del lenguaje, se llamará habitualmente sistema al conjunto de ecuaciones que forman el modelo.

27

MEMORIA

Modelado del sistema

De ahora en adelante, se utilizará el término señal para referirse a una variable o magnitud que puede variar en el tiempo. La señal de entrada de un sistema, o excitación, es la variable que normalmente controla o impone el usuario. La respuesta de este sistema, o salida, es la variable de interés. Nótese que las variables de salida son, en ocasiones, elegidas por el usuario. Además, pueden existir otras variables o señales internas en el sistema, normalmente de menor interés. La mayor parte de las señales estarán modeladas por funciones sencillas. En otros casos la señal será una composición de estas funciones. El uso de estas funciones sencillas está justificado por varios motivos: · Se dan comúnmente en la práctica. · Se usan, en algunos casos, como señales normalizadas. · Son más fáciles de tratar analíticamente. Se utilizará habitualmente la notación u(t) para la señal de entrada e y(t) para la salida.

Cabe señalar que un sistema dinámico, lineal e invariante en el tiempo, está representado por una ecuación diferencial lineal de coeficientes constantes, del tipo:

d n y(t ) d n−1 y(t ) dy(t ) a + + ... + a1 + a0 y(t ) = n −1 n n −1 dt dt dt d m y(t ) d m−1 y(t ) dy(t ) b = bm + + ... + b1 + b0 y(t ) m−1 m m−1 dt dt dt

an

[3.1]

La cual puede ser resuelta utilizando la transformada de Laplace. Se define la trasformada de Laplace X(s) de una variable x(t) como: ∞

X (s ) = L{x(t )} = ∫ x(τ )·e −sτ dτ

[3.2]

0−

Para más información acerca de la trasformación de Laplace y sus propiedades, así como de las trasformadas de las funciones que se van a utilizar

28

MEMORIA Modelado del sistema más adelante, se puede consultar cualquier texto sobre ecuaciones diferenciales, como por ejemplo las referencias bibliográficas número 6, 7 y 8.

3.2. Descripción del sistema

Como todo problema de control, se puede seguir el siguiente esquema para su modelización: Perturbación Ref.

CONTROL

CONVERTIDOR DE POTENCIA

-

SISTEMA A Salida CONTROLAR

-

SENSOR Figura 3.1: diagrama funcional de bloques de un sistema de control continuo tipo. El bloque de control consistirá en dos lazos de control proporcional integral discretos, implantados en un microprocesador. Como se puede apreciar en la figura 3.2, el primero de esos bloques de control, compara la referencia de velocidad con la medida de la misma mediante un sensor, que en este caso está representado por la ganancia Ks. Después de aplicar su acción proporcionalintegral, que se verá con más detalle en el capítulo de “Software y sistema de control”, obtiene como salida un valor de corriente (el cual oscilará entre dos valores, mínimo y máximo, que serán los valores de saturación, por encima de los cuales, en valor absoluto, el motor podría sufrir daños), que será denominada corriente de referencia de ahora en adelante, y que se introduce como entrada en otro bloque de control. Este segundo bloque de control comparará dicha corriente de referencia con la corriente real que circula por el motor en cada instante, para, posteriormente, aplicar su acción proporcional-integral, y generar una señal (mando), que, debidamente acondicionada, tras pasar por la etapa de

29

MEMORIA Modelado del sistema potencia, representa la tensión de alimentación del motor en un instante determinado.

El mando, o salida del microprocesador que ejecuta el algoritmo de control, es una onda PWM entre 0 y 3V. Esta señal es debidamente acondicionada para obtener a la salida del circuito de potencia una onda PWM entre -14V y 14V, lo que permite variar el valor medio de la tensión que se le procura al motor entre los valores mencionados anteriormente. El proceso de acondicionamiento de la señal efectuado en el circuito de potencia se encuentra detallado en el apartado primero del capítulo cuarto, denominado “Etapa de potencia”.

El sistema a controlar se compone de dos partes: •

Actuador: modelo eléctrico del motor de corriente continua. Se estimarán sus parámetros (inductancia y resistencia internas) como se describe en el apartado de estimación de parámetros físicos, y se modelizará de acuerdo a un modelo matemático, descrito con más detalle en el apartado 3.4.



Planta: modelo mecánico del motor y la maqueta del tren. Sus parámetros (masa y fricción viscosa producto del rozamiento del tren con las vías y de las holguras de los engranajes del motor) serán estimados tal y como se describe en el apartado 3.3. Se tratará la planta como un modelo matemático cuya obtención se detalla en el apartado 3.4.

En cuanto al sensor, o elemento utilizado para medir la variable de salida, para poder así realimentar el sistema, se diseñará un circuito de acondicionamiento para poder medir la intensidad que se le está suministrando al tren, y se usará esa intensidad para estimar su velocidad. Tanto su diseño como implantación están detallados en el apartado 4.4, denominado “Diseño del circuito de acondicionamiento”.

30

MEMORIA

Modelado del sistema

El diagrama de bloques del sistema completo, simplificando distintos aspectos del mismo como la etapa de potencia o la discretización de las señales de

control

es

el

que

muestra

la

figura

3.2:

31

MEMORIA

Modelado del sistema

Figura 3.2: Primera aproximación del diagrama funcional de bloques del sistema completo

32

MEMORIA

Modelado del sistema

3.3. Estimación de parámetros físicos

3.2.1. Cálculo de la resistencia interna del motor Para calcular la resistencia interna del motor, se mide con un polímetro la resistencia que existe entre las dos bornas del motor. Como el control se va a aplicar a una maqueta de tren eléctrico, cuyo motor es alimentado a través de las vías metálicas sobre las que circula dicha maqueta, habrá que comprobar que la resistencia de las vías es despreciable con respecto a la resistencia interna del motor.

Se demuestra que la resistencia eléctrica de un conductor es directamente proporcional a su longitud, e inversamente proporcional a su sección y a su conductividad: ∆R =

∆l σ ·S

[3.3]

Integrando entre los extremos a y b del conductor, resulta:

R( a ,b ) =

1

σ

b

·∫ a

1 · dl S

[3.4]

Cuando el conductor tiene sección constante, como es este caso, la expresión anterior puede simplificarse, obteniéndose así:

Rab =

L 1 Lab · = ρ · ab S σ S

[3.5]

Una vez demostrado, queda comprobar lo enunciado con anterioridad, esto es, que la resistencia eléctrica que ofrecen las vías es despreciable respecto a la resistencia interna del motor. Para ello se realizó un ensayo experimental, viendo cómo cambiaba la resistencia del conjunto motor-vías conforme se desplazaba el tren por las mismas de forma manual (esto es, sin aplicarle ninguna tensión al motor). De este ensayo se sacó la conclusión de que la resistencia de las vías es

33

MEMORIA Modelado del sistema despreciable, ya que, a lo largo de todo el circuito, la resistencia del conjunto variaba como máximo 1 Ω sobre 35 Ω.

3.2.2. Cálculo de la inductancia del motor Con ayuda de la etapa de potencia, se hace pasar una onda cuadrada, de amplitud 28V y valor medio 0V por el motor, al cual se le ha instalado una resistencia en serie de 1Ω para medir la intensidad que recorre la bobina del motor.

Se mide con el osciloscopio la tensión tanto a un lado como a otro de la resistencia, tomando como referencia de masa la misma que tiene la etapa de potencia. La intensidad que circula por la inductancia del motor será igual a la diferencia de las dos tensiones medidas anteriormente, dividida entre el valor de la resistencia antes mencionada, esto es, 1Ω.

Para obtener dicha variable con la mayor precisión posible, se almacenan los datos del osciloscopio en un fichero “.txt”, llamado “corriente.txt”, y desde Matlab se efectúan las operaciones pertinentes mediante un fichero “.m”, llamado “leer_datos.m” (ver anexo 2 para más información) con el fin de representar dicha corriente, dando como resultado:

34

MEMORIA

Modelado del sistema

Figura 3.3: corriente que atraviesa el motor Se observa que dicha corriente, como era de esperar, toma la forma de una exponencial, por tanto, su expresión analítica será del tipo: +

I (t ) = I (∞) + ( I (0 ) − I (∞)) · e



t

τ

[3.6]

Siendo τ la constante de tiempo de la exponencial.

Despejando τ de la ecuación anterior, queda:

τ=

−t  I (t ) − I (∞)   Ln + ( I ( 0 ) − I ( ∞ )  

[3.7]

Y sustituyendo por los valores pertinentes, obtenidos de la medida, y ponderados gracias a Matlab, como se puede apreciar en el fichero

35

MEMORIA Modelado del sistema “leer_datos.m”, se obtiene un valor para la constante de tiempo de la exponencial de: τ

= 5.6662· 10-5 s

Una vez se ha obtenido el valor de la constante de tiempo de la exponencial de la corriente, sólo hará falta hallar la relación entre la inductancia del motor y dicha constante de tiempo para calcular la primera. A partir del esquema eléctrico del motor de corriente continua, representado en la figura 3.4, se obtiene:

U − em  U − em  −t L I ( s) = ⇒ i (t ) =  ·e R + L·s L  

R

[3.8]

Figura 3.4: Esquema eléctrico de un motor DC Como se vio anteriormente, la corriente es una exponencial cuya expresión −

t

analítica se define como: I (t ) = I (∞) + ( I (0+ ) − I (∞)) · e τ . Comparando estas dos expresiones obtenidas, se deduce que:

τ=

Por lo tanto,

L R

[3.9]

L = 2 mH

36

MEMORIA

Modelado del sistema

3.2.3. Cálculo de la constante contraelectromotriz del motor (Ke)

asociada

a

la

fuerza

A partir del circuito eléctrico del actuador (motor DC), se concluye que:

Fm = i · K m =

u − em ·K m R + L·s

[3.10]

De lo que se deduce que, en régimen permanente:

Fm(0) = i(0) · K m =

u − em ·K m R

[3.11]

La corriente, en régimen permanente se puede calcular como:

i=

u − em ⇒ em = u − R · i R

[3.12]

Además, la fuerza contraelectromotriz del motor se puede expresar como:

em = K e · v

[3.13]

Para el cálculo de la fricción viscosa por rozamiento del tren con las vías, así como para el cálculo de la constante del par motor (Km) y de la constante asociada a la fuerza electromotriz del motor (Ke) se realizó el siguiente experimento: sobre un circuito circular, se le hizo al tren completar N vueltas a dicho circuito, midiendo el tiempo que tardaba en completar las N vueltas. Este proceso se repitió varias veces, aplicando distintas tensiones al motor del tren cada vez. A su vez, también se midió el valor medio de la corriente que suministraba la fuente con la que se alimentó el motor a este. Todas las medidas mencionadas, representan las magnitudes medidas en régimen permanente.

Una vez obtenidos los distintos valores descritos anteriormente, se representa gráficamente la fuerza contraelectromotriz en función de la velocidad, y se realiza una regresión lineal simple, obteniéndose:

37

MEMORIA

Modelado del sistema

figura 3.5: fuerza contraelectromotriz en función de la velocidad del tren desarrollada en el experimento. Como se ha visto anteriormente, la fuerza electromotriz puede expresarse como el producto de la constante asociada a ella (Ke) y la velocidad. Por tanto, se puede deducir fácilmente que dicha constante asociada a la fuerza electromotriz será la pendiente de la recta representada anteriormente. Por tanto: K e = 5.8347 V·s/m

3.2.4. Cálculo de la constante del par motor (Km) La constante asociada a la fuerza contraelectromotriz del motor, y la constante del par motor, que se ha calculado anteriormente, son iguales. Teniendo en cuenta esto, se deduce que:

Km = 5.8347 N·m/A

38

MEMORIA 3.2.5. Cálculo de la fricción viscosa

Modelado del sistema

Debido al rozamiento que se produce entre las ruedas del tren y las vías, y a posibles holguras en los engranajes del motor, se produce un efecto de fricción que se puede modelar como una fricción viscosa.

Como ya se explicará más adelante, la función de transferencia de la planta del sistema es:

v=

1 D

1 ·(Fm − Ff ) = ·(Fm − Ff ) M Ms + D s +1 D

[3.14]

De lo que se deduce que, en régimen permanente (es decir, cuando ω=0):

v(0) = vs= jω ,ω =0 =

1 D

·(Fm − Ff ) ⇒ D·v + Ff = Fm [3.15] M jω + 1 D

Como se vio anteriormente:

Fm = i · K m =

u − em ·K m R + L·s

[3.16]

De lo que se deduce que, en régimen permanente:

Fm(∞) = i(∞) · K m =

u (∞ ) − em (∞ ) ·K m R

[3.17]

Como Km es ya una constante conocida, así como em también lo es, se puede representar la fuerza del par del motor (Fm) con respecto a la velocidad, y hacer de nuevo una regresión lineal simple, lo cual se puede observar en la figura 3.6:

39

MEMORIA

Modelado del sistema

figura 3.6: fuerza del par motor en función de la velocidad del tren desarrollada en el experimento. Como la fuerza del par motor si no hay perturbaciones se puede expresar como el producto entre la fricción viscosa y la velocidad, se puede afirmar que la fricción viscosa asociada al rozamiento del tren con las vías será la pendiente de la recta anteriormente representada. Por tanto: D = 0.6703

Nm·s/rad

3.2.6. Cálculo de la masa La medida de la masa se realizó con una balanza electrónica. De este ensayo se concluyó que: M

= 0.7kg

40

MEMORIA 3.2.7. Estimación de la velocidad máxima

Modelado del sistema

Por último, se trató de estimar la velocidad máxima que puede desarrollar el tren cuando se alimenta su motor con una tensión máxima de 14V. Para ello se representó es una gráfica los distintos datos de velocidad en función de la tensión de alimentación. Se puede observar dicha representación en la figura 3.7:

Figura 3.7: velocidad en función de tensión de alimentación. A partir de ella, y mediante interpolación, se obtuvo la velocidad que habría de tener el tren cuando éste es alimentado a 14V. Se considera que el tren va a conservar su tendencia lineal de velocidad en función de tensión de alimentación, la cual se puede observar en la gráfica. Se concluye pues que:

Vmax = 1.1178 m/s ≈ 1.12 m/s

41

MEMORIA

Modelado del sistema

3.4. Obtención del modelo En este apartado se describen con detalle los procesos seguidos para obtener los distintos elementos que componen el modelo del sistema.

3.3.1. Modelo de la planta La planta se puede modelar como un sistema de primer orden, en forma de sistema mecánico de traslación, tal y como puede verse en la figura 3.8:

v Ff m Fm

M D x

Figura 3.8: representación mecánica de la planta Es un sistema dinámico, lineal e invariante, y la ecuación diferencial que rige el comportamiento de la planta es la siguiente:

d 2 x(t ) dx(t ) dv(t ) Fm − Ff = M + D ⇒ Fm − Ff = M + D··v(t ) [3.18] dt dt dt 2 Aplicando la transformada de Laplace, se obtiene:

Fm(s ) − Ff (s ) = (M ·s + D ) ·V (s )

[3.19]

Y despejando la variable a controlar, esto es, la velocidad:

V (s ) =

Fm(s ) − Ff (s ) M ·s + D

[3.20]

42

MEMORIA Modelado del sistema Como el sistema es lineal, si se supone nula la perturbación (Ff(s)), la ecuación anterior queda:

V (s ) =

Fm(s ) V (s ) 1 = ⇒ M ·s + D Fm(s ) M ·s + D

[3.21]

La cual es la función de transferencia (función matemática que modela el comportamiento de un sistema) de la planta.

Si dicha función de transferencia es traducida a un diagrama de bloques, en el cual únicamente se utilizan ganancias e integradores (esto es así para poder obtener información sobre las señales intermedias que actúan sobre la planta, y no sólo de la entrada y la salida) se obtiene lo siguiente:

Figura 3.9: diagrama funcional de bloques de la planta

3.3.2. Modelo del actuador (motor DC) El par motor Tm , se relaciona con la corriente de armadura i mediante una constante K m : 43

MEMORIA

Modelado del sistema Tm = K m · i

[3.22]

La fuerza contraelectromotriz em es proporcional a la velocidad de giro del motor ω, con constante de proporcionalidad K e :

em = K e · ω

[3.23]

Aplicando la 1º ley de Kirchoff al circuito eléctrico del motor, ya representado en la figura 3.3, resulta:

 di  L ·   + R· i = V − K e · ω  dt 

[3.24]

Donde:  di  V L = L ·   dt 

[3.25]

siendo L y R la bobina y resistencia propias del motor, respectivamente. Tomando transformadas de Laplace:

(L·s + R )·I (s ) = V − K e ·ω ⇒ I (s ) = V − K e ·ω L·s + R

[3.26]

Por tanto, la función de transferencia: I (s ) 1 = V (s ) L·s + R

[3.27]

Por otra parte, la ecuación mecánica del motor es: J·

dω + Dm ·ω = Tm − TR = K m · i − TR dt

[3.28]

Donde: J: es el momento de inercia del motor. Dm: es la constante de fricción viscosa del motor.

ω: es la velocidad angular del eje del motor. TR: es el par de carga del motor.

44

MEMORIA Modelado del sistema Como se puede observar, el modelo del motor trabaja con parámetros propios de un sistema mecánico de rotación, sin embargo, en la planta se ha utilizado un modelo de sistema mecánico de traslación. Tanto el momento de inercia como la constante de fricción viscosa del motor están tenidos en cuenta en la masa y la constante de fricción viscosa de la planta. La velocidad angular del eje del motor, multiplicada por el radio de las ruedas y por la constante obtenida de las reductoras a las que aplica su par el motor, se transforma en la velocidad lineal que adquiere la planta al ser aplicado el par del motor. Por último, el par de carga del motor ya viene dado como la fuerza de carga Ff, que se aplica sobre la planta.

Además, el par Tm que da el motor se relaciona con la fuerza Fm que se aplica al tren mediante la constante que relaciona velocidad angular del eje del motor con velocidad lineal desarrollada por el tren. Las constantes Km y Ke obtenidas en los experimentos descritos en la sección Estimación de parámetros físicos ya tienen en cuenta ese efecto, y de ellas se obtiene directamente la relación entre corriente del motor (i) y fuerza aplicada al tren (Fm) en el caso de Km, y velocidad lineal del tren (v) y fuerza contraelectromotriz (em) del motor en el caso de Ke Así pues, el diagrama de bloques del modelo del motor de corriente continua es el siguiente:

Figura 3.10: diagrama funcional de bloques del actuador

45

MEMORIA

Modelado del sistema

3.5. Conclusiones A lo largo del capítulo se ha expuesto la metodología seguida para obtener los distintos parámetros necesarios a la hora de diseñar el control, así como la base teórica sobre la que se sustentan los cálculos realizados para dicha obtención de los mencionados parámetros.

Una vez obtenidos, se ha procedido a obtener un modelo del sistema, a partir de cual trabajar en el diseño del control, ya que, sin una modelización del sistema físico, sería imposible realizar dicho diseño o las simulaciones pertinentes para comprobar la validez del mismo.

46

MEMORIA

Hardware

Capítulo 4: Diseño del hardware 4.1. Introducción Se distinguirán distintas fases dentro del diseño del hardware:

• Diseño de la etapa de potencia: conlleva el acondicionamiento de la señal de PWM generada en el microprocesador, entre 0V y 5V, para convertirla en otra señal PWM entre -14V y 14V, márgenes impuestos por el motor de continua, con el mismo ciclo de trabajo que la primera, y que sea capaz de suministrar al motor la corriente necesaria para el correcto funcionamiento del mismo.

• Diseño de los reguladores de tensión: como se verá más adelante, para conseguir la señal PWM antes descrita entre -14V y 14V, será necesario alimentar el circuito a 14V DC. Debido a esto, es necesario utilizar dos reguladores de tensión para obtener 3.3V para la alimentación del microprocesador y 5V para activar el puente en H de la etapa de potencia. Desde el punto de vista de la eficiencia energética, se descartan los reguladores lineales, ya que disipan mucha potencia en forma de calor, lo cual, es altamente indeseable; por tanto, se emplearán dos reguladores de tensión conmutados, cuyo diseño se detallará más adelante.

• Diseño del circuito de acondicionamiento para medir la intensidad que atraviesa el motor: se estimará la velocidad lineal del tren, variable que cierra el lazo de control del sistema, por medio de la intensidad que atraviesa el motor del mismo. Para ello se ha de diseñar un circuito de acondicionamiento que permita medir dicha intensidad con la mayor precisión y sensibilidad posibles.

47

MEMORIA

Hardware

• Diseño del circuito de acondicionamiento para medir la señal del acelerómetro:

se

detallará

más

adelante

el

proceso

de

acondicionamiento de señal de los acelerómetros, para llevarla hasta el conversor analógico/digital del microprocesador. A grandes rasgos, el circuito consistirá de un rectificador de precisión y una etapa de ajuste de ganancia, que tomará como ganancia teórica máxima 4G.

• Diseño de las balizas: las balizas estarán colocadas al comienzo de cada curva, y mandarán una señal al microprocesador cuando el tren pase por su lado, con el fin de aminorar su velocidad antes de entrar a la curva. Estarán constituidas por un diodo emisor de luz roja, y un fotodiodo encargado de detectar dicha luz roja.

4.2. Etapa de potencia Como ya se ha comentado, la etapa de potencia adecúa la señal PWM de salida del microprocesador para que pueda ser utilizada en el motor. Como se puede observar en la hoja de características del microprocesador utilizado (ver anexo 4), la corriente máxima de salida que es capaz de suministrar entre todas sus patillas es de 60mA. Experimentalmente, se midió la corriente máxima que requiere el motor en su situación más desfavorable, esto es, cuando el tren está parado y se le aplica la tensión máxima, que en este caso son 14V, obteniendo un pico máximo de corriente de 390mA. Resulta evidente pues la necesidad de emplear una circuitería adicional para poder alimentar al motor, lo cual se conseguirá gracias al puente en H.

El puente en H es un circuito típico utilizado para el control de motores. En la figura 4.1 se muestra una representación esquemática del circuito. Hay que tener en cuenta que es una simplificación: faltan los diodos de libre circulación, la circuitería de activación/desactivación de los transistores, etc. Para que el motor gire, se activan dos de los transistores opuestos diagonalmente. En función del par 48

MEMORIA Hardware de transistores activados, la corriente fluye en uno u otro sentido, lo que permite controlar el sentido de giro del motor.

Figura 4.1: representación esquemática del funcionamiento de un puente en H El sentido de giro del motor se controla activando y desactivando pares de transistores diagonalmente opuestos. De esta forma, la corriente fluye a través del motor por dos caminos distintos: desde Q1 a Q4 o desde Q3 a Q2. Según el camino seleccionado, la corriente fluye a través del motor en un sentido u otro, lo que se traduce en un giro horario o antihorario del motor.

Es muy importante que nunca se activen simultáneamente los transistores de la misma rama de la “H”. Si eso ocurre la corriente fluiría desde el terminal positivo de la fuente de alimentación de los motores al terminal negativo. Al no haber más resistencia que la que ofrecen los propios transistores, la cantidad de corriente que fluiría por el circuito sería máxima y estaría limitada por la propia fuente de alimentación o por la autodestrucción de los transistores.

Los puentes-H se pueden realizar a partir de transistores individuales, o bien se pueden adquirir integrados en un chip. La última opción suele ser más cara, pero mucho más cómoda y robusta. Los circuitos integrados que proporcionan puentesH incorporan protecciones que impiden que dos transistores de la misma rama de la “H” se activen a la vez. Para ello, integran con los transistores una serie de puertas AND e inversoras (NOT) siguiendo el esquema de la figura 4.2

49

MEMORIA

Hardware

Figura 4.2: esquema interno simplificado de un puente en H comercial Con lo visto hasta ahora, el puente-H nos permite realizar las siguientes operaciones: activar y desactivar el paso de corriente hacia el motor y cambiar el sentido de giro. Cuando desactivamos el circuito, no fluye corriente a través del motor. Al no haber flujo de corriente el motor deja de funcionar y la plataforma se detiene lentamente a medida que pierde velocidad.

Cuando una fuerza externa mueve el eje de un motor, este produce electricidad, es decir, se comporta como un generador de corriente eléctrica. Si se conecta una carga a los terminales del motor, entonces presentaría una resistencia al giro proporcional al valor de la carga que tiene conectada. De este modo, a medida que la carga aumenta el motor presenta una mayor resistencia a girar. Pero si se conectan los dos terminales de motor entre sí, se produce el mismo efecto que si el motor estuviese conectado a una carga infinita. El resultado final es que el motor se para porque no puede vencer esa resistencia.

Aprovechando el anterior efecto, se puede conseguir que la plataforma se detenga inmediatamente bloqueando las ruedas. Para ello las dos señales de dirección deben tener el mismo estado (ambas cero o ambas uno). Por ejemplo, si se fuerza que ambas valgan uno (ver figura 4.3), se conseguirá que los dos terminales del motor estén conectados al terminal negativo de la fuente de alimentación del motor (generalmente, tierra) a través de los transistores Q2 y Q4, por lo que el motor tendrá sus dos terminales a una tensión de 0,4 V, determinada

50

MEMORIA Hardware por la caída de tensión de los transistores. En este caso, los transistores actúan como un cable que une los dos terminales del mismo motor, produciéndose el efecto comentado anteriormente de que el motor debe hacer frente a una carga infinita. Como no puede, se para prácticamente en seco en el momento en que se activa esta configuración.

Figura 4.3: configuración para frenado del motor utilizando el puente en H La modulación por ancho de pulsos (pulse-width modulation o PWM) es una técnica que se basa en la modificación del ciclo de trabajo de una señal periódica (por ejemplo sinusoidal o cuadrada). El ciclo de trabajo de una señal periódica es el ancho relativo de su parte positiva en relación al período. Matemáticamente: DC =

τ T

[4.1]

Donde: DC es el ciclo de trabajo (o duty cycle) τ es el ancho de pulso (o pulse width), esto es, el tiempo en que la función es positiva T es el período de la función.

En un motor de continua, la magnitud de entrada que determina la cantidad de par que va a aplicar es el valor medio de la tensión de la señal de entrada, esto es,

51

MEMORIA Hardware el valor de tensión continua que tiene la entrada (esta afirmación sólo es cierta si se está en régimen permanente).

El valor medio de una señal cualquiera x(t) se define como: T

1 < x(t ) > = ∫ x(t ) dt T0

[4.2]

Para señales con forma sencilla, como la onda cuadrada que se ha empleado en el presente PWM, se puede calcular su valor medio como: ∧ ∧ 1 < x(t )cuadrada > = ·(D·T − (1 − D )·T )·x(t ) = (2 D − 1)·x(t ) T

[4.3]

En función de su ancho de pulso, la señal tendrá más o menos valor medio, lo que hará que el motor aplique más o menos par.

Se puede observar en la figura 4.4 el esquema del circuito diseñado, el cual se explicará a continuación:

52

MEMORIA

Hardware

Puente en H Optoacoplador

Salida PWM 43

Inversor Puente de diodos de libre circulación Figura 4.4: Esquema del circuito de la etapa de potencia

53

MEMORIA



Hardware

La señal de salida del microprocesador se hace pasar por la resistencia R1, la cual ha sido calculada para que el transistor asociado al optoacoplador está siempre en corte o en saturación. El optoacoplador utilizado ha sido el ILQ74. Se detallan a continuación las características más relevantes de dicho circuito, así como la disposición de sus pines:

Tabla 4.1: características eléctricas del circuito ILQ74

54

MEMORIA

Hardware

Figura 4.5: disposición de los pines del ILQ74



Se detallan a continuación los cálculos realizados para R1:

Se quiere que, cuando la señal de salida del microprocesador esté en nivel alto (3V de valor típico), la corriente colector-emisor por el fototransistor del optoacoplador sea de 25mA. Dicha corriente colectoremisor viene dada por la gráfica de la figura 4.6, en función de la corriente que atraviesa el LED del optoacoplador, y de la temperatura:

Como se puede observar en la figura 4.6, para obtener la corriente colector-emisor deseada, es necesario que la corriente del LED sea de 40mA. Para esa corriente, se puede observar en la figura 4.7 que la caída de tensión en el diodo será de 1.2V.

55

MEMORIA

Hardware

Figura 4.6: Corriente colector-emisor frente a corriente por el LED y temperatura en el optoacoplador

Figura 4.7: caída de tensión en el diodo en conducción directa, en función de la corriente que lo atraviesa Por tanto, aplicando la ley de Ohm:

56

MEMORIA R1 =

Hardware 3 V − 1 .2 V = 45Ω ⇒ normalizad a ⇒ 40 mA

R1 = 43Ω

Ahora se recalcula la intensidad que circulará por R1: ID =



3 V − 1 .2 V = 41.86mA ⇒ potencia de R1 ⇒ PR1 = 41.86mA ·1.8V = 75mW 43Ω

Como ya se ha visto, la corriente colector-emisor del fototransistor del optoacoplador es de 25mA cuando la señal de salida del microprocesador tiene valor lógico alto, y 0 cuando tiene valor lógico bajo. La siguiente etapa del circuito transforma esa señal en una similar, pero entre 0V y 5V, e invertida respecto a la señal original del microprocesador. Para ello se utiliza R2:

Cuando se tiene una corriente colector-emisor del fototransistor de 25mA, se verá más adelante que Q1 está en corte, luego por R3 no pasará corriente. Entonces, esos 25mA pasarán íntegros por R2, por lo que, para obtener la señal de la que se habló con anterioridad: R2 =

5V = 200Ω ⇒ para ese valor de R2, el fototransistor estará 25 mA

saturado, porque su tensión colector-emisor será menor que su tensión colector-emisor de saturación, luego, en los instantes en los que la salida del microprocesador esté en estado lógico alto, tendremos en el colector de fototransistor una tensión de 0.2V (que equivale a la tensión colector-emisor de saturación).

El fototransistor estará en corte cuando la salida del microprocesador esté en valor lógico bajo (0V), ya que, como se ha visto, entonces la corriente por el diodo del optoacoplador será nula. Cuando el fototransistor esté en este estado, impedirá que circule corriente por su colector, lo que hará que toda la corriente proveniente de la fuente de 5V pase por R2 y R3. Habrá pues que calcular R3 de tal forma que en el colector del fototransistor se

57

MEMORIA Hardware alcance una tensión lo más cercana posible a 5V en ese instante, de tal forma, que entonces Q1 esté saturado:

Se selecciona una tensión de colector mayor que 4.8V, para la cual se diseñará: 4.8V − 0.7V 5V − 0.7V = ⇒ R3 > 4.1kΩ ⇒ normalizad a ⇒ R3 = 5.6kΩ R3 0 .2 Ω + R 3

Se comprueba ahora la intensidad que circulará por R2 y R3: i=

5V − 0.7V = 0.741mA 0 .2Ω + R 3

Por tanto, la tensión en el colector del fototransistor será: VC = 0.7V + 0.741mA · 5.6kΩ = 4.85V

Por último queda diseñar R4 para que ciertamente Q1 esté en estado de saturación en las circunstancias anteriores:

Para que Q1 esté saturado: i B = 0.741mA >

iC

β

⇒ tomando β ≈ 50 ⇒ ic < 37.05mA

VCEsat + ic · R 4 = 5V ⇒ ic =

4.8V = 4.8mA < 37.05mA ⇒ R 4 = 1kΩ R4

Para estos valores de R1, R2, R3 y R4 se consigue obtener en el colector del fototransistor y del transistor Q1 valores de tensión que pueden ser 0V ó 5V (en realidad oscilan alrededor de los 0,2V para valores lógicos bajos, y los 4,85V para valores lógicos altos), de tal forma que cuando en el colector del fototransistor se tienen 0V, en el del transistor Q1 se tienen 5V y viceversa. Los cambios de valor lógico para estas señales, como ya se ha mencionado, vienen dados por la señal PWM de salida del microprocesador.

58

MEMORIA



Hardware

Para obtener como salida del circuito una onda PWM entre -14V y 14V, así como por motivos de suministro de corriente, como se ha comentado con anterioridad, se ha utilizado un puente en H L298N, cuyo funcionamiento se ha descrito con anterioridad, conectando su entrada Vs a 14V. Se especifican a continuación las características más relevantes del L298N:

Figura 4.8: esquema del puente en H L298N

Tabla 4.2: funciones de cada uno de los pines del L298N

59

MEMORIA

Hardware

Tabla 4.3: características eléctricas más relevantes del L298N



Para el correcto funcionamiento del puente en H para la utilidad que se le va a dar en el presente circuito, dicho componente requiere que se le introduzca por su entrada In1 una señal entre 0V y 5V (valores típicos), y por su entrada In2 esa misma señal negada. Esto se consigue mediante el transistor Q1 y las resistencias R2, R3 y R4. Se conectará la carga entre las salidas Out1 y Out2, en serie con una resistencia de medida que servirá para indicar el sentido de la corriente. En la salida Sense A se conectará otra resistencia de medida, que indicará el valor absoluto de la intensidad. Una vez se tienen el sigo y el valor absoluto de la intensidad, se podrá calcular el valor real de la misma, tarea que será desempeñada vía software por el microprocesador, y que será explicada con detalle en el capítulo 5. Por último, indicar que tanto C1 como C2 cumplen una misión de filtro de las posibles fluctuaciones de la tensión de alimentación.

60

MEMORIA

Hardware

4.3. Reguladores de tensión Se eligió utilizar dos reguladores de tensión conmutados para obtener los 3V DC de alimentación del microprocesador y los 5V DC del puente en H a partir de los 14V DC de alimentación del circuito.

Los reguladores conmutados tienen como principal ventaja sobre los reguladores lineales su alto rendimiento (de entre el 70% y el 93% en los reguladores conmutados frente al 30% - 60% en los reguladores lineales). Su salida se mantiene estable aún con grandes variaciones de tensión en la entrada, estando la primera aislada de la segunda. Además, se pueden lograr múltiples tensiones de salida reguladas, de diferente polaridad. Por último, mencionar que los elementos pasivos de un regulador de tensión conmutado son más pequeños, que los utilizados en un regulador lineal, ya que el primero trabaja con frecuencias de switching (conmutación de los transistores) bastante más altas.

A la hora de elegir el regulador conmutado adecuado para el diseño del circuito, se encontraron dos tipos de reguladores, dependiendo de su nivel de integración, con una gran diferencia de precio entre ellos. El primero de ellos es un regulador en el cual, el fabricante únicamente provee el circuito de control de tensión, teniendo que ser incorporados a posteriori componentes discretos como diodos, condensadores, bobina y resistencias. La principal ventaja de este tipo es su reducido precio, lo que los hace ideales si se quieren utilizar en circuitos de los que se va a fabricar gran cantidad de ellos. El segundo tipo de regulador que se encontró consiste en un sólo componente de tres pines (entrada, tierra y salida) en el cual vienen integrados todos los elementos necesarios para realizar la regulación de tensión, desde el circuito de control, hasta los componentes pasivos como condensadores, bobina, resistencias y diodos. Esto hace que sea mucho más fácil de manejar e implantar en un circuito, a pesar de su elevado precio. Como en el presente proyecto se pretende diseñar y construir un prototipo, y no realizar una fabricación en serie del circuito, se optó por los reguladores conmutados integrados 78SR-3.3/2-C (para tensión de 3V) y 78SR-5/2-C (para tensión de 5V).

61

MEMORIA

Hardware

Se pueden consultar sus características en su hoja de características, incluida en el anexo 4.

Figura 4.9: 78SR. Se pueden observar los elementos discretos integrados No obstante, si se desease realizar una fabricación en serie del equipo, se propone el siguiente circuito para el regulador de tensión, a partir del componente integrado LM2736Y, el cual tiene un precio del orden de 10 veces menor que los 78SR:

Figura 4.10: circuito de regulación de tensión de 14V a 3V

62

MEMORIA

Hardware

Figura 4.11: circuito de regulación de tensión de 14V a 5V

4.4. Circuito de acondicionamiento de medida de la intensidad que atraviesa el motor El circuito de acondicionamiento de medida de la intensidad que atraviesa el motor tiene la misión de adecuar la señal a medir (en este caso la intensidad que recorre el motor) para que pueda ser medida con la mayor precisión y sensibilidad posibles por el microprocesador, mediante su conversor analógico/digital.

Para realizar una medida fiable, el circuito de acondicionamiento no debe perturbar la señal que se va a medir. Como esta es una intensidad, se necesitará que el circuito tenga una gran impedancia de entrada. Esto se consigue mediante amplificadores operacionales.

En la figura 4.12 se puede observar el circuito completo de acondicionamiento de medida, el cual, se explicará a continuación 63

MEMORIA

Hardware Estimador del módulo de corriente

Estimador del signo de la corriente Puente de diodos de libre circulación

Diodo de protección del micro

Estimador analógico de la velocidad

Diodo de protección del micro Figura 4.12: circuito de acondicionamiento de medida de la intensidad que atraviesa el motor

64

MEMORIA

Hardware

La medida de la intensidad que recorre la carga (esto es, el motor) se realiza en dos fases: hay un circuito encargado de medir la magnitud de la señal (a través el amplificador operacional U5), y otro encargado de medir el signo (a través del amplificador operacional (U4). Será el microprocesador el encargado de unir estos dos datos, y obtener la medida de la intensidad con signo.

La realimentación del amplificador operacional U5 ha sido calculada de modo que para una intensidad de 0.4A por la carga (que coincide con la intensidad máxima estimada), la salida del mismo sean 3.3V, que es la máxima tensión admitida por el conversor analógico-digital del microprocesador, al haber establecido la tensión de comparación a 3.3V. En J9 estará situada la resistencia Rs, que será la resistencia de medida del módulo de la corriente. Se detalla a continuación los cálculos realizados para Rs=1Ω:  R7 = 2 kΩ R8 3.3V  R8  vo MAX = Rs · iMAX · 1 + = ⇒  ⇒ 1+ R7 0.4 A  R8 = 13 kΩ  R7 

Donde: •

vo MAX = tensión máxima de entrada del microprocesador



iMAX = corriente máxima que atraviesa el motor

Los amplificadores operacionales U6 y U7 se emplean para emular la misma función de transferencia de la planta. De esta forma, la señal resultante que le llega al microprocesador después de pasar por ellos es la velocidad a la que va el tren en cada instante. Los cálculos realizados fueron los siguientes (para una resistencia Rs de 1Ω):

v o = Rs · i

Km · i 1 R11  0 .6 R11  )   · 1 + · 1 +  = Rs · i ; v = R9 · C 3 · s + 1  R10  0.6·R9 · C 3 · s + 0.6  R10  M ·s + D

65

MEMORIA

Hardware

  R11 = 6.8 kΩ R11  vo MAX 3 R11  ·K m = · 5.8347 ⇒ ≈ 25 ⇒  = ) 0.6·Rs 1 + 1 .2 R10  R10  v MAX  R10 = 270 Ω   C = 10 µF 0.6 · R9 · C 3 = M = 0.7 ⇒   R9 = 150 kΩ  0.6 ≈ D = 0.67  

Donde: • •

vo = tensión de entrada del microprocesador ) v = velocidad



i = corriente que atraviesa el motor



M, D, Km : ver secciones 3.2 y 3.3

El amplificador operacional U4 siempre estará saturado: alrededor de 5V cuando la corriente que atraviesa el motor va en sentido OUT1→OUT2 (salidas del puente en H) y a 0V cuando lo haga en sentido inverso. Dicha salida se leerá como una entrada digital al microprocesador, la cual estará en estado lógico alto cuando la señal esté alrededor de 5V, y en estado lógico bajo cuando la señal esté en 0V. A partir de esta entrada, se multiplicará, o no, el valor del módulo de la corriente, medido mediante U5, por -1, estableciendo así el signo a la misma.

Tanto U5, como U6 y U7 están alimentados a 5V. Esto es así para que si saturan, los operacionales no pierdan rango dinámico de tensión. Teóricamente, sus respectivas realimentaciones están calculadas para que con un valor máximo en sus entradas, obtengan una salida de 3.3V, pero ante eventuales picos en los valores de esas entradas, su tensión de salida sería mayor. Para evitar que esto dañe al microprocesador, se han utilizado diodos zener como protección. Los diodos zener que aparecen en el circuito tienen una tensión inversa de 3.3V, por lo que impiden que en las entradas del microprocesador se alcancen valores de tensión por encima de esos 3.3V, la cual es la tensión máxima admitida por el

66

MEMORIA Hardware mismo. De este modo, el microprocesador queda protegido ante eventuales picos de tensión en sus entradas.

4.5. Circuito de acondicionamiento de la señal del acelerómetro El acelerómetro irá situado en la parte superior del tren, tal y como muestra la figura 4.13A. De esa forma, se podrá calcular la aceleración normal en cada instante, la cual será proporcional a la velocidad instantánea del tren y al radio de la curva por la que circule, según la fórmula:

Donde v es la velocidad instantánea, y ρ es el radio de curvatura.

Sensor N: Normal

Sensor T: Tangencial Dirección del movimiento Figura 4.13A: situación del acelerómetro sobre la maqueta del tren El circuito de acondicionamiento de la señal del acelerómetro tiene por objeto adecuar la señal que proporciona dicho componente, para poder ser medida con la mayor precisión y sensibilidad posibles por el microprocesador, utilizando su conversor analógico/digital.

El acelerómetro que se ha utilizado es el ADXL320, un acelerómetro de dos ejes, cuyas características se detallan en la tabla 4.4:

67

MEMORIA

Hardware

Tabla 4.4: Características del acelerómetro ADXL320

La configuración de los pines del encapsulado se detalla en la figura 4.13B.

Figura 4.13B: configuración de los pines del ADXL320 El primer paso para diseñar el circuito de acondicionamiento del acelerómetro es estimar la aceleración máxima que se va a medir. Al investigar sobre las diferentes aceleraciones a las que se ven sometidos distintos medios de transporte, se descubrieron los siguientes datos:

68

MEMORIA

Hardware



Aceleración de un monoplaza de F1 al girar: entorno a 4G.



Aceleración de un monoplaza de F1 al frenar: entorno a 5G.



Aceleración máxima en la montaña rusa Dragon Khan: 3.75G.



Aceleración máxima del caza F-16 Falcon: 9G.



Aceleración máxima del caza F-18 Hornet: 7.5G.

En base a estos datos, resulta lógico no esperar medir aceleraciones superiores a los 4G. Por tanto, se seleccionará esa aceleración como cota superior de las aceleraciones a medir, y se hará coincidir la máxima salida del circuito (5V) con esa aceleración de 4G.

Se puede observar el circuito detallado en la figura 4.14.

69

MEMORIA

Hardware

Etapa de ganancia Filtro paso alto

Salida ADXL320

Rectificador de precisión

Figura 4.14: circuito de acondicionamiento de la señal del acelerómetro

70

MEMORIA

Hardware

La primera etapa es un filtro paso alto a 0.5 Hz para eliminar la continua. Los cálculos para el mismo han sido los siguientes: R1 = 100kΩ → fijada C1 =

1 = 3.18uF 2·π · R· f c

Al normalizar C1 = 3.3uF , por consiguiente : f c = 0.48 Hz

La siguiente etapa, es la etapa de ganancia. En ella se elevará la ganancia del circuito para conseguir la máxima sensibilidad posible en la medida. Según la hoja de características del acelerómetro, la sensibilidad típica cuando éste está alimentado a 3.3V es de 174mV/G. Como se ha tomado como límite de aceleración 4G, el sensor dará como máximo una salida de 174mV/G·4G = 696mV. Como el valor máximo de entrada establecido para el conversor A/D es de 3.3V, habrá que amplificar esos 696mV hasta 3.3V, por lo que habrá que multiplicarlos por un factor de 4.74. Entonces:

 R 7 = 5 .6 k R7 + R8 = 4.74 ⇒  R8  R8 = 1.5k

La última etapa se trata de un rectificador de precisión. Hasta esta etapa, el circuito mide y amplifica la señal del acelerómetro con signo, sin embargo, sólo es necesario medir el módulo de la aceleración, ya que el signo de la aceleración sólo serviría para indicar en qué dirección se está tomando la curva en cuestión. Además, el microprocesador no admite niveles de tensión negativos en sus entradas. Por tanto, en esta etapa, se rectificarán las señales negativas, y se transformarán en positivas. La característica del rectificador de precisión está ilustrada en la figura 4.15:

71

MEMORIA

Hardware Vout 1

Vin -1

1

Figura 4.15: característica del rectificador de precisión Las resistencias están escogidas de modo que limitan la corriente para no dañar los diodos. Como la tensión máxima que va a entrar al rectificador son 3.3V, y la intensidad máxima que puede circular por los diodos es 25mA, si dividimos estas dos cifras, obtenemos una resistencia mínima de 120 Ω. Para proteger mejor el circuito, se han seleccionado resistencias de 1k.

4.6. Diseño de las balizas Las balizas, como ya se ha comentado anteriormente, se colocarán al principio de cada curva, y serán las encargadas de mandar una señal al microprocesador cuando el tren las cruce, para que éste pueda aminorar la velocidad del tren y que no descarrile al entrar en la curva, antes de que les dé tiempo a actuar a los acelerómetros. Estarán constituidas por un diodo LED 4300H1LC rojo, y un fotodiodo selectivo EPIGAP-EPD-740-5/0.5, que es sensible a la longitud de onda de 740nm (luz roja), y que tiene las siguientes características: •

Typ Wavelength:740nm



Sensibilidad:0.5



Half Angle:20°



Dark Current:0.2nA



Max Voltage Vr:10V



área activa:0.13mm²



Max Spectral Range:780nm



Min Spectral Range:700nm

72

MEMORIA

Hardware

Negador

Inversor Resistencia de entrada al sumador Diodo LED

Acondicionamiento del fotodiodo Figura 4.16: Circuito de una baliza

73

MEMORIA Hardware Se quiere conseguir que cuando el tren cruce el haz de luz que emite el LED hacia el fotodiodo, se envíe una señal de 3.3V al microprocesador, y que en caso contrario, la señal permanezca por debajo de los 1.15V, que es el umbral para que una señal se considere a nivel bajo. Para ello se ha diseñado el circuito de la figura 4.16, que se explica a continuación.

En primer lugar se ha diseñado el circuito que alimenta al diodo LED para que esté siempre encendido. Según la hora de características del mismo, la corriente que atraviesa el diodo cuando está polarizado directamente es de 7mA, y la caída de tensión es de 1.8V. Según esto, y sabiendo que la tensión de alimentación es de 5V, se puede calcular R14:

R14 =

5V − 1.8V = 0.46k ⇒ R14 = 0.47k 7 mA

Seguidamente se ha diseñado el circuito de acondicionamiento del fotodiodo. Se sabe que la intensidad que recorre la rama donde está colocado el fotodiodo, en sentido cátodo-ánodo, es I0+k·PL. I0 es la denominada “dark current”, o “corriente oscura”, que atraviesa el diodo cuando está polarizado de forma inversa, y su valor depende de las características constructivas del fotodiodo en cuestión. El factor k· PL es un factor proporcional a la cantidad de luz, en la longitud de onda a la que es sensible el fotodiodo, que incide en éste. Para medir dicha cantidad de luz de la forma más precisa posible, primero se requiere eliminar los efectos de la “corriente oscura”. Para ello se coloca otro fotodiodo de las mismas características constructivas que el primero, al que llamaremos “dummy diode”, sobre el cual incidirá una cantidad nula de luz en la longitud de onda a la que es sensible el diodo. Como los fotodiodos seleccionados son sensibles a la luz roja, basta con tapar el “dummy diode” con una cápsula opaca para conseguir ese objetico. Con ello se consigue una corriente oscura del mismo valor que la que recorre la rama del fotodiodo 1, pero de signo contrario, lo cual hará que se anulen al sumarse en el nudo donde confluyen las dos ramas. Eso quiere decir, que la resistencia R1 ya no será atravesada por la intensidad I0+k·PL , sino por una intensidad igual a k·PL.

74

MEMORIA Hardware De forma empírica se determinó que, para que cuando el haz de luz estuviese interrumpido por el tren se obtuviese una salida aproximada de -0.5V, y cuando no estuviese interrumpido se obtuviese una salida aproximada de -2V, la resistencia R1 debía ser de 0.33k.

Como, debido a la topografía del circuito de acondicionamiento del fotodiodo, sólo se pueden obtener a su salida tensiones negativas, es necesario añadir a continuación una etapa inversora. Para ello se utilizó un amplificador inversor de ganancia -1.

La siguiente etapa del circuito es un negador. Éste es necesario porque tras la etapa inversora, las tensiones que se tienen a la salida del circuito son de 0.5V si el haz de luz se ve interrumpido, y 2V cuando el haz de luz no se ve interrumpido. Todas las salidas de los circuitos de acondicionamiento de las balizas van a entrar a un sumado, que sumará todas esas salidas, para llevar la suma de esas señales (previamente tratada) al micro. Este sistema funciona porque sólo habrá una o ninguna baliza con su haz de luz cortado al mismo tiempo, lo cual significa que cuando la salida del sumador valga 0 (o un valor por debajo de los 1.15V), significará que no hay ninguna baliza cuyo haz de luz esté siendo cortado, y cuando valga 3.3V, significará que hay una baliza cuyo haz de luz está siendo interrumpido. Para que este sistema funcione como se ha descrito anteriormente, se necesita que cuando el haz de luz se corte, la señal que entre al sumador valga 3.3V (o el equivalente al estado lógico alto), y que valga 0V cuando el haz de luz no sea interrumpido. Para lograr este objetivo, se ha introducido el transistor Q1. Como se mencionó anteriormente, cuando el haz de luz no está interrumpido, la señal a la salida del inversor vale 2V y cuando se interrumpe, vale 0.5V. Se desea pues que el transistor esté saturado para una tensión en su base de 2V, y en corte para una tensión de 0.5V. Se realizan pues los siguientes cálculos:

Saturación : VC = 5 − β

 R 4 = 4 .7 k 2 − 0 .7 1 .3 R4 · R 4 ≤ 0 .2 ⇒ β · R 4 ≥ 4 .8 ⇒ ≥ 0.037 ⇒  R3 R3 R3  R3 = 100k

75

MEMORIA Hardware Al ser 0.5 menor que 0.7, el corte se produce automáticamente cuando el haz de luz que incide en el fotodiodo se corta. Para que la caída de tensión en R4 sea la menor posible cuando se produce el corte, R11 tendrá que ser grande en comparación con ésta, por ello se ha elegido un valor de 100k para ella, lo que produce una caída en R4 cuando Q1 está en corte de 0.22V, obteniendo los siguientes valores en el colector de Q1: •

4.78V cuando el haz de luz que incide en el fotodiodo se corta



0.2V cuando el haz de luz que incide en el fotodiodo no se corta

El tener esos 0.2V, en vez de los 0V que en principio se desearían, acarrea consecuencias negativas, y es que como se sumarían las diferentes tensiones de distintos fotodiodos, se podrían tener como máximo 5 fotodiodos repartidos por el recorrido del tren para que la suma de las tensiones cuando el haz de luz que llega a los fotodiodos no se ve interrumpido no supere los 1.15V que fijan el límite superior de la señal lógica en estado bajo para el microprocesador. Para optimizar el número de fotodiodos que se pueden instalar, se puede ajustar la ganancia del sumador. Como el nivel alto de la señal que entra al sumador es de 4.78V, y sólo se requieren 3.3V, podemos establecer la ganancia del sumador en 0.7, y poder conseguir instalar así 8 balizas acopladas a un solo sumador. En el caso de que se necesitase un mayor número de balizas, podría llevarse la señal de salida de los diferentes negadores a una puerta OR con tantas entradas como balizas sean necesarias.

El circuito del sumador queda ilustrado en la figura 4.17. Se aprecia como después del sumador, hay una etapa inversora de ganancia -1. Esto es así porque la ganancia del sumador tiene fase 180º. Además, se ha colocado un diodo zener de 3.3V para proteger al microprocesador frente a tensiones mayores de 3.3V.

76

MEMORIA

Hardware

Protección

Sumador

Inversor

Figura 4.17: sumador, inversor y protección del microprocesador

4.7. Conclusiones Se ha expuesto en el presente capítulo todo lo relacionado con el hardware del sistema: desde la etapa de potencia, que servirá de nexo entre el control y el actuador, hasta los reguladores de tensión que han sido utilizados, pasando por los diferentes circuitos de acondicionamiento de señal.

En una primera sección se ha hablado de todo el diseño de la etapa de potencia, exponiendo los cálculos, así como información detallada de todos los elementos que la componen: optoacoplador, inversor y puente en H.

En la segunda sección se han presentado los distintos tipos de reguladores existentes, y se argumenta la elección de uno de ellos sobre el resto. Además, se han propuesto diseños alternativos de los reguladores para que, en caso de una fabricación en serie del prototipo que se propone en el presente proyecto, los gastos en componentes disminuyesen drásticamente en esta parte del circuito.

77

MEMORIA Hardware En las siguientes tres secciones se han abordado los distintos circuitos de acondicionamiento de señal: la medida de la corriente que atraviesa el motor, el acondicionamiento de la señal del acelerómetro, y el diseño de las balizas. Como ya se ha expuesto, estos circuitos cumplen la función de acondicionar las señales que se desean medir para realimentar el control de manera que dicha medición se efectúe con la mayor precisión y sensibilidad posibles, y sin perturbar a la señal original. Para ello se han utilizado básicamente etapas basadas en amplificadores operacionales, tanto en realimentación negativa como en bucle abierto, diodos zener para la protección del microprocesador, y los propios elementos cuya señal se había de acondicionar.

78

MEMORIA

Sistema de Control

Capítulo 5: Sistema de control

5.1. Introducción Se utiliza como sistema de control un regulador con acción proporcionaldiferencial (PI) discreto, que va programado en un microprocesador MC9S08QG4/8. Para realizar el ajuste de los distintos parámetros del control se han utilizado diferentes herramientas informáticas (Matlab® y Simulink®) para simular la respuesta del sistema ante distintas entradas o hallar su respuesta en frecuencia.

En el presente capítulo se tratarán, por este orden, los fundamentos teóricos subyacentes de la teoría de control discreta, el diseño de distintos controles y la elección del más conveniente al sistema a controlar, la implementación de filtros para intentar mejorar la respuesta de los controles antes mencionados, el escalado del problema a 8bits, el cual es el tamaño de los registros del microprocesador, se introducirán brevemente algunas de las características del mismo, y se expondrá el desarrollo del programa que posteriormente será implementado en el microprocesador.

5.2. Sistemas de control digital Ya se vio en el capítulo tercero el esquema general de un sistema de control analógico o continuo. En él, las señales vienen representadas en forma de funciones continuas, como la que se muestra en la figura 5.1(a). En un sistema digital o discreto, las señales, o al menos algunas de ellas, se representan como secuencias discretas (ver figura 5.1(b)). Esas secuencias discretas son una serie de números que provienen de tomar los valores instantáneos de señales analógicas en instantes de tiempo concretos. Es lo que se denomina muestreo. Esos instantes suelen estar equiespaciados por un tiempo T que se denomina periodo de muestreo. A cada uno de los valores se les denomina muestras y se identifican por

79

MEMORIA Sistema de Control su número de muestra k. En la figura 5.1(b) se observa una secuencia yk = {y0, y1, y2, . . .}, que proviene de una señal analógica y(t) (figura 5.1(a)), con la relación entre muestra k e instante de tiempo k·T. La elección del periodo de muestreo es muy importante puesto que un valor demasiado grande hace que se pierda información cuando se muestrean señales rápidas (figuras 5.1(c) y 5.1(d)), que en el caso de tratarse de un problema de control provendrán de sistemas rápidos. Es lo que se conoce como “efecto aliasing”.

Figura 5.1: discretización de una señal continua y efecto aliasing Por tanto, el esquema genérico de un sistema de control digital es el mostrado en la figura 5.2:

80

MEMORIA

Sistema de Control Perturbación -

Ref.

CONTROL

POT

-

SISTEMA A Salida CONTROLAR

Retenedor (Hold) T Muestreador (Sampler)

SENSOR

Sistema Digital

Figura 5.2: esquema genérico de un sistema de control digital Al igual que en los sistemas continuos se puede obtener la función de transferencia a partir de la ecuación diferencial por medio de la Transformada de Laplace teniendo en cuenta que:

[5.1]

Para obtener:

[5.2]

En los sistemas discretos se puede obtener su función de transferencia a partir de la ecuación en diferencias y por medio de la Transformada en Z, sin más que tener en cuenta: [5.3]

Con lo que se obtiene la función de transferencia discreta:

81

MEMORIA

Sistema de Control

[5.4]

A la hora de realizar el diseño de los reguladores digitales, existen dos enfoques:

- Diseñar directamente en “z”: trabajar con sistemas discretos y metodologías aplicables a los mismos.

- Diseñar en “s” y pasar a “z”: se pueden aplicar todos los conocimientos de sistemas continuos para obtener un regulador continuo y luego convertir ese regulador continuo en uno discreto (discretizar).

En el presente texto, se han aplicado los conocimientos de sistemas continuos para discretizar posteriormente. Se comentan a continuación algunas técnicas de discretización:

Para obtener la versión discreta de un sistema continuo se dispone, a grandes rasgos, de dos posibilidades: - Método exacto: tener en cuenta la relación z = e s·T

- Métodos aproximados: técnicas de simplificación para hacer más sencilla la discretización. Se explicará a continuación uno de los métodos utilizados en el presente texto a la hora de discretizar: el “método de la derivada”:

El método de la derivada, consiste en aproximar la derivada por la pendiente de la recta que pasa por dos muestras consecutivas, con lo cual se obtiene:

82

MEMORIA

Sistema de Control

[5.5]

Que visto en sus correspondientes transformadas se convierte en:

[5.6]

Por lo tanto para obtener el regulador discreto a partir del continuo basta sustituir en la función de transferencia las “s”

por

z

z[ 5.7]

5.3. Control proporcional-integral discreto El tipo de control seleccionado para regular el sistema ha sido el control proporcional-integral discreto. Se detallan a continuación algunas de las características de dicho control en continuo, que pueden hacerse extensibles a su versión discreta: La función de transferencia del control es la siguiente:

 1  K · (1 + Ti ·s )  = C ( s ) = K 1 + T · s Ti ·s i  

[5.8]

Se puede observar el diagrama de Bode del control en la figura 5.3, el cual servirá para obtener distintas conclusiones:

83

MEMORIA

Sistema de Control

20·log(K)

1/Ti

Figura 5.3: diagrama de Bode del control proporcional-integral El control proporcional-integral (de ahora en adelante, PI) tiene una desventaja importante frente al control proporcional o al proporcional-diferencial, y es que, como se puede observar en su diagrama de Bode, su fase nunca es positiva. Esto se traduce en que la fase del sistema siempre va a sufrir un retraso por el hecho de incorporar la acción integral al control, retraso que se tratará de aminorar en la medida de lo posible (se manejarán valores entre los 5º y los 15º)

El control PI se puede implementar en tiempo discreto mediante distintas aproximaciones. En este texto se considerará la regla trapezoidal para realizar t

dicha aproximación. Si se tiene una función y (t ) = ∫ u (τ )·dτ y la señal u (τ ) es 0

84

MEMORIA Sistema de Control una señal discreta, se puede demostrar que el valor de la función y en un instante u[k − 1] → integral inferior de Riemann 1  k es: y[k ] = y[k − 1] + t s · (u[k ] + u[k − 1]) → regla trapezoidal 2 u[k ] → integral superior de Riemann

[5.9]

Por consiguiente, utilizando la regla trapezoidal como método de aproximación de la integral, el diagrama de bloques del control PI incremental (calcula incrementos sobre el mando anterior, y no mandos absolutos) en tiempo discreto será el mostrado en la figura 5.4:

Figura 5.4: diagrama de bloques del control PI en tiempo discreto (el bloque “b” representa una posible ponderación de la referencia, no utilizada en este texto)

85

MEMORIA

Sistema de Control

5.4. Diseño del control Como se pudo apreciar con anterioridad en la figura 3.2, el control del sistema se compone de dos bloques de control PI en cascada. El primero de ellos se encarga de comparar el valor de consigna de velocidad con la velocidad del tren (la cual se estimará convenientemente a partir de la corriente que circula por el motor) y, en función de dicha comparación, obtener una variable de error, a partir de la cual generar un mando de corriente, dentro de unos límites de saturación que no podrá superar, y que corresponden a los valores de corriente por encima, en el caso del límite superior o por debajo, en el caso de límite inferior, de los cuales el motor podría sufrir daños. El segundo bloque PI compara el mando de corriente que le viene dado por el bloque anterior, y la corriente que circula por el motor. Después de aplicar su acción proporcional-diferencial generará un valor de ciclo de trabajo (duty cycle) con el que el microprocesador generará su onda PWM, la cual será tratada en distintas etapas por el circuito de potencia, ya explicado en el capítulo cuarto.

Las principales ventajas que se derivan de la implantación de dos bloques de control en cascada son las siguientes:

- Protección del motor frente a sobreintensidades que pudieran dañarlo: al generar el primer bloque de control un mando de corriente con límites de saturación, el segundo bloque se encargará de generar el mando de tensión adecuado (el cual también se encuentra entre dos límites de saturación) para que la corriente del motor se encuentre entre esos límites.

- Mayor precisión en el control de la intensidad aplicada al motor: al controlar la intensidad que recorre el motor con un control PI, se asegura un error nulo en el seguimiento de la referencia.

86

MEMORIA

Sistema de Control

Figura 3.2: Primera aproximación del diagrama funcional de bloques del sistema completo

87

MEMORIA

Sistema de Control

Los parámetros del control han sido diseñados varias veces, atendiendo a distintos criterios, y utilizando distintas técnicas de diseño. Una vez obtenidos todos los resultados, se ha elegido aquél que mejor satisface las necesidades del sistema.

Todos los diseños se han realizado en base a una aproximación lineal del sistema equivalente continuo, obtenida a partir de la herramienta “Linear Analisys”, contenida dentro de la toolbox de control de Matlab y Simulink. En cuanto a las distintas simulaciones del sistema, realizadas para comprobar la eficacia del regulador diseñado, en una primera aproximación, se supuso el sistema como continuo, a excepción de los bloques de control, sin tener en cuenta el efecto de la onda PWM sobre el resto del sistema (se supuso que la frecuencia de dicha señal era lo suficientemente alta como para que los valores medios del resto de las señales del sistema sólo se viesen afectados en un ligero rizado alrededor de dicho valor medio). Más adelante, y ante respuestas del sistema inesperadas, debidas al desprecio de efectos físicos no modelados, se fueron añadiendo al modelo del sistema elementos que simulaban dichos efectos físicos, tales como retrasos en la actualización de los valores, distintos tiempos de muestreo para los distintos bloques de control, efectos de la señal de PWM, etc. Todo ello se explica con detenimiento a continuación.

5.4.1. Diseño mediante ajuste por simulación El primer control diseñado se realizó bajo la hipótesis de que los efectos de la no continuidad de las señales del sistema, excepto en lo referente al control, eran despreciables. No se tuvieron en cuenta pues retrasos de actualización de las salidas o los efectos del PWM sobre la corriente del motor (se tomó el mando del control no como un valor de ciclo de trabajo aplicado al PWM para obtener una

88

MEMORIA Sistema de Control 1 tensión, sino como dicha tensión directamente ). Además, se trabajó con el mismo tiempo de muestreo para los dos bloques de control, resultando éste demasiado rápido para lo que el microprocesador puede ofrecer. El diagrama de bloques del sistema completo se puede observar en la figura 3.2.

El diseño se realizó en dos partes: en primer lugar se ajustó el lazo de control de corriente, ya que es considerablemente más rápido que el lazo de control del sistema completo, para más tarde ajustar este último.

Al incluir el control y aplicar las propiedades del álgebra de bloques para cerrar el lazo de corriente, se obtiene una función de transferencia de segundo orden entre su entrada y su salida. Se pueden modelar pues sus parámetros de forma analítica, de modo que adquieran los valores que se desee.

Figura 5.5: diagrama de bloques del lazo de control de corriente Función de transferencia una vez cerrado el lazo:

G( s ) =

(1 + Ti ·s ) K (1 + Ti ·s ) = Ti ·s (R + L·s ) + K(1 + Ti ·s ) Ti L ·s 2 (R + K )Ti ·s + 1 K K

[5.10]

1 , se puede apreciar que tiene el M ·s + D aspecto de un filtro paso bajo, de frecuencia de corte: f c D = 0.152 Hz , por tanto, es de 2·π ·M esperar que filtre las fluctuaciones de velocidad que pudieran surgir debido a las conmutaciones de la onda PWM. 1

Si se observa la función de transferencia de la planta:

89

MEMORIA Sistema de Control Se observa que G(s) es un sistema de segundo orden con un cero adicional. Por tanto, su respuesta será la suma de la respuesta del sistema de segundo orden más la derivada de dicha respuesta. En lo que concierne al diseño, sólo se tendrá en cuenta la respuesta del sistema de segundo orden:

 K ω n = Ti ·L   1 R + K Ti  G ( s) = ⇒ ζ = Ti L 2 (R + K )Ti 2 K ·L ·s ·s + 1  G (0) = 1 K K  

[5.11]

Se diseñó entonces para tener un amortiguamiento de 0.7 (con lo que se consigue que el sistema no sea resonante) y una pulsación natural lo mayor posible. Para dichos valores, se obtuvo la siguiente expresión que relaciona Ti con K:

Ti =

0.00392 625 + 50 + K K

[5.12]

Se puede observar en la siguiente gráfica la relación entre Ti y K:

Figura 5.6: relación entre Ti y K para un amortiguamiento de 0.7

90

MEMORIA Sistema de Control Teniendo en cuenta la relación anterior, se ensayó la respuesta del lazo de corriente linealizado frente a un escalón de 0 a 0.2A con distintos valores de K y Ti: -Ensayo 1: K = 9.5;

Ti = 3.1288e-005; wn = 1.2321e+004

-Ensayo 2: K = 49.5; Ti = 3.4961e-005; wn = 2.6607e+004 -Ensayo 3: K = 99.5; Ti = 2.5163e-005; wn = 4.4464e+004 -Ensayo 4: K = 149.5; Ti = 1.9246e-005; wn = 6.2321e+004 -Ensayo 5: K = 249.5; Ti = 1.2980e-005; wn = 9.8036e+004

Figura 5.7: respuesta ante un escalón de la salida del lazo de corriente linealizado con distintos valores de K y Ti

91

MEMORIA

Sistema de Control

Figura 5.8: respuesta ante un escalón del mando de corriente con distintos valores de K y Ti Los valores de K y Ti elegidos después de comparar las distintas respuestas fueron los del ensayo 3. Una vez fijados esos valores, se procedió a diseñar el regulador del lazo de control del sistema completo.

El diseño del lazo de control del sistema completo se realizó a partir de distintos ensayos de la respuesta ante un escalón del sistema linealizado, utilizando un método de aproximación para ajustar los parámetros del control. Una vez fueron obtenidas respuestas más o menos aceptables, se realizó un ajuste más fino con parámetros cercanos a aquellos que habían dado esas respuestas.

A continuación se muestran distintas gráficas de los resultados obtenidos en el diseño:

Ajuste de la parte proporcional del control:

92

MEMORIA

Sistema de Control - Ensayo 1: Ti = inf; K = 5 - Ensayo 2: Ti = inf; K = 10 - Ensayo 3: Ti = inf; K = 15 - Ensayo 4: Ti = inf; K = 25 - Ensayo 5: Ti = inf; K = 50

Figura 5.9: ajuste de la parte proporcional del control Como el lazo de corriente es muy rápido, a los ojos del regulador del lazo de control del sistema completo es como si sólo tuviese que actuar sobre la planta, la cual, es un sistema de primer orden. Al aplicarle únicamente la acción proporcional a un sistema de primer orden, la salida mejorará a medida que aumenta K, por muy alta que esta sea. Ahora bien, como el sistema físico realmente no es un sistema de primer orden, ya que hay efectos físicos que siempre se van a despreciar a la hora de hacer un modelo (de lo contrario, modelar un sistema resultaría imposible), una K demasiado alta haría al sistema oscilante, aunque no se reflejase así en la simulación. Para prevenir esto, se ha elegido el valor de K del ensayo 4.

Ajuste de la parte integral del control:

93

MEMORIA

Sistema de Control - Ensayo 1:

K = 25; Ti = 100

- Ensayo 2:

K = 25; Ti = 1

- Ensayo 3:

K = 25; Ti = 0.1

- Ensayo 4:

K = 25; Ti = 0.01

- Ensayo 5:

K = 25; Ti = 0.001

Figura 5.10: ajuste de la parte integral del control Se seleccionó el valor de Ti del ensayo 4, por ser el que mayor rapidez presenta.

Posteriormente, se corroboró el ajuste anterior mediante simulación del sistema, esta vez sin linealizarlo previamente. Para ello se introdujeron dos escalones al sistema, el primero de amplitud 0.5m/s, para dejar al sistema estable en régimen permanente, y una vez estabilizado, otro de amplitud 0.1m/s, para comprobar la respuesta del sistema ante pequeñas variaciones. La figura 5.11 se utilizó para fijar el valor de K, dejando fijo el valor de Ti, que fue seleccionado anteriormente. Una vez fijado el valor de K, se utilizó la figura 5.12 para fijar el

94

MEMORIA Sistema de Control valor de Ti. Las figuras 5.13 y 5.14 son distintas respuestas del mando de corriente y del mando de tensión en función de los distintos valores de Ti. Los valores de los parámetros utilizados en cada ensayo se detallan a continuación de las gráficas. En la figura 5.10 se observa el diagrama de bloques del sistema simulado:

95

MEMORIA

Sistema de Control

Figura 5.11: diagrama de bloques del sistema simulado

96

MEMORIA

Sistema de Control

Figura 5.12: simulación del sistema con distintos valores de K

Figura 5.13: simulación del sistema con distintos valores de Ti

97

MEMORIA

Sistema de Control

Figura 5.14: respuesta del mando de corriente

Figura 5.15: respuesta del mando de tensión

98

MEMORIA

Sistema de Control Valores utilizados en la figura 5.12:

- Ensayo 1:

K = 5;

Ti = 0.01

- Ensayo 2:

K = 10;

Ti = 0.01

- Ensayo 3:

K = 15;

Ti = 0.01

- Ensayo 4:

K = 25;

Ti = 0.01

- Ensayo 5:

K = 50;

Ti = 0.01

Valores utilizados en las figuras 5.13, 14 y 15:

- Ensayo 1:

K = 25;

Ti = 0.001

- Ensayo 2:

K = 25;

Ti = 0.005

- Ensayo 3:

K = 25;

Ti = 0.01

- Ensayo 4:

K = 25;

Ti = 0.02

- Ensayo 5:

K = 25;

Ti = 0.05

Una vez concluidos todos los ensayos, los valores escogidos fueron los siguientes: K=25, Ti = 0.005

5.4.2. Diseño basado en técnicas de respuesta en frecuencia en lazo abierto con modelado de los efectos de retrasos de actualización de valores y PWM Con el fin de comprobar que el control diseñado anteriormente funcionaría correctamente implantado en el sistema real, se decidió modelar el efecto de los retrasos en la actualización de los valores de salida del control, así como el efecto que tiene el que el mando de tensión no sea una tensión continua sino una señal PWM. El diagrama de bloques del sistema, una vez modelados dichos efectos, queda como se muestra en la figura 5.17.

99

MEMORIA Sistema de Control Al realizar la simulación del sistema con los parámetros del control seleccionados anteriormente, se obtuvo la siguiente respuesta:

Figura 5.16: respuesta del sistema en simulación con retardos de actualización de salidas y PWM modelados Como dicha respuesta no es demasiado buena, se optó por realizar un segundo diseño del sistema de control, esta vez teniendo en cuenta los efectos de los retardos y del PWM. Además, para este segundo diseño, se aplicaron técnicas de diseño por respuesta en frecuencia en lazo abierto, como son el diseño por margen de ganancia y el diseño por margen de fase (para más información acerca de las técnicas de diseño de controles por respuesta en frecuencia, ver las referencias bibliográficas número 9 y 10).

100

MEMORIA

Sistema de Control

Retardo en la actualización del mando

Modulación PWM

Figura 5.17: diagrama de bloques del sistema, incluyendo retardos de actualización de salidas y efecto del PWM

101

MEMORIA

Sistema de Control

PI 2

PI 1

Retardo en la actualización del mando y retardo por el retenedor de orden cero

Figura 5.18: diagrama de bloques del lazo de control completo abierto, en tiempo continuo

102

MEMORIA

Sistema de Control PI 2

Retardo en la actualización del mando y retardo por el retenedor de orden cero Figura 5.19: diagrama de bloques del lazo de control de corriente abierto, en tiempo continuo

Como se comenta al principio de la sección, los diseños no se realizan sobre el modelo propio del sistema, sino sobre una linealización del sistema, una vez pasado a continuo. Para ello, se han de sustituir los bloques de control discreto por sus equivalentes en continuo (ver sección 5.2), y los retrasos en el dominio de la transformada “z” por sus equivalentes en el dominio de la transformada de Laplace. Como se tiene un retraso de actualización de las salidas de un periodo de muestreo, y la salida del control discreto es transformada a continuo por un retenedor de orden cero, en total se tendrá un retraso en las salidas de 1.5 · tiempo de muestreo, lo que equivale a un retraso, en dominio de la transformada de Laplace, de:

e −1.5·t s ·s

[5.13]

Una vez se tiene el modelo en tiempo continuo, se puede linearizar y sacar su diagrama de Black en lazo abierto. De él se obtiene la información necesaria para diseñar el control. Como ya se hizo en el primer diseño, se comienza con el lazo de control de corriente.

Se diseña en primer lugar por margen de ganancia: 3 Φ m = 50º ∠G ( jω 0 ) = 1260º +60º = 1320º ⇒ ω 0 = 3.57 ·10 rad / s ⇒ [5.14]   G ( jω 0 ) dB = −17.7 dB ϕ c = −10º

103

MEMORIA

Sistema de Control

Figura 5.20: diagrama de Black del lazo de corriente abierto, antes de aplicar el control

C ( jω 0 ) dB = 17.7 dB ⇒ C ( jω 0 ) = 10

ϕ c = −90º + arctg (Ti · ω 0 ) = −10º ⇒ Ti = C ( jω 0 ) = K

17.7 20

= 7.6736

tan 80º

ω0

= 1.6 ·10 −3

1 + (Ti · ω0 ) = 7.6736 ⇒ K = 7.56 Ti · ω0 2

[5.15]

Donde:

(Nomenclatura extensiva a todos los diseños por respuesta en frecuencia) •

Φm = margen de fase



Am = margen de ganancia



ω0 = pulsación de cruce



ωu = pulsación de oscilación



G = función de transferencia del sistema a controlar en lazo abierto



C = función de transferencia del control



φc = retraso del control (debido a la parte integral del mismo)



Ti y K = ver sección 5.2 de la memoria

104

MEMORIA

Sistema de Control

Como se puede observar en la figura 5.21, el control diseñado resulta en un margen de fase adecuado, sin embargo el margen de ganancia, que debería estar por encima de los 8 dB, se hace demasiado pequeño.

Figura 5.21: diagrama de Black del lazo de corriente abierto, después de aplicar el primer diseño del control Entonces, se decide diseñar por margen de ganancia: ∠G ( jω 0 ) = 1260º +10º = 1270º ⇒ ω 0 = 5 ·10 3 rad / s  Am = 8dB ⇒   G ( jω 0 ) dB = −17.8dB ϕ c = −10º 9.8

C ( jω 0 ) dB = 17.7 dB − 8dB = 9.8dB ⇒ C ( jω 0 ) = 10 20 = 3.1

ϕ c = −90º + arctg (Ti · ω 0 ) = −10º ⇒ Ti = C ( jω 0 ) = K

1 + (Ti · ω 0 ) Ti · ω 0

tan 80º

ω0

= 1.134 ·10 −3 ≈ 10 −3

2

= 3.1 ⇒ K = 3.05 ≈ 3

[5.16]

Una vez aplicado el control, se obtiene el siguiente diagrama de Black:

105

MEMORIA

Sistema de Control

Figura 5.22: diagrama de Black del lazo de corriente abierto, después de aplicar el segundo diseño del control

Figura 5.23: diagrama de Black del lazo completo abierto, antes de aplicar el el control Una vez observado el diagrama de Black del lazo completo abierto, se decide diseñar el regulador que lo controle por margen de fase: 106

MEMORIA

Sistema de Control

∠G ( jω 0 ) = 1260º +60º = 1320º ⇒ ω 0 = 300rad / s Φ m = 50º ⇒   G ( jω 0 ) dB = −33.8 dB ϕ c = −10º

Una vez obtenidos los puntos característicos del sistema en lazo abierto, se procede a diseñar el control:

C ( jω 0 ) dB = 33.8 dB ⇒ C ( jω 0 ) = 10

ϕ c = −90º + arctg (Ti · ω 0 ) = −10º ⇒ Ti = C ( jω 0 ) = K

1 + (Ti · ω 0 ) Ti · ω 0

33.8 20

tan 80º

ω0

= 48.978

= 1.89 ·10 − 2 ≈ 2 ·10 − 2

2

= 78.978 ⇒ K = 48.234 ≈ 50

[5.17]

(Las aproximaciones en los valores de control se han realizado para facilitar el posterior escalado del problema en 8bits)

Figura 5.24: diagrama de Black del lazo completo abierto, después de aplicar diseño del control Una vez implantado el control con los valores diseñados, se simula el sistema tomando como referencia dos escalones: el primero, de 0 a 0.5m/s, para estabilizar el sistema en régimen permanente, y el segundo de 0.1m/s de amplitud, para

107

MEMORIA Sistema de Control observar la reacción del sistema ante pequeñas variaciones, una vez está estabilizado en régimen permanente. Se obtiene como respuesta:

Figura 5.25: respuesta de la simulación del sistema La cual, si bien no es perfecta, como se puede observar en la figura 5.26, es bastante mejor que la obtenida con el control anterior.

Figura 5.26: ampliación de la respuesta de la simulación del sistema

108

MEMORIA

Sistema de Control

5.5. Filtros digitales: filtro de primer orden y filtro FIR Dadas las fluctuaciones que se producen en la salida del sistema al simularlo, se decide probar a filtrar la intensidad medida antes de entrar al microprocesador, para ver si se pueden atenuar dichas fluctuaciones. Aprovechando la versatilidad de los filtros digitales frente a los analógicos (los valores de los filtros digitales se pueden cambiar mediante software en cualquier momento, mientras que los filtros analógicos una vez implantados no se pueden modificar), se decide diseñar un filtro paso bajo de primer orden, y posteriormente un filtro paso bajo FIR para eliminar (o al menos atenuar) las altas frecuencias que pueda haber en la medida de la corriente que atraviesa el motor.

5.5.1. Filtro paso bajo de primer orden Para diseñar un filtro digital paso bajo de primer orden, se diseñará en primer lugar el filtro paso bajo en tiempo continuo, y más tarde, utilizando las técnicas expuestas en la sección 5.1 de la memoria, se discretizará.

La función de transferencia de un filtro paso bajo tiene la forma: F (s) =

1 1 es la frecuencia de corte.. , donde 1 + τ ·s 2·π ·τ

Se aplica la aproximación de la integral superior de Riemann para hallar la transformada “z” de la función de transferencia del filtro. Para ello, se sustituye “s” por

Ts 1 − z −1 , quedando pues: F ( z ) = . Por tanto, su ecuación en Ts Ts + τ − τ ·z −1

diferencias será:

y[k ] =

Ts · u[k ] + τ · y[k − 1] Ts + τ

[5.18]

109

MEMORIA

Sistema de Control

Figura 5.27: diagrama de bloques del filtro de primer orden

110

MEMORIA Sistema de Control Si se hace τ = 1, se obtendrá una frecuencia de corte de 0.16 Hz, la cual satisface la premisa de eliminar las posibles fluctuaciones en altas frecuencias que pudiera tener la corriente medida

Figura 5.28: diagrama de Bode del filtro Una vez diseñado el filtro, se procede a diseñar el control del lazo de corriente. Después de observar el diagrama de black en lazo abierto, se decide diseñar por margen de ganancia: 3  Am = 10 dB ∠G ( jω 0 ) = 1260º +10º = 1270º ⇒ ω 0 = 5 ·10 rad / s ⇒   G ( jω 0 ) dB = −82 dB ϕ c = −10º

C ( jω 0 ) dB = 82dB − 10dB = 72dB ⇒ C ( jω 0 ) = 10

ϕ c = −90º + arctg (Ti ·ω 0 ) = −10º ⇒ Ti = C ( jω 0 ) = K

1 + (Ti · ω 0 ) Ti · ω 0

tan 80º

ω0

72 20

= 3981

= 3.38 ·10 −3

2

= 3981 ⇒ K = 3920.5

[5.19]

111

MEMORIA

Sistema de Control

Figura 5.29: diagrama de Black del lazo de corriente abierto, antes de aplicar el control

Figura 5.30: diagrama de Black del lazo de corriente abierto, una vez aplicado el control

112

MEMORIA Sistema de Control A la hora de diseñar el control del lazo completo, se tiene en cuenta el siguiente diagrama de Black:

Figura 5.31: diagrama de Black del lazo completo abierto, antes de aplicar el control A partir de él, se decide que se va a diseñar por margen de fase. Se especifican los cálculos a continuación: Φ m = 45º ∠G ( jω 0 ) = −180º +50º = −130º ⇒ ω 0 = 2.1rad / s ⇒    G ( jω 0 ) dB = 3.87 dB ϕ c = −5º

C ( jω 0 ) dB = −3.87dB ⇒ C ( jω 0 ) = 10

ϕ c = −90º + arctg (Ti · ω 0 ) = −5º ⇒ Ti = C ( jω 0 ) = K

1 + (Ti · ω 0 ) Ti · ω 0

−3.87 20

= 0.65

tan 85º

ω0

= 5 .4

2

= 0.65 ⇒ K = 0.65

[5.20]

Una vez aplicado el control, se obtiene un diagrama de Black en lazo abierto:

113

MEMORIA

Sistema de Control

Figura 5.30: diagrama de Black del lazo completo, con control aplicado Sin embargo, se observa una respuesta del sistema más lenta y fluctuante que con controles anteriores:

Figura 5.31: respuesta del sistema en simulación

114

MEMORIA 5.5.2. Filtro paso bajo FIR

Sistema de Control

Ante la mala respuesta del sistema con el filtro paso bajo de primer orden, se decide diseñar un filtro FIR, que tiene la ventaja de ofrecer una gran atenuación e incluso completa eliminación de determinadas frecuencias con una fase lineal, para sustituir al filtro de primer orden, y observar si la respuesta del sistema mejora.

Se define un filtro FIR como aquel en el que cada muestra de salida es una suma ponderada de un número finito de muestras de la secuencia de entrada ya recibida, lo que significa que su respuesta es causal. Esta funcionalidad se puede expresar como:

Para obtener más información sobre la teoría que rodea a los filtros FIR (aspecto en el cual no se va a ahondar más en el presente texto) se puede consultar cualquier libro de tratamiento de señales discretas, como por ejemplo los enunciados en las referencias bibliográficas 1, 2 y 3.

Los filtros FIR se diseñan en función de las frecuencias que se desean eliminar. A partir de la transformada “z” del filtro, se hallan los ceros de la función. Éstos serán complejos, que, en forma módulo-argumental tendrán por módulo la unidad, y por argumento la pulsación normalizada (pulsación / pulsación de muestreo) que elimine ese cero. Si se diseña dicha transformada para que tenga ceros en ciertas frecuencias normalizadas (pulsación normalizada / 2π), que, multiplicadas por la frecuencia de muestreo dan como resultado las frecuencias que se quieren eliminar, éstas resultarán eliminadas (se vuelve a hacer hincapié en que el presente texto no pretende ahondar en los aspectos teóricos de los filtros FIR y los teoremas de muestreo. Se puede consultar las referencias bibliográficas 1, 2 y 3 para más información). Como se quiere diseñar un filtro paso bajo, se hará de tal

115

MEMORIA Sistema de Control forma que elimine frecuencias equidistantes a partir de una pulsación normalizada de π/2 hasta una pulsación normalizada de 3π/2.

Idealmente, se querrían tener tantos ceros entre esas dos frecuencias como fuese posible, para eliminar el mayor número posible de altas frecuencias, pero cuantos más ceros se introduzcan en la función, más carga de trabajo tendrá que soportar el microprocesador, y más altos (y, por consiguiente, difíciles de escalar en 8 bits, que es el tamaño de los registros del microprocesador utilizado) resultarán los coeficientes que acompañan a las “z-n” en la transformada “z” del filtro, los cuales son los mismos coeficientes que acompañan a las “x[n-k]” en la ecuación en diferencias del filtro. Se decidió que cinco ceros, en e±jπ/2, e±j3π/4 y ejπ , conforman un filtro que cumple las características necesarias para la función que ha de desempeñar en el diseño. Una vez redondeados los coeficientes, para su posterior implantación en el microprocesador con enteros de 8 bits, queda la siguiente ecuación en diferencias del filtro:

y[n] =

2 z 6 + 7 z 5 + 12 z 4 + 14 z 3 + 12 z 2 + 7 z + 2 z6

[5.21]

Se pueden observar el diagrama de ceros y polos del filtro, así como su diagrama de Bode y su diagrama de bloques en las figuras 5.32, 5.33 y 5.34 respectivamente:

116

MEMORIA

Sistema de Control

Figura 5.32: diagrama de ceros y polos del filtro FIR diseñado

Figura 5.33: diagrama de Bode del filtro FIR diseñado

117

MEMORIA

Sistema de Control

Figura 5.34: diagrama de bloques del filtro FIR diseñado

Como en el filtro de primer orden, una vez diseñado el filtro FIR, se procede a diseñar el control mediante técnicas de respuesta en frecuencia en lazo abierto.

Se comienza, como en anteriores diseños, por el diseño del regulador del lazo de control de corriente: 3  Am = 8 dB ∠G ( jω 0 ) = 180º +10º = 190º ⇒ ω 0 = 4.24 ·10 rad / s ⇒   G ( jω 0 ) dB = 16.8 dB ϕ c = −10º

C ( jω 0 ) dB = −16.8dB − 8dB = −24.8dB ⇒ C ( jω 0 ) = 10

ϕ c = −90º + arctg (Ti · ω 0 ) = −10º ⇒ Ti = C ( jω 0 ) = K

1 + (Ti · ω 0 ) Ti ·ω 0

tan 80º

ω0

−24.8 20

= 0.058

= 1.34 ·10 −3

2

= 0.058 ⇒ K = 0.057

[5.22]

118

MEMORIA

Sistema de Control

Figura 5.35: diagrama de Black del lazo de corriente abierto, antes de aplicar el control

Figura 5.36: diagrama de Black del lazo de corriente abierto, después de aplicar el control

119

MEMORIA Sistema de Control Después de diseñar el regulador del lazo de control de corriente, se realiza el diseño del regulador del lazo de control completo:

∠G ( jω 0 ) = 540º +60º = 600º ⇒ ω 0 = 6.99rad / s Φ m = 50º ⇒   G ( jω 0 ) dB = 33.6 dB ϕ c = −10º

C ( jω 0 ) dB = −33.6dB ⇒ C ( jω 0 ) = 10

ϕ c = −90º + arctg (Ti · ω 0 ) = −10º ⇒ Ti = C ( jω 0 ) = K

1 + (Ti · ω 0 ) Ti · ω 0

−33.6 20

= 0.02

tan 80º

ω0

= 0.81

2

= 0.02 ⇒ K = 0.02

[5.23]

Figura 5.37: diagrama de Black del lazo completo abierto, antes de aplicar el control

120

MEMORIA

Sistema de Control

Figura 5.38: diagrama de Black del lazo completo abierto, una vez aplicado el control Una vez diseñados los dos reguladores en tiempo continuo, se procede a efectuar la simulación de la respuesta del sistema en tiempo discreto ante un escalón, dando como resultado la gráfica de la figura 5.39.

Si se comparan todas las gráficas obtenidas de la simulación de la respuesta del sistema con y sin filtros, se puede determinar que el sistema ofrece una mejor respuesta (al menos en simulación) sin filtrar la medida de corriente que le llega al microprocesador. Por ello, se elige el mencionado diseño para desarrollar el software pertinente en base a él, e implantarlo en el sistema físico.

121

MEMORIA

Sistema de Control

Figura 5.39: respuesta simulada del sistema ante un escalón

122

MEMORIA

Sistema de Control

5.6. Escalado del problema Al realizar los diseños y simularlos en el ordenador, se ha trabajado siempre con variables codificadas en formato de coma flotante y doble precisión. Con el fin de optimizar el rendimiento del microprocesador, se va a realizar lo que se conoce como un escalado del problema. Se simulará el control trabajando con variables enteras de 32, 16 y 8 bits, y dependiendo de los resultados obtenidos trabajando con los distintos tipos de dato, se elegirá el más pequeño dentro de un rango aceptable de resultados para trabajar con él.

El escalado se efectúa multiplicando las variables del sistema que están dentro de los bloques de control por potencias de 2. Esto es así ya que para que el microprocesador multiplique o divida por 2 únicamente tiene que hacer un desplazamiento (shift left o shift right, respectivamente) al registro que contenga el número a multiplicar, y dicha operación de desplazamiento se efectúa de forma muy rápida. Mediante estas operaciones se consigue que las variables estén dentro del rango de valores deseado, que en este caso es de -128 a 127 en el caso de 8 bits, de -32768 a 32767 en el caso de 16 bits, y de -2147483648 a 2147483647 en el caso de 32 bits.

Se puede observar en las figuras 5.40, 5.41 y 5.42 los diferentes diagramas de bloques del sistema escalado. Se representan también los diferentes tiempos de muestreo del sistema mediante distintos colores, así como el tipo de dato de todas las señales del sistema.

Una vez realizado el escalado, se simuló el sistema para comprobar su correcto funcionamiento y comparar la salida del sistema en coma flotante con la del sistema escalado trabajando con enteros de 8, 16 y 32 bits. El resultado de dicha simulación se puede observar en la figura 5.43.

123

MEMORIA

Sistema de Control

Figura 5.40: sistema en coma flotante y sistema escalado, con los distintos tiempos de muestreo del sistema representados 124

MEMORIA

Sistema de Control

Figura 5.41: bloque PI3 escalado a 8 bits

125

MEMORIA

Sistema de Control

Figura 5.42: bloque PI4 escalado a 8 bits

126

MEMORIA

Sistema de Control

Figura 5.43: respuesta del sistema en coma flotante y del sistema escalado a enteros de 8,16 y 32 bits ante un escalón de amplitud 0.1 m/s. Existe en el ensayo realizado con las variables escaladas a enteros de 8 bits un pequeño error en régimen permanente, producido por dos causas: la primera de ellas es el error que se introduce con la perdida de sensibilidad al realizar la conversión A/D, en la cual, se pasa de valores continuos a valores discretos con una sensibilidad igual al cociente entre el valor de tensión máximo de entrada al conversor, y la n-ésima potencia de dos, siendo n el número de bits del conversor A/D; la segunda causa es la pérdida de precisión al utilizar variables de 8 bits, bien sea por la inexactitud de algunas operaciones (desprecio de decimales, overflows, etc.), o por el escalado de las constantes a 8 bits, con la consiguiente pérdida de información debida al desprecio de cifras decimales. En el escalado a constantes de 16 y 32 bits no se aprecia prácticamente diferencia con las variables en coma flotante y doble precisión. Se elige pues trabajar con el escalado a 16 bits.

127

MEMORIA

Sistema de Control

5.7. Conclusiones Se presenta en este capítulo toda la información relativa al diseño del control del sistema, desde los fundamentos teóricos básicos para comprender el funcionamiento de los sistemas de control discreto y sus posibles métodos de diseño, hasta el programa que se implantará en el microprocesador para realizar el control del sistema.

Se ha tratado con bastante profundidad el diseño de los reguladores PI. En una primera aproximación se diseñan aproximando los parámetros por simulación, para comprobar posteriormente que este método de diseño no es el más acertado, y se procede a diseñar aplicando técnicas de respuesta en frecuencia: diseño por margen de fase y diseño por margen de ganancia.

Ante el comportamiento que tiene la salida con los controles anteriores, se piensa que se puede mejorar filtrando la corriente medida que va al microprocesador. Para ello se diseñan dos filtros digitales: un filtro paso bajo de primer orden, y un filtro FIR paso bajo. Después de rediseñar el control para el sistema incluyendo esos filtros, se comprueba mediante simulación que no mejoran, sino que empeoran la respuesta del sistema.

Una vez claro el regulador que se va a utilizar (el diseñado por técnicas de respuesta en frecuencia, sin filtro de corriente), se procede con el escalado del problema, para adecuar las variables del sistema para que puedan ser tratadas con registros de 32, 16 u 8bits, en lugar de utilizar variables en doble precisión, que disminuirían notablemente el rendimiento del microprocesador. Después de haber realizado el escalado con los tres tipos de variables, se elige trabajar con enteros de 16 bits, ya que son la variable más pequeña que ofrece una calidad aceptable en las simulaciones.

128

MEMORIA

Implantación

Capítulo 6: Implantación en el microprocesador 6.1. El microprocesador ColdFire MCF5282 El microprocesador utilizado es el ColdFire MCF5282 de Motorola. Posee un reloj interno de 80Mhz, 16 registros de propósito general de 32 bits y una memoria RAM estática de 64kB. En la figura 6.1 se puede observar un diagrama de bloques con los distintos periféricos y funciones.

El soporte físico del microprocesador es un encapsulado MAPBGA de 256 pines. En la figura 6.2 se pueden observar las características mecánicas del microprocesador.

La asignación de pines del microprocesador viene ilustrada en la figura 6.3, y las características eléctricas se pueden observar en las tablas 6.1, 6.2 y 6.3.

El MCF5282 posee un conversor analógico/digital de 10 bits gestionado por colas, que será fundamental para la medición de las diversas señales del circuito (aceleración, intensidad por el motor, velocidad). Además, posee una salida PWM configurable por software, y diversos timers y entradas/salidas de propósito general, que serán utilizados en el proyecto.

129

MEMORIA

Implantación

Figura 6.1: diagrama de bloques del microprocesador

130

MEMORIA

Implantación

Figura 6.2: características mecánicas del microprocesador MCF5282

Figura 6.3: asignación de pines (pinout) del microprocesador

131

MEMORIA

Implantación

Tabla 6.1: características eléctricas máximas del MCF5282

Tabla 6.2: características eléctricas DC del MCF5282

132

MEMORIA

Implantación

Tabla 6.3: características eléctricas DC del MCF5282 (continuación)

133

MEMORIA

Implantación

6.2. Implantación: programación del microprocesador La última fase del diseño del control es implantar éste en el microprocesador. Para ello, se programarán en lenguaje C las instrucciones necesarias para tal fin, con ayuda del compilador Freescale CodeWarrior©, el cual también se usará para grabar el programa en el microprocesador.

Para llevar a cabo la implantación se usará el sistema operativo en tiempo real (de ahora en adelante “SOTR”) FreeRTOS©. El SOTR FreeRTOS es un sistema desarrollado en código abierto, por lo que, además de ser simple y adecuado al fin que se quiere conseguir, es gratuito.

A grandes rasgos, el microprocesador ejecutará una secuencia de tareas como la que sigue:

1. La señal analógica de salida del circuito de acondicionamiento del acelerómetro es pasada a digital en el conversor A/D.

2. Se ajusta el mando para alcanzar el valor de aceleración normal máxima programada (a_max). Si el tren está en una recta, ese valor será imposible de alcanzar, luego el tren desarrollará su máxima velocidad. Por el contrario, si circula por una curva, se ajustará su velocidad para que mantenga la aceleración normal cercana a la máxima dentro de unos márgenes.

3. Si se detecta una baliza, salta una interrupción que pone la referencia de velocidad a un valor moderado (la mitad de la velocidad máxima que puede desarrollar el tren, esto es, 0.6m/s)

4. El control del micro disminuye duty cycle del PWM para igualar velocidad a la referencia, y a partir de ahí, empieza a gestionar la referencia de velocidad

134

MEMORIA Implantación en función de la aceleración normal que se mida en cada instante, pasando de nuevo al punto 1.

El programa se ha desarrollado en 3 módulos distintos: main.c, control.c y configuración.c.

Además,

se

han

creado

los

archivos

“.h”

control.h,

configuración.h y constantes.h.

En la tabla 6.4 se pueden observar las diferentes funciones asociadas a cada módulo, y a continuación se dará una explicación más detallada de las funciones más relevantes.

135

MEMORIA

Implantación

MÓDULO

FUNCIÓN

Main.c

Main InitM5282Lite_ES

Configuración .c

TAREA Inicialización, creación de tareas y arranque del planificador. Inicialización

InitPWM

Inicialización PWM.

SetPWM

Fija un Duty Cycle en el PWM.

InitControl

Inicialización.

ADCTask

Tarea que realiza conversiones en el conversor

(TAREA)

A/D. Tarea que realiza las gestiones para modificar

Control (TAREA)

la referencia de velocidad del tren de acuerdo a la aceleración normal leída en cada instante.

CopiaRef CopiaEnRef Control.c

Funciones de copia de datos para proteger zonas críticas. Funciones que realizan el control PI discreto

PI1 y PI2

en el lazo de corriente y el lazo de velocidad del control.

QadcInit

Inicialización del conversor A/D.

ArrancaConversion Arranca la conversión en AN0-AN3. Función de encuesta que devuelve 1 si el Convirtiendo

conversor A/D está ejecutando una conversión en ese momento.

LeeAN0, 1, 2 y 3

IntGPTA0 Interrupts (en Control.c)

Lee el valor digital convertido en el conversor analógico para las 4 entradas. Salta cuando hay flanco de subida en GPTA0. Detección de baliza. Modera la referencia. Salta cada 0.5ms (tiempo de muestreo).

IntPIT0

Realiza el control del lazo de corriente y velocidad.

Tabla 6.4: funciones asociadas a cada módulo

136

MEMORIA 6.2.1. Main

Implantación

En la función main se realizan todas las inicializaciones pertinentes para el correcto funcionamiento del programa. Desde esta función se llamará a InitM5282Lite_ES, InitPWM, QadcInit e InitControl. Acontinuación se crearán las dos tareas que se van a ejecutar de acuerdo al planificador del SOTR, y por último se arrancará dicho planificador.

La figura 6.4 muestra un diagrama de flujo de la función:

Figura 6.4: diagrama de flujo de la función main

137

MEMORIA 6.2.2. Control

Implantación

La tarea de control se ejecuta cada 20 ms, y realiza los cálculos necesarios para la gestión de la referencia de velocidad del tren, en función de la aceleración normal medida. La figura 6.5 muestra su diagrama de flujo.

Figura 6.5: diagrama de flujo de la tarea de control

138

MEMORIA 6.2.3. ADCTask

Implantación

La tarea ADCTask realiza las conversiones de analógico a digital de los cuatro canales AN0, AN1, AN2 y AN3, siempre y cuando no haya ninguna otra tarea leyendo los datos de dichas conversiones. La figura 6.6 ilustra su funcionamiento mediante su diagrama de flujo.

Figura 6.6: diagrama de flujo de la tarea ADCTask

139

MEMORIA

Implantación

6.2.4. IntGPTA0 IntGPTA0 es la interrupción que salta cuando hay un flanco de subida en el pin GPTA0, que es el asociado a detectar los pasos por las balizas del tren. Su funcionamiento viene descrito por su diagrama de flujo, que se puede observar en la figura 6.7.

Figura 6.7: diagrama de flujo de la interrupción IntGPTA0 6.2.5. IntPIT0 La interrupción del PIT0 (programmable interrupt timer 0) salta cada 0.5ms. Se ha configurado el PIT0 para que salte con ese periodo ya que coincide con el periodo de muestreo utilizado en las simulaciones con MATLAB.

Durante la interrupción se realiza el proceso de control tanto del lazo de velocidad como del de corriente (una vez del primero por cada diez del segundo, ya que el lazo de corriente es mucho más rápido que el de velocidad). 140

MEMORIA La figura 6.8 presenta su diagrama de bloques:

Implantación

Figura 6.8: diagrama de flujo de la interrupción PIT0

141

MEMORIA 6.2.6. Programación del regulador PI discreto

Implantación

El regulador PI se ha de implantar en el microprocesador para que este pueda ejercer su labor de control. El regulador PI discreto, como todo regulador PI tiene dos acciones de control, una proporcional, sobre el error generado como la diferencia entre la referencia y la medida, y otra integral, sobre la integral de dicho error. Una vez pasadas a discreto, mediante la regla trapezoidal, como se explica en la sección 5.2, queda: e[k ] = referencia[k ] − medida[k ] e[k ] + e[k − 1] I e[k ] = Ie[k − 1] + · Ts 2

[5.24]

Donde: •

e[k] = error en el instante k



Ie[k] = integral del error en el instante k ∆ e[k ] = e[k ] − e[k − 1] e[k ] + e[k − 1] ∆ Ie[k ] = Ie[k ] + · ts 2

[5.25]

Por tanto, el incremento del mando entre un instante y el siguiente será:

  1 ∆ m[k ] = K ·  ∆ e[k ] + ∆ Ie[k ]  Ti  

[5.26]

Y el mando en un instante k: m[k ] = ∆ m[k ] + m[k − 1]

[5.27]

142

MEMORIA Implantación Luego, si se programa una subrutina llamada “PI” que efectúe el control proporcional-integral a partir de las mediciones pertinentes y de la referencia, quedará algo como:

int PI(int referencia,int salida, int* pmando_ant, int* pe_ant, int* pIe_ant, int K, int Ti, int man_sat) { int e_act, Ie_act; int inc_mando, mando;

e_act = referencia-salida; Ie_act = *pIe_ant + (e_act + *pe_ant) * Ts/2; inc_mando

=

K

*

(e_act-(*pe_ant)

+

((Ie_act-

(*pIe_ant))/Ti) );

mando= *pmando_ant+inc_mando;

if(mando>=man_sat){ mando=man_sat; }else if(mando=man_sat){ mando=man_sat; }else if(mando=man_sat){ mando=man_sat; }else if(mando64) para indicarlo) */ MCF_QADC_CCW(0) = 0; /* Primera conversión: AN0 */ MCF_QADC_CCW(1) = 1; /* Segunda conversión: AN1 */ MCF_QADC_CCW(2) = 2; /* Tercera conversión: AN2 */ MCF_QADC_CCW(3) = 3; /* Cuarta conversión: AN3 */ MCF_QADC_CCW(4) = 63; /* Fin de la cola */ vSemaphoreCreateBinary(sem_AD); //Crea el semáforo } void ArrancaConversion(void) { MCF_QADC_QACR1 = 0x2100; /* Sin interrupciones, disparado por software, single scan. SSE = 1 para disparar la cola 1*/ } int Convirtiendo() { if((MCF_QADC_QASR0&0x8000) == 0){ return 1; /* Está convirtiendo aún */ }else{ return 0; } } uint16 LeeAN0(void) { return MCF_QADC_RJURR(0); } uint16 LeeAN1(void) { return MCF_QADC_RJURR(1); } uint16 LeeAN2(void) { return MCF_QADC_RJURR(2); } uint16 LeeAN3(void) { return MCF_QADC_RJURR(3); }

MEMORIA __declspec(interrupt) IntGPTA0(void) //Interrupción: Detección baliza { MCF_GPTA_GPTFLG1|=(0x1=9) { contador_interrupcion=0; if(MEDIR_VEL) { medida_v=LeeAN2; //Obtener medida de velocidad a partir del estimador analógico; } else{ medida_v=(duty_cycle/100 *14 medida_i*35)/5.8; //Obtener medida de velocidad por funcion transferencia. } referencia_i=PI1(referencia_velocidad,medida_v, MAN_SAT1, &error_v, &Ierror_v, &mando_corriente); } duty_cycle=100/127*PI2(referencia_i, medida_i, MAN_SAT2, &error_i, &Ierror_i, &mando_tension); SetPWM(duty_cycle); }

MEMORIA /*Control.h * Autor: Fernando Moreno * Última modificación: 1/Jun/2010 */

Anexo I

#ifndef Control_h #define Control_h #include "Constantes.h" /* Función: InitControl * * Inicializa las interrupciones en el puerto GPTA, para * que salte una interrupción con la detección de una baliza. * y configura el PIT0 y el GPIO. * Versión: 0.0 */ void InitControl(void); /* Función: ADCTask * * Tarea que realiza las conversiones A/D, * controlada por el planificador. * * Versión: 0.0 */ void ADCTask(void *pvParameters) /* Función: Control * * Tarea que realiza el control de la referencia de velocidad cada 20ms * * Versión: 0.0 */ void Control(void *pvParameters); /* Función: CopiaRef * * Copia la referencia de velocidad * * Versión: 0.0 */ uint16 CopiaRef(void); /* Función: CopiaEnRef *

MEMORIA Anexo I * Copia la referencia de velocidad calculada en la tarea de Control. * * Versión: 0.0 */ uint16 CopiaEnRef(void); /* Función: PI1 * * Realiza un control PI incremental en tiempo discreto a partir * de los parámetros de entrada * * Versión: 0.0 */ int PI1(int referencia,int salida, int* pe_ant, int* pIe_ant, int K, int Ti); /* Función: PI2 * * Realiza un control PI incremental en tiempo discreto a partir * de los parámetros de entrada * * Versión: 0.0 */ int PI2(int referencia,int salida, int* pe_ant, int* pIe_ant, int K, int Ti); /*Funciones para el manejo del conversor AD*/ /* Función: QadcInit * * Inicializa en conversor AD para medir las entradas AN0, AN1, AN2 y AN3. El final de * la conversión se realizará por encuesta mediante la función Convirtiendo(). * * Versión: 0.0 */ void QadcInit(void); /* Función: ArrancaConversion * * Arranca una conversión. Se convertirán los canales * AN0, AN1, AN2 y AN3. * * Versión: 0.0 */

MEMORIA void ArrancaConversion(void);

Anexo I

/* Función: Convirtiendo * * Consulta el registro de estado del conversor A/D y devuelve un 1 si se está * realizando la conversión o un cero si ésta ha terminado. * * Versión: 0.0 */ int Convirtiendo(); /* Función: LeeAN0 * * Devuelve el resultado de la conversión A/D del canal AN0 * El valor es de 10 bits, de forma que 0V se traducen en el valor 0 y 3.3 V * en 1023. Los bits 10 a 15 estarán siempre a 0. * * Versión: 0.0 */ uint16 LeeAN0(void); /* Función: LeeAN1 * * Idem LeeAN0 pero para el canal AN1 * * Versión: 0.0 */ uint16 LeeAN1(void); /* Función: LeeAN2 * * Idem LeeAN0 pero para el canal AN2 * * Versión: 0.0 */ uint16 LeeAN2(void); /* Función: LeeAN3 * * Idem LeeAN0 pero para el canal AN3 * * Versión: 0.0 */ uint16 LeeAN3(void);

MEMORIA /*Interrupciones*/

Anexo I

/* Interrupción: IntGPTA0 * * Interrupción de detección de baliza * * Versión: 0.0 */ __declspec(interrupt) IntGPTA0(void) /* Interrupción: IntPIT0 * * Interrupción para realizar el control cada tiempo de muestreo. * * Versión: 0.0 */ __declspec(interrupt) IntPIT0(void) #endif

MEMORIA Anexo I /* Funciones para el manejo del conversor AD y el PWM */ #include "Configuracion.h" /*Puerto salida PWM*/

/* Inicialización del chip-select para la CPLD */ void InitM5282Lite_ES(void) { MCF_CS1_CSAR = 0x0100; /* Dir base */ MCF_CS1_CSMR = 0x00000001; /* Valid CS */ MCF_CS1_CSCR = 0x1140; /* 0 WaitStates, Auto ACK, puerto 8 bit */ }

/* Funciones para el manejo del generador PWM*/ void InitPWM(void) { uint8 res_mitad; res_mitad = PWM_RESOLUTION/2; sim.gpt[GPT_NUM].scr1=0; /* Turn the timer system off */ sim.gpt[GPT_NUM].ios=0x0f; /* Turn on output compare for all four channels */ sim.gpt[GPT_NUM].oc3m=0x07;/* Set up the condition for ch 3 output compare */ sim.gpt[GPT_NUM].oc3d=0x07;/* Set up the condition for ch 3 output compare */ sim.gpt[GPT_NUM].tov=0; /* No toggle on overflow */ sim.gpt[GPT_NUM].ctl1=0xAA; /* Set output to 0 on output compare */ sim.gpt[GPT_NUM].ctl2=0x00; /* No input capture */ sim.gpt[GPT_NUM].scr2=0x09; /* Enable ch 3 reset with sys clk prescale of 2 -> con este preescalado y el PWM_RESOLUTION A 1000 conseguimos frecuencia = 32kHz*/ sim.gpt[GPT_NUM].tie=0x00; /* No interrupts */ sim.gpt[GPT_NUM].c0=res_mitad; /* Set up the initial compare values */ sim.gpt[GPT_NUM].c3=PWM_RESOLUTION;

MEMORIA Anexo I sim.gpt[GPT_NUM].ddr=0x0F; /* Set all four channel pins as outputs. */ sim.gpt[GPT_NUM].scr1=0x90; /* Enable the timer */ }

void SetPWM(uint8 PWM_duty_dycle) { sim.gpt[GPT_NUM].c0=(PWM_duty_dycle/100)*PWM_RESOLUTION ; }

MEMORIA Anexo I /* Funciones para el manejo del conversor A/D y el * modulador de ancho de pulso. * * Autor: Modificado: Fernando Moreno Pérez * * Versión: 0.1 */ #ifndef Configuracion_h #define Configuracion_h #include "Constantes.h" /* Función: InitM5282Lite_ES * * Inicializa el generador de Chip Select del ColdFire para direccionar la * CPLD de la tarjeta M5282Lite-ES. * Es necesario llamar a esta función antes de usar los interruptores/LEDS * o el teclado. * * Versión: 0.0 */ void InitM5282Lite_ES(void); /* Funciones para el manejo del generador PWM*/ /* Función: InitPWM * * Inicializa la señal PWM en el pin GPTA0 del microprocesador, con *un DUTY_CYCLE del 50%, y una resolución igual al parámetro *definido como PWM_RESOLUTION (ha de ser 1000 para que la *frecuencia del PWM sea de 32kHz). * * Versión: 0.0 */ void InitPWM(void) /* Función: SetPWM * * Cambia el valor de comparación del PWM por el * valor del parámetro p0. * * Versión: 0.0 */ void SetPWM(int p0)

MEMORIA #endif

Anexo I

MEMORIA /*Constantes.h * Autor: Fernando Moreno * Última modificación: 6/Jun/2010 */ //Archivo .h que engloba todos includes utilizados.

Anexo I

los

defines

y

los

#ifndef CONSTANTES_H #define CONSTANTES_H #include "mcf5282.h" #include "M5282Lite-ES.h" //Includes del kernel #include #include #include #include #include

"FreeRTOS.h" "semphr.h" "task.h" "queue.h" "semphr.h"

//defines #define bits #define #define #define #define #define

SAT SAT_AD MAN_SAT1 MAN_SAT2 MEDIR_VEL INC_REF

32768

//16

1020 //10 bits 32768 32768 1 2

#define TAM_PILA 1024 #define PRIO_CONTROL 1 #define PRIO_ADCTASK 2 #define TRUE 1 #define FALSE 0 #define GPT_NUM 1 // 0 para GPTA, 1 para GPTB #define PWM_RESOLUTION 1000 #define ACELN_MAX 4 //G´s vienen dadas por el circuito de acondicionamiento #define PER_CTRL periodo de la tarea control sea 20 ms #endi

->

8 //Para que el

ANEXO 2

Archivos “.m” utilizados en Matlab

Inicializacion_PWM_con_filtro.m %Inicializacion Parametros Proyecto Control de Velocidad por Microprocesador s=tf('s'); % ----- SIN SIMULACION ----- % %PARAMETROS NUMERICOS Ke=5.8347; Km=5.8347; Kpot=14/3; Ks=1; Ki=1; R=35; %[ohm] L=5.6662e-5 * R %[H] M=0.7; %[kg] D=0.6703; tiempo_muestreo=550e-6; %dado por el micro ts=tiempo_muestreo; %PARAMETROS DE CONTROL %PI1 K_pi1 = 0.65; Ti_pi1 = 5.4; b_pi1 = 1; ts_pi1 = 10*tiempo_muestreo; %0.5e-3; sat_sup_man_pi1 = 0.4; %0.4; sat_inf_man_pi1 = -0.4; %-0.4; %PI2 K_pi2 = 3920.5; %OK Ti_pi2 = 3.38e-3; %OK b_pi2 = 1; %OK ts_pi2 = tiempo_muestreo; sat_sup_man_pi2 = 3; %1; sat_inf_man_pi2 = -3; %-1; OK=1

Page 1

ANEXO 3

Manual del microprocesador

Chapter 10 Interrupt Controller Modules This section details the functionality for the MCF5282 interrupt controllers (INTC0, INTC1). The general features of each of the interrupt controller include: • 63 interrupt sources, organized as: — 56 fully-programmable interrupt sources — 7 fixed-level interrupt sources • Each of the 63 sources has a unique interrupt control register (ICRnx) to define the software-assigned levels and priorities within the level • Unique vector number for each interrupt source • Ability to mask any individual interrupt source, plus global mask-all capability • Supports both hardware and software interrupt acknowledge cycles • “Wake-up” signal from low-power stop modes The 56 fully-programmable and seven fixed-level interrupt sources for each of the two interrupt controllers on the MCF5282 handle the complete set of interrupt sources from all of the modules on the device. This section describes how the interrupt sources are mapped to the interrupt controller logic and how interrupts are serviced.

10.1

68K/ColdFire Interrupt Architecture Overview

Before continuing with the specifics of the MCF5282 interrupt controllers, a brief review of the interrupt architecture of the 68K/ColdFire family is appropriate. The interrupt architecture of ColdFire is exactly the same as the M68000 family, where there is a 3-bit encoded interrupt priority level sent from the interrupt controller to the core, providing 7 levels of interrupt requests. Level 7 represents the highest priority interrupt level, while level 1 is the lowest priority. The processor samples for active interrupt requests once per instruction by comparing the encoded priority level against a 3-bit interrupt mask value (I) contained in bits 10:8 of the machine’s status register (SR). If the priority level is greater than the SR[I] field at the sample point, the processor suspends normal instruction execution and initiates interrupt exception processing. Level 7 interrupts are treated as non-maskable and edge-sensitive within the processor, while levels 1-6 are treated as level-sensitive and may be masked depending on the value of the SR[I] field. For correct operation, the ColdFire requires that, once asserted, the interrupt source remain asserted until explicitly disabled by the interrupt service routine. During the interrupt exception processing, the CPU enters supervisor mode, disables trace mode and then fetches an 8-bit vector from the interrupt controller. This byte-sized operand fetch is known as the interrupt acknowledge (IACK) cycle with the ColdFire implementation using a special encoding of the transfer type and transfer modifier attributes to distinguish this data fetch from a “normal” memory access. The fetched data provides an index into the exception vector table which contains 256 addresses, each pointing to the beginning of a specific exception service routine. In particular, vectors 64 - 255 of the exception vector table are reserved for user interrupt service routines. The first 64 exception vectors are reserved for the processor to handle reset, error conditions (access, address), arithmetic faults, system calls, etc. Once the interrupt vector number has been retrieved, the processor continues by creating a stack frame in memory. For ColdFire, all exception stack frames are 2 longwords in length, and contain 32 bits of vector and status register data, along with the 32-bit program counter value of the instruction that was interrupted (see Section 2.6, “Exception Stack Frame Definition” for more information on the stack frame format). After the exception stack frame is stored in memory, the processor accesses the 32-bit pointer from the exception vector table using the vector number as the offset, and then jumps to that address to begin execution of the MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

10-1

Interrupt Controller Modules

service routine. After the status register is stored in the exception stack frame, the SR[I] mask field is set to the level of the interrupt being acknowledged, effectively masking that level and all lower values while in the service routine. For many peripheral devices, the processing of the IACK cycle directly negates the interrupt request, while other devices require that request to be explicitly negated during the processing of the service routine. For the MCF5282, the processing of the interrupt acknowledge cycle is fundamentally different than previous 68K/ColdFire cores. In the new approach, all IACK cycles are directly handled by the interrupt controller, so the requesting peripheral device is not accessed during the IACK. As a result, the interrupt request must be explicitly cleared in the peripheral during the interrupt service routine. For more information, see Section 10.1.1.3, “Interrupt Vector Determination.” Unlike the M68000 family, all ColdFire processors guarantee that the first instruction of the service routine is executed before sampling for interrupts is resumed. By making this initial instruction a load of the SR, interrupts can be safely disabled, if required. During the execution of the service routine, the appropriate actions must be performed on the peripheral to negate the interrupt request. For more information on exception processing, see the ColdFire Programmer’s Reference Manual at http://www.freescale.com/coldfire.

10.1.1

Interrupt Controller Theory of Operation

To support the interrupt architecture of the 68K/ColdFire programming model, the combined 63 interrupt sources are organized as 7 levels, with each level supporting up to 9 prioritized requests. Consider the priority structure within a single interrupt level (from highest to lowest priority) as shown in Table 10-1. Table 10-1. Interrupt Priority Within a Level ICR[2:0]

Priority

Interrupt Sources

111

7 (Highest)

8-63

110

6

8-63

101

5

8-63

100

4

8-63



Fixed Midpoint Priority

1-7

011

3

8-63

010

2

8-63

001

1

8-63

000

0 (Lowest)

8-63

The level and priority is fully programmable for all sources except interrupt sources 1–7. Interrupt source 1–7 (from the Edgeport module) are fixed at the corresponding level’s midpoint priority. Thus, a maximum of 8 fully-programmable interrupt sources are mapped into a single interrupt level. The “fixed” interrupt source is hardwired to the given level, and represents the mid-point of the priority within the level. For the fully-programmable interrupt sources, the 3-bit level and the 3-bit priority within the level are defined in the 8-bit interrupt control register (ICRnx). The operation of the interrupt controller can be broadly partitioned into three activities: MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 10-2

Freescale Semiconductor

68K/ColdFire Interrupt Architecture Overview

• • •

Recognition Prioritization Vector Determination during IACK

10.1.1.1

Interrupt Recognition

The interrupt controller continuously examines the request sources and the interrupt mask register to determine if there are active requests. This is the recognition phase.

10.1.1.2

Interrupt Prioritization

As an active request is detected, it is translated into the programmed interrupt level, and the resulting 7-bit decoded priority level (IRQ[7:1]) is driven out of the interrupt controller. The decoded priority levels from all the interrupt controllers are logically summed together and the highest enabled interrupt request is then encoded into a 3-bit priority level that is sent to the processor core during this prioritization phase.

10.1.1.3

Interrupt Vector Determination

Once the core has sampled for pending interrupts and begun interrupt exception processing, it generates an interrupt acknowledge cycle (IACK). The IACK transfer is treated as a memory-mapped byte read by the processor, and routed to the appropriate interrupt controller. Next, the interrupt controller extracts the level being acknowledged from address bits[4:2], and then determines the highest priority interrupt request active for that level, and returns the 8-bit interrupt vector for that request to complete the cycle. The 8-bit interrupt vector is formed using the following algorithm: For INTC0,

vector_number = 64 + interrupt source number

For INTC1,

vector_number = 128 + interrupt source number

Recall vector_numbers 0 - 63 are reserved for the ColdFire processor and its internal exceptions. Thus, the following mapping of bit positions to vector numbers applies for the INTC0: if interrupt source 1 is active and acknowledged,

then vector_number =

65

if interrupt source 2 is active and acknowledged,

then vector_number =

66

if interrupt source 8 is active and acknowledged,

then vector_number =

72

if interrupt source 9 is active and acknowledged,

then vector_number =

73

...

... if interrupt source 62 is active and acknowledged,

then vector_number = 126

The net effect is a fixed mapping between the bit position within the source to the actual interrupt vector number. If there is no active interrupt source for the given level, a special “spurious interrupt” vector (vector_number = 24) is returned and it is the responsibility of the service routine to handle this error situation. Note this protocol implies the interrupting peripheral is not accessed during the acknowledge cycle since the interrupt controller completely services the acknowledge. This means the interrupt source must be explicitly disabled in the interrupt service routine. This design provides unique vector capability for all interrupt requests, regardless of the “complexity” of the peripheral device. MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

10-3

Interrupt Controller Modules

Vector numbers 64-71, and 91-255 are unused.

10.2

Memory Map

The register programming model for the interrupt controllers is memory-mapped to a 256-byte space. In the following discussion, there are a number of program-visible registers greater than 32 bits in size. For these control fields, the physical register is partitioned into two 32-bit values: a register “high” (the upper longword) and a register “low” (the lower longword). The nomenclature H and L is used to reference these values. The registers and their locations are defined in Table 10-3. The offsets listed start from the base address for each interrupt controller. The base addresses for the interrupt controllers are listed below: Table 10-2. Interrupt Controller Base Addresses Interrupt Controller Number

Base Address

INTC0

IPSBAR + 0xC00

INTC1 Global IACK Registers 1

IPSBAR + 0xD00 Space1

IPSBAR + 0xF00

This address space only contains the SWIACK and L1ACK-L7IACK registers. See Section 10.3.7, “Software and Level n IACK Registers (SWIACKR, L1IACK–L7IACK)" for more information

Table 10-3. Interrupt Controller Memory Map Module Offset

Bits[31:24]

Bits[23:16]

Bits[15:8]

Bits[7:0]

0x00

Interrupt Pending Register High (IPRH), [63:32]

0x04

Interrupt Pending Register Low (IPRL), [31:1]

0x08

Interrupt Mask Register High (IMRH), [63:32]

0x0c

Interrupt Mask Register Low (IMRL), [31:0]

0x10

Interrupt Force Register High (INTFRCH), [63:32]

0x14

Interrupt Force Register Low (INTFRCL), [31:1]

0x18

IRLR[7:1]

IACKLPR[7:0]

0x1c - 0x3c

Reserved

Reserved

0x40

Reserved

ICR01

ICR02

ICR03

0x44

ICR04

ICR05

ICR06

ICR07

0x48

ICR08

ICR09

ICR10

ICR11

0x4c

ICR12

ICR13

ICR14

ICR15

0x50

ICR16

ICR17

ICR18

ICR19

0x54

ICR20

ICR21

ICR22

ICR23

0x58

ICR24

ICR25

ICR26

ICR27

0x5C

ICR28

ICR29

ICR30

ICR31

0x60

ICR32

ICR33

ICR34

ICR35

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 10-4

Freescale Semiconductor

Register Descriptions

Table 10-3. Interrupt Controller Memory Map (continued) Module Offset

Bits[31:24]

Bits[23:16]

Bits[15:8]

Bits[7:0]

0x64

ICR36

ICR37

ICR38

ICR39

0x68

ICR40

ICR41

ICR42

ICR43

0x6C

ICR44

ICR45

ICR46

ICR47

0x70

ICR48

ICR49

ICR50

ICR51

0x74

ICR52

ICR53

ICR54

ICR55

0x78

ICR56

ICR57

ICR58

ICR59

0x7C

ICR60

ICR61

ICR62

ICR63

0x80-0xDC

10.3 10.3.1

Reserved

0xE0

SWIACK

Reserved

0xE4

L1IACK

Reserved

0xE8

L2IACK

Reserved

0xEC

L3IACK

Reserved

0xF0

L4IACK

Reserved

0xF4

L5IACK

Reserved

0xF8

L6IACK

Reserved

0xFC

L7IACK

Reserved

Register Descriptions Interrupt Pending Registers (IPRHn, IPRLn)

The IPRHn and IPRLn registers, Figure 10-1 and Figure 10-2, are each 32 bits in size, and provide a bit map for each interrupt request to indicate if there is an active request (1 = active request, 0 = no request) for the given source. The state of the interrupt mask register does not affect the IPRn. The IPRn is cleared by reset. The IPRn is a read-only register, so any attempted write to this register is ignored. Bit 0 is not implemented and reads as a zero.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

10-5

Chapter 19 Programmable Interrupt Timer Modules (PIT0–PIT3) 19.1

Overview

The programmable interrupt timer (PIT) is a 16-bit timer that provides precise interrupts at regular intervals with minimal processor intervention. The timer can either count down from the value written in the modulus register, or it can be a free-running down-counter. This device has four programmable interrupt timers, PIT0–PIT3.

19.2

Block Diagram IPBUS

System Clock

Divide by 2

16-bit PCNTR

Prescaler

COUNT = 0

16-bit PIT Counter

PIF

Load Counter EN PRE[3:0]

To Interrupt Controller

PIE

OVW

RLD

DOZE HALTED

16-bit PMR

IPBUS

Figure 19-1. PIT Block Diagram

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

19-1

Programmable Interrupt Timer Modules (PIT0–PIT3)

19.3

Low-Power Mode Operation

This subsection describes the operation of the PIT modules in low-power modes and halted mode of operation. Low-power modes are described in the Power Management Module. Table 19-1 shows the PIT module operation in low-power modes, and how it can exit from each mode. NOTE The low-power interrupt control register (LPICR) in the System Control Module specifies the interrupt level at or above which the device can be brought out of a low-power mode. Table 19-1. PIT Module Operation in Low-power Modes Low-power Mode

PIT Operation

Mode Exit

Wait

Normal if PCR[WAIT] cleared, stopped otherwise

Any IRQx Interrupt at or above level in LPICR

Doze

Normal if PCR[DOZE] cleared, stopped otherwise

Any IRQx Interrupt at or above level in LPICR

Stop

Stopped

Halted

Normal if PCR[HALTED] cleared, stopped otherwise

No No. Any IRQx Interrupt will be serviced upon normal exit from halted mode

In wait mode, the PIT module continues to operate as in run mode and can be configured to exit the low-power mode by generating an interrupt request. In doze mode with the PCSR[DOZE] bit set, PIT module operation stops. In doze mode with the PCSR[DOZE] bit cleared, doze mode does not affect PIT operation. When doze mode is exited, the PIT continues to operate in the state it was in prior to doze mode. In stop mode, the system clock is absent, and PIT module operation stops. In halted mode with the PCSR[HALTED] bit set, PIT module operation stops. In halted mode with the PCSR[HALTED] bit cleared, halted mode does not affect PIT operation. When halted mode is exited, the PIT continues to operate in its pre-halted mode state, but any updates made in halted mode remain.

19.4

Signals

The PIT module has no off-chip signals.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 19-2

Freescale Semiconductor

Memory Map and Registers

19.5

Memory Map and Registers

This subsection describes the memory map and register structure for PIT0–PIT3.

19.5.1

Memory Map

Refer to Table 19-2 for a description of the memory map. This device has four programmable interrupt timers with the following IPSBAR offset for base address locations for each timer. PIT0: 0x0015_0000 PIT1: 0x0016_0000 PIT2: 0x0017_0000 PIT3: 0x0018_0000 Table 19-2. Programmable Interrupt Timer Modules Memory Map IPSBAR Offset for PITx Address

Bits 15–8

Bits 7–0

Access1

0x001x_0000

PIT Control and Status Register (PCSR)

S

0x001x_0002

PIT Modulus Register (PMR)

S

0x001x_0004

PIT Count Register (PCNTR)

S/U

0x001x_0006

Unimplemented2



1

S = CPU supervisor mode access only. S/U = CPU supervisor or user mode access. User mode accesses to supervisor only addresses have no effect and result in a cycle termination transfer error. 2 Accesses to unimplemented address locations have no effect and result in a cycle termination transfer error.

19.5.2

Registers

The PIT programming model consists of these registers: • The PIT control and status register (PCSR) configures the timer’s operation. • The PIT modulus register (PMR) determines the timer modulus reload value. • The PIT count register (PCNTR) provides visibility to the counter value.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

19-3

Programmable Interrupt Timer Modules (PIT0–PIT3)

19.5.2.1

PIT Control and Status Register (PCSR) 15

12

Field



Reset

Address

9

8

PRE3

PRE2

PRE1

PRE0

R

R/W

7

6

5

4

3

2

1

0



DOZE

HALTED

OVW

PIE

PIF

RLD

EN

Reset R/W

10

0000_0000

R/W

Field

11

0000_0000 R

R/W

IPSBAR + 0x0015_0000 and 0x0015_0001 (PIT0); 0x0016_0000 and 0x0016_0001 (PIT1); 0x0017_0000 and 0x0017_0001 (PIT2); 0x0018_0000 and 0x0018_0001 (PIT3)

Figure 19-2. PIT Control and Status Register (PCSR) Table 19-3. PCSR Field Descriptions Bit(s)

Name

15–12



11–8

PRE

7



Description Reserved, should be cleared. Prescaler. The read/write prescaler bits select the system clock divisor to generate the PIT clock. To accurately predict the timing of the next count, change the PRE[3:0] bits only when the enable bit (EN) is clear. Changing the PRE[3:0] resets the prescaler counter. System reset and the loading of a new value into the counter also reset the prescaler counter. Setting the EN bit and writing to PRE[3:0] can be done in this same write cycle. Clearing the EN bit stops the prescaler counter.

PRE

System Clock Divisor

PRE

System Clock Divisor

0000

2

1000

512

0001

4

1001

1,024

0010

8

1010

2,048

0011

16

1011

4,096

0100

32

1100

8,192

0101

64

1101

16,384

0110

128

1110

32,768

0111

256

1111

65,536

Reserved.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 19-4

Freescale Semiconductor

Memory Map and Registers

Table 19-3. PCSR Field Descriptions (continued) Bit(s)

Name

Description

6

DOZE

Doze mode bit. The read/write DOZE bit controls the function of the PIT in doze mode. Reset clears DOZE. 0 PIT function not affected in doze mode 1 PIT function stopped in doze mode When doze mode is exited, timer operation continues from the state it was in before entering doze mode.

5

HALTED

Halted mode bit. Controls the function of the PIT in halted mode. Reset clears HALTED. During halted mode, register read and write accesses function normally. When halted mode is exited, timer operation continues from the state it was in before entering halted mode, but any updates made in halted mode remain. 0 PIT function not affected in halted mode 1 PIT function stopped in halted mode Note: Changing the HALTED bit from 1 to 0 during halted mode starts the PIT timer. Likewise, changing the HALTED bit from 0 to 1 during halted mode stops the PIT timer.

4

OVW

Overwrite. Enables writing to PMR to immediately overwrite the value in the PIT counter. 0 Value in PMR replaces value in PIT counter when count reaches 0x0000. 1 Writing PMR immediately replaces value in PIT counter.

3

PIE

PIT interrupt enable. This read/write bit enables the PIF flag to generate interrupt requests. 0 PIF interrupt requests disabled 1 PIF interrupt requests enabled

2

PIF

PIT interrupt flag. This read/write bit is set when the PIT counter reaches 0x0000. Clear PIF by writing a 1 to it or by writing to PMR. Writing 0 has no effect. Reset clears PIF. 0 PIT count has not reached 0x0000. 1 PIT count has reached 0x0000.

1

RLD

Reload bit. The read/write reload bit enables loading the value of PMR into the PIT counter when the count reaches 0x0000. 0 Counter rolls over to 0xFFFF on count of 0x0000 1 Counter reloaded from PMR on count of 0x0000

0

EN

19.5.2.2

PIT enable bit. Enables PIT operation. When the PIT is disabled, the counter and prescaler are held in a stopped state. This bit is read anytime, write anytime. 0 PIT disabled 1 PIT enabled

PIT Modulus Register (PMR)

The 16-bit read/write PMR contains the timer modulus value that is loaded into the PIT counter when the count reaches 0x0000 and the PCSR[RLD] bit is set. When the PCSR[OVW] bit is set, PMR is transparent, and the value written to PMR is immediately loaded into the PIT counter. The prescaler counter is reset anytime a new value is loaded into the PIT counter and also during reset. Reading the PMR returns the value written in the modulus latch. Reset initializes PMR to 0xFFFF.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

19-5

Programmable Interrupt Timer Modules (PIT0–PIT3)

Field

15

14

13

12

11

10

9

8

PM15

PM14

PM13

PM12

PM11

PM10

PM9

PM8

Reset

1111_1111

R/W

Field

R/W 7

6

5

4

3

2

1

0

PM7

PM6

PM5

PM4

PM3

PM2

PM1

PM0

Reset

1111_1111

R/W

R/W

Address IPSBAR + 0x0015_0002 and 0x0015_0003 (PIT0); 0x0016_0002 and 0x0016_0003 (PIT1); 0x0017_0002 and 0x0017_0003 (PIT2); 0x0018_0002 and 0x0018_0003 (PIT3)

Figure 19-3. PIT Modulus Register (PMR)

19.5.2.3

PIT Count Register (PCNTR)

The 16-bit, read-only PCNTR contains the counter value. Reading the 16-bit counter with two 8-bit reads is not guaranteed to be coherent. Writing to PCNTR has no effect, and write cycles are terminated normally.

Field

15

14

13

12

11

10

9

8

PC15

PC14

PC13

PC12

PC11

PC10

PC9

PC8

Reset

1111_1111

R/W

Field

R 7

6

5

4

3

2

1

0

PC7

PC6

PC5

PC4

PC3

PC2

PC1

PC0

Reset

1111_1111

R/W Address

R IPSBAR + 0x0015_0004 and 0x0015_0005 (PIT0), 0x0016_0004 and 0x0016_0005 (PIT1), 0x0017_0004 and 0x0017_0005 (PIT2), 0x0018_0004 and 0x0018_0005 (PIT3)

Figure 19-4. PIT Count Register (PCNTR)

19.6

Functional Description

This subsection describes the PIT functional operation.

19.6.1

Set-and-Forget Timer Operation

This mode of operation is selected when the RLD bit in the PCSR register is set. When the PIT counter reaches a count of 0x0000, the PIF flag is set in PCSR. The value in the modulus register is loaded into the counter, and the counter begins decrementing toward 0x0000. If the PIE bit is set in PCSR, the PIF flag issues an interrupt request to the CPU.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 19-6

Freescale Semiconductor

Interrupt Operation

When the OVW bit is set in PCSR, the counter can be directly initialized by writing to PMR without having to wait for the count to reach 0x0000.

PIT CLOCK COUNTER

0x0002

0x0001

MODULUS

0x0000

0x0005

0x0005

PIF

Figure 19-5. Counter Reloading from the Modulus Latch

19.6.2

Free-Running Timer Operation

This mode of operation is selected when the RLD bit in PCSR is clear. In this mode, the counter rolls over from 0x0000 to 0xFFFF without reloading from the modulus latch and continues to decrement. When the counter reaches a count of 0x0000, the PIF flag is set in PCSR. If the PIE bit is set in PCSR, the PIF flag issues an interrupt request to the CPU. When the OVW bit is set in PCSR, the counter can be directly initialized by writing to PMR without having to wait for the count to reach 0x0000.

PIT CLOCK COUNTER

0x0002

0x0001

MODULUS

0x0000

0xFFFF

0x0005

PIF

Figure 19-6. Counter in Free-Running Mode

19.6.3

Timeout Specifications

The 16-bit PIT counter and prescaler supports different timeout periods. The prescaler divides the system clock as selected by the PRE[3:0] bits in PCSR. The PM[15:0] bits in PMR select the timeout period.

PRE[3:0] × (PM[15:0] + 1) × 2 Timeout period = --------------------------------------------------------------------------system clock

19.7

Interrupt Operation

Table 19-4 shows the interrupt request generated by the PIT.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

19-7

Programmable Interrupt Timer Modules (PIT0–PIT3)

Table 19-4. PIT Interrupt Requests Interrupt Request

Flag

Enable Bit

Timeout

PIF

PIE

The PIF flag is set when the PIT counter reaches 0x0000. The PIE bit enables the PIF flag to generate interrupt requests. Clear PIF by writing a 1 to it or by writing to the PMR.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 19-8

Freescale Semiconductor

Chapter 20 General Purpose Timer Modules (GPTA and GPTB) The MCF5282 has two 4-channel general purpose timer modules (GPTA and GPTB). Each consists of a 16-bit counter driven by a 7-stage programmable prescaler. A timer overflow function allows software to extend the timing capability of the system beyond the 16-bit range of the counter. Each of the four timer channels can be configured for input capture, which can capture the time of a selected transition edge, or for output compare, which can generate output waveforms and timer software delays. These functions allow simultaneous input waveform measurements and output waveform generation. Additionally, one of the channels, channel 3, can be configured as a 16-bit pulse accumulator that can operate as a simple event counter or as a gated time accumulator. The pulse accumulator uses the GPT channel 3 input/output pin in either event mode or gated time accumulation mode.

20.1

Features

Features of the general-purpose timer include: • Four 16-bit input capture/output compare channels • 16-bit architecture • Programmable prescaler • Pulse widths variable from microseconds to seconds • Single 16-bit pulse accumulator • Toggle-on-overflow feature for pulse-width modulator (PWM) generation • External timer clock input (SYNCA/SYNCB)

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

20-1

General Purpose Timer Modules (GPTA and GPTB)

20.2

Block Diagram CLK[1:0] System Clock

SYNCx Pin

PR[2:0] PACLK PACLK/256 PACLK/65536

Divide by 2

MUX

Channel 3 Output Compare

X

Prescaler

TCRE CxI

GPTCNTH:GPTCNTL

CxF Clear Counter 16-Bit Counter

TOF

Interrupt Logic

TOI

TE

Interrupt Request

Channel 0 16-Bit Comparator

Edge Detect

C0F

IOS0

CH. 0 Capture PT0 LOGIC

GPTC0H:GPTC0L 16-Bit Latch

EDG0A

OM:OL0

EDG0B

TOV0

CH. 0 Compare

GPTx0 Pin

CHANNEL 1 16-Bit Comparator

Edge Detect

C1F

IOS1

CH. 1 Capture

GPTC1H:GPTC1L 16-Bit Latch

EDG1A

OM:OL1

EDG1B

TOV1

PT1 LOGIC

CH. 1 Compare

GPTx1 Pin

Channel 2 Channel3 16-Bit Comparator

Edge Detect

C3F

IOS3 PT3 LOGIC

GPTC3H:GPTC3L 16-Bit Latch

EDG3A

OM:OL3

EDG3B

TOV3 PEDGE

PAOVF

GPTPACNTH:GPTPACNTL

PACLK/256 Interrupt Request

Interrupt Logic

GPTx3 Pin

PAIF

MUX PACLK

CH. 3 Compare

EDGE DETECT

PAE

16-Bit Counter

PACLK/65536

CH.3 Capture PA Input

Divide-by-64

Divide by 2

System Clock

PAMOD

PAOVI

PAI

PAOVF

PAIF

Figure 20-1. GPT Block Diagram

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 20-2

Freescale Semiconductor

Low-Power Mode Operation

20.3

Low-Power Mode Operation

This subsection describes the operation of the general purpose time module in low-power modes and halted mode of operation. Low-power modes are described in the Power Management Module. Table 3-1 shows the general purpose timer module operation in the low-power modes, and shows how this module may facilitate exit from each mode. Table 20-1. Watchdog Module Operation in Low-power Modes Low-power Mode

Watchdog Operation

Mode Exit

Wait

Normal

No

Doze

Normal

No

Stop

Stopped

No

Halted

Normal

No

General purpose timer operation stops in stop mode. When stop mode is exited, the general purpose timer continues to operate in its pre-stop mode state.

20.4

Signal Description

Table 20-2 provides an overview of the signal properties. NOTE Throughout this section, an “n” in the pin name, as in “GPTn0,” designates GPTA or GPTB. Table 20-2. Signal Properties

1

20.4.1

Pin Name

GPTPORT Register Bit

GPTn0

PORTTn0

GPTn1

Function

Reset State

Pull-up

GPTn channel 0 IC/OC pin

Input

Active

PORTTn1

GPTn channel 1 IC/OC pin

Input

Active

GPTn2

PORTTn2

GPTn channel 2 IC/OC pin

Input

Active

GPTn3

PORTTn3

GPTn channel 3 IC/OC or PA pin

Input

Active

SYNCn

PORTE[3:0]1

GPTn counter synchronization

Input

Active

SYNCA is available on either PORTE3 or PORTE1; SYNCB is available on either PORTE2 or PORTE0.

GPTn[2:0]

The GPTn[2:0] pins are for channel 2–0 input capture and output compare functions. These pins are available for general-purpose input/output (I/O) when not configured for timer functions.

20.4.2

GPTn3

The GPTn3 pin is for channel 3 input capture and output compare functions or for the pulse accumulator input. This pin is available for general-purpose I/O when not configured for timer functions. MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

20-3

General Purpose Timer Modules (GPTA and GPTB)

20.4.3

SYNCn

The SYNCn pin is for synchronization of the timer counter. It can be used to synchronize the counter with externally-timed or clocked events. A high signal on this pin clears the counter.

20.5

Memory Map and Registers

See Table 20-3 for a memory map of the two GPT modules. GPTA has a base address of IPSBAR + 0x1A_0000. GPTB has a base address of IPSBAR + 0x1B_0000. NOTE Reading reserved or unimplemented locations returns zeroes. Writing to reserved or unimplemented locations has no effect. Table 20-3. GPT Modules Memory Map IPSBAR Offset Bits 7–0

Access1

GPTA

GPTB

0x1A_0000

0x1B_0000

GPT IC/OC Select Register (GPTIOS)

S

0x1A_0001

0x1B_0001

GPT Compare Force Register (GPTCFORC)

S

0x1A_0002

0x1B_0002

GPT Output Compare 3 Mask Register (GPTOC3M)

S

0x1A_0003

0x1B_0003

GPT Output Compare 3 Data Register (GPTOC3D)

S

0x1A_0004

0x1B_0004

GPT Counter Register (GPTCNT)

S

0x1A_0006

0x1B_0006

GPT System Control Register 1 (GPTSCR1)

S

0x1A_0007

0x1B_0007

Reserved2



0x1A_0008

0x1B_0008

GPT Toggle-on-Overflow Register (GPTTOV)

S

0x1A_0009

0x1B_0009

GPT Control Register 1 (GPTCTL1)

S

0x1A_000A

0x1B_000a

Reserved(2)



0x1A_000B

0x1B_000b

GPT Control Register 2 (GPTCTL2)

S

0x1A_000C

0x1B_000c

GPT Interrupt Enable Register (GPTIE)

S

0x1A_000D

0x1B_000d

GPT System Control Register 2 (GPTSCR2)

S

0x1A_000E

0x1B_000e

GPT Flag Register 1 (GPTFLG1)

S

0x1A_000F

0x1B_000f

GPT Flag Register 2 (GPTFLG2)

S

0x1A_0010

0x1B_0010

GPT Channel 0 Register High (GPTC0H)

S

0x1A_0011

0x1Bb_0011

GPT Channel 0 Register Low (GPTC0L)

S

0x1A_0012

0x1B_0012

GPT Channel 1 Register High (GPTC1H)

S

0x1A_0013

0x1B_0013

GPT Channel 1 Register Low (GPTC1L)

S

0x1A_0014

0x1B_0014

GPT Channel 2 Register High (GPTC2H)

S

0x1A_0015

0x1B_0015

GPT Channel 2 Register Low (GPTC2L)

S

0x1A_0016

0x1B_0016

GPT Channel 3 Register High (GPTC3H)

S

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 20-4

Freescale Semiconductor

Memory Map and Registers

Table 20-3. GPT Modules Memory Map (continued) IPSBAR Offset

1 2

Bits 7–0

Access1

GPTA

GPTB

0x1A_0017

0x1B_0017

GPT Channel 3 Register Low (GPTC3L)

S

0x1A_0018

0x1B_0018

Pulse Accumulator Control Register (GPTPACTL)

S

0x1A_0019

0x1B_0019

Pulse Accumulator Flag Register (GPTPAFLG)

S

0x1A_001A

0x1B_001A

Pulse Accumulator Counter Register High (GPTPACNTH)

S

0x1A_001B

0x1B_001B

Pulse Accumulator Counter Register Low (GPTPACNTL)

S

(2)

0x1A_001C

0x1B_001C

Reserved



0x1A_001D

0x1B_001D

GPT Port Data Register (GPTPORT)

S

0x1A_001E

0x1B_001E

GPT Port Data Direction Register (GPTDDR)

S

0x1A_001F

0x1B_001F

GPT Test Register (GPTTST)

S

S = CPU supervisor mode access only. Writes have no effect, reads return 0s, and the access terminates without a transfer error exception.

20.5.1

GPT Input Capture/Output Compare Select Register (GPTIOS) 7

Field Reset

4

0

IOS 0000_0000

R/W Address

3



R/W IPSBAR + 0x401A_0000, 0x401B_0000

Figure 20-2. GPT Input Capture/Output Compare Select Register (GPTIOS) Table 20-4. GPTIOS Field Descriptions Bit(s)

Name

7–4



3–0

IOS

Description Reserved, should be cleared. I/O select. The IOS[3:0] bits enable input capture or output compare operation for the corresponding timer channels. These bits are read anytime (always read 0x00), write anytime. 1 Output compare enabled 0 Input capture enabled

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

20-5

General Purpose Timer Modules (GPTA and GPTB)

20.5.2

GPT Compare Force Register (GPCFORC) 7

Field

4

3



Reset

0

FOC 0000_0000

R/W

R/W

Address

IPSBAR + 0x1A_00001, 0x1B_0001

Figure 20-3. GPT Input Compare Force Register (GPCFORC) Table 20-5. GPTCFORC Field Descriptions Bit(s)

Name

7–4



3–0

FOC

Description Reserved, should be cleared. Force output compare.Setting an FOC bit causes an immediate output compare on the corresponding channel. Forcing an output compare does not set the output compare flag. These bits are read anytime, write anytime. 1 Force output compare 0 No effect

NOTE A successful channel 3 output compare overrides any compare on channels 2:0. For each OC3M bit that is set, the output compare action reflects the corresponding OC3D bit.

20.5.3

GPT Output Compare 3 Mask Register (GPTOC3M) 7

Field Reset R/W Address

4

3



0

OC3M 0000_0000 R/W IPSBAR + 0x1A_0002, 0x1B_0002

Figure 20-4. GPT Output Compare 3 Mask Register (GPTOC3M)

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 20-6

Freescale Semiconductor

Memory Map and Registers

Table 20-6. GPTOC3M Field Descriptions Bit(s)

Name

7–4



3–0

OC3M

20.5.4

Description Reserved, should be cleared. Output compare 3 mask. Setting an OC3M bit configures the corresponding PORTTn pin to be an output. OC3Mn makes the GPT port pin an output regardless of the data direction bit when the pin is configured for output compare (IOSx = 1). The OC3Mn bits do not change the state of the PORTTnDDR bits. These bits are read anytime, write anytime. 1 Corresponding PORTTn pin configured as output 0 No effect

GPT Output Compare 3 Data Register (GPTOC3D) 7

Field

4

3



Reset

0

OC3D 0000_0000

R/W

R/W

Address

IPSBAR + 0x1A_0003, 0x1B_0003

Figure 20-5. GPT Output Compare 3 Data Register (GPTOC3D) Table 20-7. GPTOC3D Field Descriptions Bit(s)

Name

7–4



3–0

OC3D

Description Reserved, should be cleared. Output compare 3 data. When a successful channel 3 output compare occurs, these bits transfer to the PORTTn data register if the corresponding OC3Mn bits are set. These bits are read anytime, write anytime.

NOTE A successful channel 3 output compare overrides any channel 2:0 compares. For each OC3M bit that is set, the output compare action reflects the corresponding OC3D bit.

20.5.5

GPT Counter Register (GPTCNT) 15

0

Field

CNTR

Reset

0000_0000_0000_0000

R/W Address

Read only IPSBAR + 0x1A_0004, 0x1B_0004

Figure 20-6. GPT Counter Register (GPTCNT)

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

20-7

General Purpose Timer Modules (GPTA and GPTB)

Table 20-8. GPTCNT Field Descriptions Bit(s)

Name

Description

15–0

CNTR

Read-only field that provides the current count of the timer counter. To ensure coherent reading of the timer counter, such that a timer rollover does not occur between two back-to-back 8-bit reads, it is recommended that only word (16-bit) accesses be used. A write to GPTCNT may have an extra cycle on the first count because the write is not synchronized with the prescaler clock. The write occurs at least one cycle before the synchronization of the prescaler clock. These bits are read anytime. They should be written to only in test (special) mode; writing to them has no effect in normal modes.

20.5.6

GPT System Control Register 1 (GPTSCR1) 7

Field

6

GPTEN

Reset

5



4

TFFCA

0



0000_0000

R/W Address

3

R/W IPSBAR + 0x1A_0006, 0x1B_0006

Figure 20-7. GPT System Control Register 1 (GPTSCR1) Table 20-9. GPTSCR1 Field Descriptions Bit(s)

Name

Description

7

GPTEN

Enables the general purpose timer. When the timer is disabled, only the registers are accessible. Clearing GPTEN reduces power consumption. These bits are read anytime, write anytime. 1 GPT enabled 0 GPT and GPT counter disabled

6–5



4

TFFCA

3–0



Reserved, should be cleared. Timer fast flag clear all. Enables fast clearing of the main timer interrupt flag registers (GPTFLG1 and GPTFLG2) and the PA flag register (GPTPAFLG). TFFCA eliminates the software overhead of a separate clear sequence. See Figure 20-8. When TFFCA is set: • An input capture read or a write to an output compare channel clears the corresponding channel flag, CxF. • Any access of the GPT count registers (GPTCNTH/L) clears the TOF flag. • Any access of the PA counter registers (GPTPACNT) clears both the PAOVF and PAIF flags in GPTPAFLG. Writing logic 1s to the flags clears them only when TFFCA is clear. 1 Fast flag clearing 0 Normal flag clearing Reserved, should be cleared.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 20-8

Freescale Semiconductor

Memory Map and Registers

Write GPTFLG1 Register Data Bit n CnF Clear CnF Flag

TFFCA

Read GPTCn Registers Write GPTCn Registers

Figure 20-8. Fast Clear Flag Logic

20.5.7

GPT Toggle-On-Overflow Register (GPTTOV) 7

6

Field

5

4

3

0



TOV

Reset

0000_0000

R/W

R/W

Address

IPSBAR + 0x1A_0008, 0x1B_0008

Figure 20-9. GPT Toggle-On-Overflow Register (GPTTOV) Table 20-10. GPTTOV Field Description Bit(s)

Name

7–4



3–0

TOV

20.5.8

Description Reserved, should be cleared. Toggles the output compare pin on overflow for each channel. This feature only takes effect when in output compare mode. When set, it takes precedence over forced output compare but not channel 3 override events. These bits are read anytime, write anytime. 1 Toggle output compare pin on overflow feature enabled 0 Toggle output compare pin on overflow feature disabled

GPT Control Register 1 (GPTCTL1)

Field Reset R/W Address

7

6

5

4

3

2

1

0

OM3

OL3

OM2

OL2

OM1

OL1

OM0

OL0

0000_0000 R/W IPSBAR + 0x1A_0009, 0x1B_0009

Figure 20-10. GPT Control Register 1 (GPTCTL1)

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

20-9

General Purpose Timer Modules (GPTA and GPTB)

Table 20-11. GPTCL1 Field Descriptions Bit(s)

Name

Description

7–0

OMx/OLx

Output mode/output level. Selects the output action to be taken as a result of a successful output compare on each channel. When either OMn or OLn is set and the IOSn bit is set, the pin is an output regardless of the state of the corresponding DDR bit. These bits are read anytime, write anytime. 00 GPT disconnected from output pin logic 01 Toggle OCn output line 10 Clear OCn output line 11 Set OCn line Note: Channel 3 shares a pin with the pulse accumulator input pin. To use the PAI input, clear both the OM3 and OL3 bits and clear the OC3M3 bit in the output compare 3 mask register.

20.5.9

GPT Control Register 2 (GPTCTL2) 7

Field

6

EDG3B

5

4

3

2

1

EDG3A EDG2B EDG2A EDG1B EDG1A EDG0B

Reset

0

EDG0A

0000_0000

R/W

R/W

Address

IPSBAR + 0x1A_000B, 0x1B_000B

Figure 20-11. GPT Control Register 2 (GPTCTL2) Table 20-12. GPTLCTL2 Field Descriptions Bit(s)

Name

7–0

EDGn[B:A]

Description Input capture edge control. Configures the input capture edge detector circuits for each channel. These bits are read anytime, write anytime. 00 Input capture disabled 01 Input capture on rising edges only 10 Input capture on falling edges only 11 Input capture on any edge (rising or falling)

20.5.10 GPT Interrupt Enable Register (GPTIE) 7

Field Reset R/W Address

6

5

4

3



0

CI 0000_0000 R/W IPSBAR + 0x1A_000C, 0x1B_000C

Figure 20-12. GPT Interrupt Enable Register (GPTIE)

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 20-10

Freescale Semiconductor

Memory Map and Registers

Table 20-13. GPTIE Field Descriptions Bit(s)

Name

Description

7–4



Reserved, should be cleared.

3–0

CnI

Channel interrupt enable. Enables the C[3:0]F flags in GPT flag register 1 to generate interrupt requests for each channel. These bits are read anytime, write anytime. 1 Corresponding channel interrupt requests enabled 0 Corresponding channel interrupt requests disabled

20.5.11 GPT System Control Register 2 (GPTSCR2)

Field Reset

7

6

5

4

3

TOI



PUPT

RDPT

TCRE

0

PR

0000_0000

R/W Address

2

R/W IPSBAR + 0x1A_000D, 0x1B_000D

Figure 20-13. GPT System Control Register 2 (GPTSCR2) Table 20-14. GPTSCR2 Field Descriptions Bit(s)

Name

Description

7

TOI

6



5

PUPT

Enables pull-up resistors on the GPT ports when the ports are configured as inputs. 1 Pull-up resistors enabled 0 Pull-up resistors disabled

4

RDPT

GPT drive reduction. Reduces the output driver size. 1 Output drive reduction enabled 0 Output drive reduction disabled

3

TCRE

Enables a counter reset after a channel 3 compare. 1 Counter reset enabled 0 Counter reset disabled Note: When the GPT channel 3 registers contain 0x0000 and TCRE is set, the GPT counter registers remain at 0x0000 all the time. When the GPT channel 3 registers contain 0xFFFF and TCRE is set, TOF does not get set even though the GPT counter registers go from 0xFFFF to 0x0000.

Enables timer overflow interrupt requests. 1 Overflow interrupt requests enabled 0 Overflow interrupt requests disabled Reserved, should be cleared.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

20-11

General Purpose Timer Modules (GPTA and GPTB)

Table 20-14. GPTSCR2 Field Descriptions (continued) Bit(s)

Name

Description

2–0

PRn

Prescaler bits. Select the prescaler divisor for the GPT counter. 000 Prescaler divisor 1 001 Prescaler divisor 2 010 Prescaler divisor 4 011 Prescaler divisor 8 100 Prescaler divisor 16 101 Prescaler divisor 32 110 Prescaler divisor 64 111 Prescaler divisor 128 Note: The newly selected prescaled clock does not take effect until the next synchronized edge of the prescaled clock when the clock count transitions to 0x0000.)

20.5.12 GPT Flag Register 1 (GPTFLG1) 7

6

Field

5

4

3



0

CF

Reset

0000_0000

R/W

R/W

Address

IPSBAR + 0x1A_000E, 0x1B_000E

Figure 20-14. GPT Flag Register 1 (GPTFLG1) Table 20-15. GPTFLG1 Field Descriptions Bit(s)

Name

7–4



3–0

CnF

Description Reserved, should be cleared. Channel flags. A channel flag is set when an input capture or output compare event occurs. These bits are read anytime, write anytime (writing 1 clears the flag, writing 0 has no effect). Note: When the fast flag clear all bit, GPTSCR1[TFFCA], is set, an input capture read or an output compare write clears the corresponding channel flag. When a channel flag is set, it does not inhibit subsequent output compares or input captures.

20.5.13 GPT Flag Register 2 (GPTFLG2) 7

Field Reset R/W Address

TOF

6

5

4

3



0

CF 0000_0000 R/W

IPSBAR + 0x1A_000F, 0x1B_000F

Figure 20-15. GPT Flag Register 2 (GPTFLG2)

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 20-12

Freescale Semiconductor

Memory Map and Registers

Table 20-16. GPTFLG2 Field Descriptions Bit(s)

Name

Description

7

TOF

Timer overflow flag. Set when the GPT counter rolls over from 0xFFFF to 0x0000. If the TOI bit in GPTSCR2 is also set, TOF generates an interrupt request. This bit is read anytime, write anytime (writing 1 clears the flag, and writing 0 has no effect). 1 Timer overflow 0 No timer overflow Note: When the GPT channel 3 registers contain 0xFFFF and TCRE is set, TOF does not get set even though the GPT counter registers go from 0xFFFF to 0x0000. When TOF is set, it does not inhibit subsequent overflow events.

6–4



3–0

CnF

Reserved, should be cleared. Channel flags. A channel flag is set when an input capture or output compare event occurs. These bits are read anytime, write anytime (writing 1 clears the flag, writing 0 has no effect).

Note: When the fast flag clear all bit, GPTSCR1[TFFCA], is set, any access to the GPT counter registers clears GPT flag register 2.

20.5.14 GPT Channel Registers (GPTCn) 15

0

Field

CCNT

Reset

0000_0000_0000_0000

R/W

R/W

Address

IPSBAR + 0x1A_0010, 0x1A_0012, 0x1A_0014, 0x1A_0016, 0x1B_0010, 0x1B_0012, 0x1B_0014, 0x1B_0016

Figure 20-16. GPT Channel[0:3] Register (GPTCn) Table 20-17. GPTCn Field Descriptions Bit(s)

Name

Description

15–0

CCNT

When a channel is configured for input capture (IOSn = 0), the GPT channel registers latch the value of the free-running counter when a defined transition occurs on the corresponding input capture pin. When a channel is configured for output compare (IOSn = 1), the GPT channel registers contain the output compare value. To ensure coherent reading of the GPT counter, such that a timer rollover does not occur between back-to-back 8-bit reads, it is recommended that only word (16-bit) accesses be used. These bits are read anytime, write anytime (for the output compare channel); writing to the input capture channel has no effect.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

20-13

General Purpose Timer Modules (GPTA and GPTB)

20.5.15 Pulse Accumulator Control Register (GPTPACTL)

Field Reset

7

6



PAE

5

4

3

PAMOD PEDGE

0

CLK

PAOVI

PAI

0000_0000

R/W

R/W

Address

IPSBAR + 0x1A_0018, 0x1B_0018

Figure 20-17. Pulse Accumulator Control Register (GPTPACTL) Table 20-18. GPTPACTL Field Descriptions Bit(s)

Name

Description

7



6

PAE

5

PAMOD

Pulse accumulator mode. Selects event counter mode or gated time accumulation mode. 1 Gated time accumulation mode 0 Event counter mode

4

PEDGE

Pulse accumulator edge. Selects falling or rising edges on the PAI pin to increment the counter. In event counter mode (PAMOD = 0): 1 Rising PAI edge increments counter 0 Falling PAI edge increments counter In gated time accumulation mode (PAMOD = 1): 1 Low PAI input enables divide-by-64 clock to pulse accumulator and trailing rising edge on PAI sets PAIF flag. 0 High PAI input enables divide-by-64 clock to pulse accumulator and trailing falling edge on PAI sets PAIF flag. Note: The timer prescaler generates the divide-by-64 clock. If the timer is not active, there is no divide-by-64 clock. To operate in gated time accumulation mode: 1. Apply logic 0 to RSTI pin. 2. Initialize registers for pulse accumulator mode test. 3. Apply appropriate level to PAI pin. 4. Enable GPT.

3–2

CLK

Select the GPT counter input clock. Changing the CLK bits causes an immediate change in the GPT counter clock input. 00 GPT prescaler clock (When PAE = 0, the GPT prescaler clock is always the GPT counter clock.) 01 PACLK 10 PACLK/256 11 PACLK/65536

Reserved, should be cleared. Enables the pulse accumulator. 1 Pulse accumulator enabled 0 Pulse accumulator disabled Note: The pulse accumulator can operate in event mode even when the GPT enable bit, GPTEN, is clear.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 20-14

Freescale Semiconductor

Chapter 28 Queued Analog-to-Digital Converter (QADC) The queued analog-to-digital converter (QADC) is a 10-bit, unipolar, successive approximation converter. Up to eight analog input channels can be supported using internal multiplexing. A maximum of 18 input channels can be supported in the expanded, externally multiplexed mode. The QADC consists of an analog front-end and a digital control subsystem. The analog section includes input pins, an analog multiplexer, and sample and hold analog circuits. The digital control section contains queue control logic to sequence the conversion process and interrupt generation logic. Also included are the periodic/interval timer, control and status registers, the conversion command word (CCW) table, random-access memory (RAM), and the result table RAM. The bus interface unit (BIU) provides access to registers that configure the QADC, control the analog-to-digital converter and queue mechanism, and present formatted conversion results.

28.1

Features

Features of the QADC module include: • Internal sample and hold • Up to eight analog input channels using internal multiplexing • Up to four external analog multiplexers directly supported • Up to 18 total input channels with internal and external multiplexing • Programmable input sample time for various source impedances • Two conversion command word (CCW) queues with a total of 64 entries for setting conversion parameters of each A/D conversion • Subqueues possible using pause mechanism • Queue complete and pause interrupts available on both queues • Queue pointers indicating current location for each queue • Automated queue modes initiated by: — External edge trigger and gated trigger — Periodic/interval timer, within QADC module (queues 1 and 2) — Software command • Single scan or continuous scan of queues • 64 result registers • Output data readable in three formats: — Right-justified unsigned — Left-justified signed — Left-justified unsigned • Unused analog channels can be used as discrete input/output pins.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-1

Queued Analog-to-Digital Converter (QADC)

28.2

Block Diagram External MUX Address

Analog Power Inputs

8 Analog Channels (18 with External MUXing) Reference Inputs

External Triggers Analog Input MUX and Digital Signal Functions

10-bit Analog-to-Digital Converter

Digital Control

64-Entry Queue of 10-bit Conversion Command Words (CCWs)

64-Entry Table of 10-bit Results

10-bit to 16-bit Result Alignment

IPBUS Interface

Figure 28-1. QADC Block Diagram

28.3

Modes of Operation

This subsection describes the two modes of operation in which the QADC does not perform conversions in a regular fashion: • Debug mode • Stop mode

28.3.1

Debug Mode

The QDBG bit in the module configuration register (QADCMCR) governs behavior of the QADC when the CPU enters background debug mode. When QDBG is clear, the QADC operates normally and is unaffected by CPU background debug mode. See Section 28.6.1, “QADC Module Configuration Register (QADCMCR). When QDBG is set and the CPU enters background debug mode, the QADC finishes any conversion in progress and then freezes. This is QADC debug mode. Depending on when debug mode is entered, the three possible queue freeze scenarios are: • When a queue is not executing, the QADC freezes immediately. • When a queue is executing, the QADC completes the current conversion and then freezes. MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-2

Freescale Semiconductor

Signals



If during the execution of the current conversion, the queue operating mode for the active queue is changed, or a queue 2 abort occurs, the QADC freezes immediately.

When the QADC enters debug mode while a queue is active, the current CCW location of the queue pointer is saved. Debug mode: • Stops the analog clock • Holds the periodic/interval timer in reset • Prevents external trigger events from being captured • Keeps all QADC registers and RAM accessible Although the QADC saves a pointer to the next CCW in the current queue, software can force the QADC to execute a different CCW by reconfiguring the QADC. When the QADC exits debug mode, it looks at the queue operating modes, the current queue pointer, and any pending trigger events to decide which CCW to execute.

28.3.2

Stop Mode

The QADC enters a low-power idle state whenever the QSTOP bit is set or the CPU enters low-power stop mode. QADC stop: • Disables the analog-to-digital converter, effectively turning off the analog circuit • Aborts the conversion sequence in progress • Makes the data direction register (DDRQA), port data registers (PORTQA and PORTQB), control registers (QACR2, QACR1, and QACR0) and the status registers (QASR1 and QASR0) read-only. Only the module configuration register (QADCMCR) remains writable. • Makes the RAM inaccessible, so that valid data cannot be read from RAM (result word table and CCW) or written to RAM (result word table and CCW) • Resets QACR1, QACR2, QASR0, and QASR1 • Holds the QADC periodic/interval timer in reset Because the bias currents to the analog circuit are turned off in stop mode, the QADC requires some recovery time (tSR) to stabilize the analog circuits.

28.4

Signals

The QADC uses the external signals shown in Figure 28-2. There are eight channel/port signals that can support up to 18 channels when external multiplexing is used (including internal channels). All of the channel signals also have some general-purpose input or input/output (GPIO) functionality. In addition, there are also two analog reference signals and two analog submodule power signals. The QADC has external trigger inputs and multiplexer outputs that are shared with some of the analog input signals.

28.4.1

Port QA Signal Functions

The four port QA signals can be used as analog inputs or as a bidirectional 4-bit digital input/output port.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-3

Queued Analog-to-Digital Converter (QADC)

28.4.1.1

Port QA Analog Input Signals

When used as analog inputs, the four port QA signals are referred to as AN[56:55, 53:52]. Internal Digital Power Shared with Other Modules

VSSI VDDI

VSSA Analog Power and Ground V DDA

Port QA Analog Inputs External Trigger Inputs External MUX Address Outputs Digital I/O

AN0/ANW/PQB0 AN1/ANX/PQB1 AN2/ANY/PQB2 AN3/ANZ/PQB3

Analog Mux and Port Logic

AN52/MA0/PQA0 AN53/MA1/PQA1 AN55/ETRIG1/PQA3 AN56/ETRIG2/PQA4

Analog Converter

Digital Results and Control

PORT QA

Port QB Analog Inputs External MUX Inputs Digital Inputs

VRH VRL

PORT QB

Analog References

Figure 28-2. QADC Input and Output Signals

28.4.1.2

Port QA Digital Input/Output Signals

Port QA signals are referred to as PQA[4:3, 1:0] when used as a bidirectional 4-bit digital input/output port. These four signals may be used for general-purpose digital input or digital output. Port QA signals are connected to a digital input synchronizer during reads and may be used as general-purpose digital inputs when the applied voltages meet high-voltage input (VIH) and low-voltage input (VIL) requirements. Each port QA signal is configured as an input or output by programming the port data direction register (DDRQA). The digital input signal states are read from the port QA data register (PORTQA) when DDRQA specifies that the signals are inputs. The digital data in PORTQA is driven onto the port QA signals when the corresponding bits in DDRQA specify output. See Section 28.6.4, “Port QA and QB Data Direction Register (DDRQA & DDRQB).

28.4.2

Port QB Signal Functions

The four port QB signals can be used as analog inputs or as a 4-bit digital I/O port.

28.4.2.1

Port QB Analog Input Signals

When used as analog inputs, the four port QB signals are referred to as AN[3:0].

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-4

Freescale Semiconductor

Signals

28.4.2.2

Port QB Digital I/O Signals

Port QB signals are referred to as PQB[3:0] when used as a 4-bit digital input/output port. In addition to functioning as analog input signals, the port QB signals are also connected to the input of a synchronizer during reads and may be used as general-purpose digital inputs when the applied voltages meet VIH and VIL requirements. Each port QB signal is configured as an input or output by programming the port data direction register (DDRQB). The digital input signal states are read from the port QB data register (PORTQB) when DDRQB specifies that the signals are inputs. The digital data in PORTQB is driven onto the port QB signals when the corresponding bits in DDRQB specify output. See Section 28.6.4, “Port QA and QB Data Direction Register (DDRQA & DDRQB).

28.4.3

External Trigger Input Signals

The QADC has two external trigger signals, ETRIG2 and ETRIG1. Each external trigger input is associated with one of the scan queues, queue 1 or queue 2. The assignment of ETRIG[2:1] to a queue is made by the TRG bit in QADC control register 0 (QACR0). When TRG = 0, ETRIG1 triggers queue 1 and ETRIG2 triggers queue 2. When TRG = 1, ETRIG1 triggers queue 2 and ETRIG2 triggers queue 1. See Section 28.6.5, “Control Registers “Control Registers.”

28.4.4

Multiplexed Address Output Signals

In non-multiplexed mode, the QADC analog input signals are connected to an internal multiplexer which routes the analog signals into the internal A/D converter. In externally multiplexed mode, the QADC allows automatic channel selection through up to four external 4-to-1 multiplexer chips. The QADC provides a 2-bit multiplexed address output to the external multiplexer chips to allow selection of one of four inputs. The multiplexed address output signals, MA1 and MA0, can be used as multiplexed address output bits or as general-purpose I/O when external multiplexed mode is not being used. MA[1:0] are used as the address inputs for up to four 4-channel multiplexer chips. Because the MA[1:0] signals are digital outputs in multiplexed mode, the state of their corresponding data direction bits in DDRQA is ignored.

28.4.5

Multiplexed Analog Input Signals

In external multiplexed mode, four of the port QB signals are redefined so that each represent four analog input channels. See Table 28-1. Table 28-1. Multiplexed Analog Input Channels Multiplexed Analog Input

Channels

ANW

Even numbered channels from 0 to 6

ANX

Odd numbered channels from 1 to 7

ANY

Even numbered channels from 16 to 22

ANZ

Odd numbered channels from 17 to 23

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-5

Queued Analog-to-Digital Converter (QADC)

28.4.6

Voltage Reference Signals

VRH and VRL are the dedicated input signals for the high and low reference voltages. Separating the reference inputs from the power supply signals allows for additional external filtering, which increases reference voltage precision and stability, and subsequently contributes to a higher degree of conversion accuracy. NOTE VRH and VRL must be set to VDDA and VSSA potential, respectively. For more information, refer to Section 28.9, “Signal Connection Considerations.

28.4.7

Dedicated Analog Supply Signals

The VDDA and VSSA signals supply power to the analog subsystems of the QADC module. Dedicated power is required to isolate the sensitive analog circuitry from the normal levels of noise present on the digital power supply.

28.4.8

Dedicated Digital I/O Port Supply Signal

VDDH provides 5-V power to the digital I/O functions of QADC port QA and port QB. This allows those signals to tolerate 5 volts when configured as inputs and drive 5 volts when configured as outputs.

28.5

Memory Map

The QADC occupies 1 Kbyte, or 512 half-word (16-bit) entries, of address space. Ten half-word registers are control, port, and status registers, 64 half-word entries are the CCW table, and 64 half-word entries are the result table which occupies 192 half-word address locations because the result data is readable in three data alignment formats. Table 28-2 is the QADC memory map. Table 28-2. QADC Memory Map IPSBAR + Offset

MSB

Access1

LSB

0x19_0000

QADC Module Configuration Register (QADCMCR)

S

0x19_0002

QADC Test Register (QADCTEST)2

S

0x19_0004

Reserved3



0x19_0006

Port QA Data Register (PORTQA)

Port QB Data Register (PORTQB)

S/U

0x19_0008

Port QA Data Direction Register (DDRQA)

Port QB Data Direction Register (DDRQB)

S/U

0x19_000a

QADC Control Register 0 (QACR0)

S/U

0x19_000c

QADC Control Register 1 (QACR1)

S/U

0x19_000e

QADC Control Register 2 (QACR2)

S/U

0x19_0010

QADC Status Register 0 (QASR0)

S/U

0x19_0012

QADC Status Register 1 (QASR1)

S/U

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-6

Freescale Semiconductor

Register Descriptions

Table 28-2. QADC Memory Map (continued) IPSBAR + Offset

MSB

LSB

Access1

0x19_0014– 0x19_01fe

Reserved(3)



0x19_0200– 0x19_027e

Conversion Command Word Table (CCW)

S/U

0x19_0280– 0x19_02fe

Right Justified, Unsigned Result Register (RJURR)

S/U

0x19_0300– 0x19_037e

Left Justified, Signed Result Register (LJSRR)

S/U

0x19_0380– 0x19_03fe

Left Justified, Unsigned Result Register (LJURR)

S/U

1

S = CPU supervisor mode access only. S/U = CPU supervisor or user mode access. User mode accesses to supervisor only addresses have no effect and result in a cycle termination transfer error. 2 Access results in the module generating an access termination transfer error if not in test mode. 3 Read/writes have no effect and the access terminates with a transfer error exception.

28.6

Register Descriptions

This subsection describes the QADC registers.

28.6.1

QADC Module Configuration Register (QADCMCR)

The QADCMCR contains bits that control QADC debug and stop modes and determine the privilege level required to access most registers.

Field

15

14

QSTOP

QDBG

Reset



R/W

7

R

6

SUPV

Reset R/W:

8

0000_0000

R/W:

Field

13

0

— 1000_0000

R/W

Address

R IPSBAR + 0x19_0000, 0x19_0001

Figure 28-3. QADC Module Configuration Register (QADCMCR)

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-7

Queued Analog-to-Digital Converter (QADC)

Table 28-3. QADCMCR Field Descriptions Bit(s)

Name

15

QSTOP

Stop enable. 1 Force QADC to idle state. 0 QADC operates normally.

14

QDBG

Debug enable. 1 Finish any conversion in progress, then freeze in debug mode 0 QADC operates normally.

13–8



7

SUPV

6–0



28.6.2

Description

Reserved, should be cleared. Supervisor/unrestricted data space. 1 All QADC registers are accessible in supervisor mode only; user mode accesses have no effect and result in a cycle termination error. 0 Only QADCMCR and QADCTEST require supervisor mode access; access to all other QADC registers is unrestricted Reserved, should be cleared.

QADC Test Register (QADCTEST)

The QADCTEST is a reserved register. Attempts to access this register outside of factory test mode will result in access privilege violation.

28.6.3

Port Data Registers (PORTQA & PORTQB)

QADC ports QA and QB are accessed through the 8-bit PORTQA and PORTQB. Port QA signals are referred to as PQA[4:3, 1:0] when used as a bidirectional, 4-bit, input/output port. Port QA can also be used for analog inputs (AN[56:55, 53:52]), external trigger inputs (ETRIG[2:1]), and external multiplexer address outputs (MA[1:0]). Port QB signals are referred to as PQB[3:0] when used as a 4-bit, digital input-only port. Port QB can also be used for non-multiplexed (AN[3:0]) and multiplexed (ANZ, ANY, ANX, ANW) analog inputs. PORTQA and PORTQB are not initialized by reset. 7

6

5

4

3

2

1

0

PQA4 (AN56) (ETRIG2)

PQA3 (AN55) (ETRIG1)



PQA1 (AN53) (MA1)

PQA0 (AN52) (MA0)

Field



Reset

000

See Note

0

See Note

R/W:

R

R/W

R

R/W

Address

IPSBAR + 0x19_0006

Figure 28-4. QADC Port QA Data Register (PORTQA)

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-8

Freescale Semiconductor

Register Descriptions

7

6

5

4

3

2

1

0

PQB3 (AN3) (ANZ)

PQB2 (AN2) (ANY)

PQA1 (AN1) (ANX)

PQA0 (AN0) (ANW)

Field



Reset

0000

See Note

R/W:

R

R/W

Address

IPSBAR + 0x19_0007

Figure 28-5. QADC Port QB Data Register (PORTQB) Note: The reset value for these fields is the current signal state if DDR is an input; otherwise, they are undefined.

28.6.4

Port QA and QB Data Direction Register (DDRQA & DDRQB)

DDRQA and DDRQB are associated with port QA and QB digital I/O signals. Setting a bit in these registers configures the corresponding signal as an output. Clearing a bit in these registers configures the corresponding signal as an input. During QADC initialization, port QA and QB signals that will be used as direct or multiplexed analog inputs must have their corresponding data direction register bits cleared. When a port QA or QB signal that is programmed as an output is selected for analog conversion, the voltage sampled is that of the output digital driver as influenced by the load. When the MUX (externally multiplexed) bit is set in QACR0, the data direction register settings are ignored for the bits corresponding to PQA[1:0], and the two multiplexed address (MA[1:0]) output signals. The MA[1:0] signals are forced to be digital outputs, regardless of their data direction setting, and the multiplexed address outputs are driven. The data returned during a port data register read is the value of the MA[1:0] signals, regardless of their data direction setting. Similarly, when the external trigger signals are assigned to port signals and external trigger queue operating mode is selected, the data direction setting for the corresponding signals, PQA3 and/or PQA4, is ignored. The port signals are forced to be digital inputs for ETRIG1 and/or ETRIG2. The data returned during a port data register read is the value of the ETRIG[2:1] signals, regardless of their data direction setting. NOTE Use caution when mixing digital and analog inputs. They should be isolated as much as possible. Rise and fall times should be as large as possible to minimize ac coupling effects. 7

Field

6



Reset R/W: Address

5

4

3

2

1

0

DDQA4

DDQA3



DDQA1

DDQA0

0000_0000 R

R/W

R

R/W

IPSBAR + 0x19_0008

Figure 28-6. QADC Port QA Data Direction Register (DDRQA)

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-9

Queued Analog-to-Digital Converter (QADC)

7

Field

6

5

4



Reset

3

2

1

0

DDQB3

DDQB2

DDQB1

DDQB0

0000_0000

R/W

R

Address

IPSBAR + 0x19_0009

Figure 28-7. Port QB Data Direction Register (DDRQB)

28.6.5

Control Registers

This subsection describes the QADC control registers.

28.6.5.1

QADC Control Register 0 (QACR0)

QACR0 establishes the QADC sampling clock (QCLK) with prescaler parameter fields and defines whether external multiplexing is enabled. Typically, these bits are written once when the QADC is initialized and not changed thereafter. The bits in this register are read anytime, write anytime (except during stop mode).

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-10

Freescale Semiconductor

Register Descriptions

15

Field

14

MUX

13

12



Field



0000_0000 R/W

R

R/W

R

7

6

5

4

3

2

1

0



QPR6

QPR5

QPR4

QPR3

QPR2

QPR1

QPR0

Reset R/W:

8

TRG

Reset R/W:

11

0001_0011 R

R/W

Address

IPSBAR + 0x19_000a, 0x19_000b

Figure 28-8. QADC Control Register 0 (QACR0) Table 28-4. QACR0 Field Descriptions Bit(s)

Name

Description

15

MUX

Externally multiplexed mode. Configures the QADC for operation in externally multiplexed mode, which affects the interpretation of the channel numbers and forces the MA[1:0] signals to be outputs. 1 Externally multiplexed, up to 18 possible channels 0 Internally multiplexed, up to 8 possible channels

14–13



12

TRG

11–7



6–0

QPR

Reserved, should be cleared. Trigger assignment. Determines the queue assignment of the ETRIG[2:1] signals. 1 ETRIG1 triggers queue 2; ETRIG2 triggers queue 1. 0 ETRIG1 triggers queue 1; ETRIG2 triggers queue 2. Reserved, should be cleared. Prescaler clock divider. Selects the system clock divisor to generate the QADC clock as Table 28-5 shows. The resulting QADC clock rate can be given as: fQCLK =

fSYS

2(QPR[6:0] + 1) where: 1 ≤ QPR[6:0] ≤ 127. If QPR[6:0] = 0, then the QPR register field value is read as a 1 and the prescaler divisor is 2. The prescaler should be selected so that the QADC clock rate is within the required fQCLK range. See MCF5282 Electrical Characteristics.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-11

Queued Analog-to-Digital Converter (QADC)

Table 28-5. Prescaler fSYS Divide-by Values QPR[6:0]

fSYS Divisor

QPR[6:0]

fSYS Divisor

QPR[6:0]

fSYS Divisor

QPR[6:0]

fSYS Divisor

0000000

4

0100000

66

1000000

130

1100000

194

0000001

4

0100001

68

1000001

132

1100001

196

0000010

6

0100010

70

1000010

134

1100010

198

0000011

8

0100011

72

1000011

136

1100011

200

0000100

10

0100100

74

1000100

138

1100100

202

0000101

12

0100101

76

1000101

140

1100101

204

0000110

14

0100110

78

1000110

142

1100110

206

0000111

16

0100111

80

1000111

144

1100111

208

0001000

18

0101000

82

1001000

146

1101000

210

0001001

20

0101001

84

1001001

148

1101001

212

0001010

22

0101010

86

1001010

150

1101010

214

0001011

24

0101011

88

1001011

152

1101011

216

0001100

26

0101100

90

1001100

154

1101100

218

0001101

28

0101101

92

1001101

156

1101101

220

0001110

30

0101110

94

1001110

158

1101110

222

0001111

32

0101111

96

1001111

160

1101111

224

0010000

34

0110000

98

1010000

162

1110000

226

0010001

36

0110001

100

1010001

164

1110001

228

0010010

38

0110010

102

1010010

166

1110010

230

0010011

40

0110011

104

1010011

168

1110011

232

0010100

42

0110100

106

1010100

170

1110100

234

0010101

44

0110101

108

1010101

172

1110101

236

0010110

46

0110110

110

1010110

174

1110110

238

0010111

48

0110111

112

1010111

176

1110111

240

0011000

50

0111000

114

1011000

178

1111000

242

0011001

52

0111001

116

1011001

180

1111001

244

0011010

54

0111010

118

1011010

182

1111010

246

0011011

56

0111011

120

1011011

184

1111011

248

0011100

58

0111100

122

1011100

186

1111100

250

0011101

60

0111101

124

1011101

188

1111101

252

0011110

62

0111110

126

1011110

190

1111110

254

0011111

64

0111111

128

1011111

192

1111111

256

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-12

Freescale Semiconductor

Register Descriptions

28.6.5.2

QADC Control Register 1 (QACR1)

QACR1 is the mode control register for queue 1. This register governs queue operating mode and the use of completion and/or pause interrupts. Typically, these bits are written once when the QADC is initialized and are not changed thereafter. Stop mode resets this register.

Field

15

14

13

12

11

10

9

8

CIE1

PIE1

SSE1

MQ112

MQ111

MQ110

MQ19

MQ18

Reset

0000_0000

R/W:

R/W

7

0

Field



Reset

0000_0000

R/W:

R

Address

IPSBAR + 0x19_000c, 0x19_000d

Figure 28-9. QADC Control Register 1 (QACR1) Table 28-6. QACR1 Field Descriptions Bit(s)

Name

Description

15

CIE1

Queue 1 completion interrupt enable. Enables an interrupt request upon completion of queue 1. The interrupt request is initiated when the conversion is complete for the last CCW in queue 1. 1 Enable queue 1 completion interrupt. 0 Disable queue 1 completion interrupt.

14

PIE1

Queue 1 pause interrupt enable. Enables an interrupt request when queue 1 enters the pause state. The interrupt request is initiated when conversion is complete for a CCW that has the pause bit set. 1 Enable the queue 1 pause interrupt. 0 Disable the queue 1 pause interrupt.

13

SSE1

Queue 1 single-scan enable. Enables a single-scan of queue 1 after a trigger event occurs. SSE1 may be set during the same write cycle that sets the MQ1 bits for one of the single-scan queue operating modes. The single-scan enable bit can be written to 1 or 0, but is always read as a 0, unless the QADC is in test mode. The QADC clears SSE1 when the single-scan is complete. 1 Allow a trigger event to start queue 1 in a single-scan mode. 0 Trigger events are ignored for queue 1 single-scan modes.

12–8

MQ1n

Selects the operating mode for queue 1. Table 28-7 shows the bits in the MQ1 field which enable different queue 1 operating modes.

7–0



Reserved, should be cleared.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-13

Queued Analog-to-Digital Converter (QADC)

Table 28-7. Queue 1 Operating Modes MQ1[12:8]

Operating Mode

00000

Disabled mode, conversions do not occur

00001

Software-triggered single-scan mode (started with SSE1)

00010

External-trigger rising-edge single-scan mode

00011

External-trigger falling-edge single-scan mode

00100

Interval timer single-scan mode: time = QCLK period × 27

00101

Interval timer single-scan mode: time = QCLK period × 28

00110

Interval timer single-scan mode: time = QCLK period × 29

00111

Interval timer single-scan mode: time = QCLK period × 210

01000

Interval timer single-scan mode: time = QCLK period × 211

01001

Interval timer single-scan mode: time = QCLK period × 212

01010

Interval timer single-scan mode: time = QCLK period × 213

01011

Interval timer single-scan mode: time = QCLK period × 214

01100

Interval timer single-scan mode: time = QCLK period × 215

01101

Interval timer single-scan mode: time = QCLK period × 216

01110

Interval timer single-scan mode: time = QCLK period × 217

01111

Externally gated single-scan mode (started with SSE1)

10000

Reserved mode

10001

Software-triggered continuous-scan mode

10010

External-trigger rising-edge continuous-scan mode

10011

External-trigger falling-edge continuous-scan mode

10100

Periodic timer continuous-scan mode: time = QCLK period × 27

10101

Periodic timer continuous-scan mode: time = QCLK period × 28

10110

Periodic timer continuous-scan mode: time = QCLK period × 29

10111

Periodic timer continuous-scan mode: time = QCLK period × 210

11000

Periodic timer continuous-scan mode: time = QCLK period × 211

11001

Periodic timer continuous-scan mode: time = QCLK period × 212

11010

Periodic timer continuous-scan mode: time = QCLK period × 213

11011

Periodic timer continuous-scan mode: time = QCLK period × 214

11100

Periodic timer continuous-scan mode: time = QCLK period × 215

11101

Periodic timer continuous-scan mode: time = QCLK period × 216

11110

Periodic timer continuous-scan mode: time = QCLK period × 217

11111

Externally gated continuous-scan mode

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-14

Freescale Semiconductor

Register Descriptions

28.6.5.3

QADC Control Register 2 (QACR2)

QACR2 is the mode control register for queue 2. This register governs queue operating mode and the use of completion and/or pause interrupts. Typically, these bits are written once when the QADC is initialized and not changed thereafter. QACR2 also includes a resume feature that selects the resumption point for queue 2 after its operation is suspended by a queue 1 trigger event. The primary reason for selecting re-execution of the entire queue or subqueue is to guarantee that all samples are taken consecutively in one scan (coherency). When subqueues are not used, queue 2 execution restarts after suspension with the first CCW in queue 2. When a pause has previously occurred in queue 2 execution, queue execution restarts after suspension with the first CCW in the current subqueue. A subqueue is considered to be a stand-alone sequence of conversions. Once a pause flag has been set to report subqueue completion, that subqueue is not repeated until all CCWs in queue 2 are executed. For example, the RESUME bit can be used when the frequency of queue 1 trigger events prohibit queue 2 completion. If the rate of queue 1 execution is too high, it is best for queue 2 execution to continue with the CCW that was being converted when queue 2 was suspended. This allows queue 2 to eventually complete execution. The beginning of queue 2 is defined by programming the BQ2 field in QACR2. BQ2 is usually set before or at the same time as the queue operating mode for queue 2 is selected. If BQ2[6:0] ≥ 64, queue 2 has no entries, the entire CCW table is dedicated to queue 1, and CCW63 is the end-of-queue 1. If BQ2[6:0] is 0, the entire CCW table is dedicated to queue 2. A special case occurs when an operating mode is selected for queue 1 and a trigger event occurs for queue 1 with BQ2 set to 0. Queue 1 execution starts momentarily, but is terminated after CCW0 is read. No conversions occur. The BQ2[6:0] pointer may be changed dynamically to alternate between queue 2 scan sequences. A change in BQ2 after queue 2 has begun or when queue 2 has a trigger pending does not affect queue 2 until it is started again. For example, two scan sequences could be defined as follows: The first sequence starts at CCW10, with a pause after CCW11 and an end of queue (EOQ) programmed in CCW15; the second sequence starts at CCW16, with a pause after CCW17 and an EOQ programmed in CCW39. With BQ2[6:0] set to CCW10 and the continuous-scan mode selected, queue execution begins. When the pause is encountered in CCW11, an interrupt service routine can retarget BQ2[6:0] to CCW16. When the end-of-queue is recognized in CCW15, an internal retrigger event is generated and execution restarts at CCW16. When the pause software interrupt occurs again, BQ2 can be changed back to CCW10. After the end-of-queue is recognized in CCW39, an internal retrigger event is created and execution now restarts at CCW10. If BQ2[6:0] is changed while queue 1 is active, the effect of BQ2[6:0] as an end-of-queue indication for queue 1 is immediate. However, beware of the risk of losing the end-of-queue 1 when changing BQ2[6:0]. Using EOQ (channel 63) to end queue 1 is recommended. NOTE If BQ2[6:0] was assigned to the CCW that queue 1 is currently working on, then that conversion is completed before the change to BQ2[6:0] takes effect. Each time a CCW is read for queue 1, the CCW location is compared with the current value of the BQ2[6:0] pointer to detect a possible end-of-queue condition. For example, if BQ2[6:0] is changed to CCW3 while queue 1 is converting CCW2, queue 1 is terminated after the conversion is completed. However, if BQ2[6:0] is changed to CCW1 while queue 1 is converting CCW2, the QADC would not

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-15

Queued Analog-to-Digital Converter (QADC)

recognize a BQ2[6:0] end-of-queue condition until queue 1 execution reached CCW1 again, presumably on the next pass through the queue. Stop mode resets this register (0x007f)

Field

15

14

13

12

11

10

9

8

CIE2

PIE2

SSE2

MQ212

MQ211

MQ210

MQ29

MQ28

Reset

0000_0000

R/W:

R/W

7

Field RESUME

6

5

4

3

2

1

0

BQ26

BQ25

BQ24

BQ23

BQ22

BQ21

BQ20

Reset

0111_1111

R/W:

R/W

Address

IPSBAR + 0x19_000e, 0x19_000f

Figure 28-10. QADC Control Register 2 (QACR2)

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-16

Freescale Semiconductor

Register Descriptions

Table 28-8. QACR2 Field Descriptions Bit(s)

Name

Description

15

CIE2

Queue 2 completion software interrupt enable. Enables an interrupt request upon completion of queue 2. The interrupt request is initiated when the conversion is complete for the last CCW in queue 2. 1 Enable queue 2 completion interrupt. 0 Disable queue 2 completion interrupt.

14

PIE2

Queue 2 pause interrupt enable. Enables an interrupt request when queue 2 enters the pause state. The interrupt request is initiated when conversion is complete for a CCW that has the pause bit set. 1 Enable the queue 2 pause interrupt. 0 Disable the queue 2 pause interrupt.

13

SSE2

Queue 2 single-scan enable. Enables a single-scan of queue 2 after a trigger event occurs. SSE2 may be set during the same write cycle that sets the MQ2 bits for one of the single-scan queue operating modes. The single-scan enable bit can be written to 1 or 0, but is always read as a 0, unless the QADC is in test mode. The QADC clears SSE2 when the single-scan is complete. 1 Allow a trigger event to start queue 2 in a single-scan mode. 0 Trigger events are ignored for queue 2 single-scan modes.

12–8

MQ2

Selects the operating mode for queue 2. Table 28-9 shows the bits in the MQ1 field which enable different queue 2 operating modes.

7

RESUME

Selects the resumption point for queue 2 after its operation is suspended due to a queue 1 trigger event. If RESUME is changed during the execution of queue 2, the change is not recognized until an end-of-queue condition is reached or the operating mode of queue 2 is changed. 1 After suspension, begin execution with the aborted CCW in queue 2. 0 After suspension, begin execution with the first CCW of queue 2 or the current subqueue of queue 2.

6–0

BQ2

Beginning of queue 2. Denotes the CCW location where queue 2 begins. This allows the length of queue 1 and queue 2 to vary. The BQ2 field also serves as an end-of-queue condition for queue 1.

Table 28-9. Queue 2 Operating Modes MQ2[12:8]

Operating Modes

00000

Disabled mode, conversions do not occur

00001

Software triggered single-scan mode (started with SSE2)

00010

Externally triggered rising edge single-scan mode

00011

Externally triggered falling edge single-scan mode

00100

Interval timer single-scan mode: time = QCLK period x 27

00101

Interval timer single-scan mode: time = QCLK period x 28

00110

Interval timer single-scan mode: time = QCLK period x 29

00111

Interval timer single-scan mode: time = QCLK period x 210

01000

Interval timer single-scan mode: time = QCLK period x 211

01001

Interval timer single-scan mode: time = QCLK period x 212

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-17

Queued Analog-to-Digital Converter (QADC)

Table 28-9. Queue 2 Operating Modes (continued) MQ2[12:8]

28.6.6

Operating Modes

01010

Interval timer single-scan mode: time = QCLK period x 213

01011

Interval timer single-scan mode: time = QCLK period x 214

01100

Interval timer single-scan mode: time = QCLK period x 215

01101

Interval timer single-scan mode: time = QCLK period x 216

01110

Interval timer single-scan mode: time = QCLK period x 217

01111

Reserved mode

10000

Reserved mode

10001

Software triggered continuous-scan mode

10010

Externally triggered rising edge continuous-scan mode

10011

Externally triggered falling edge continuous-scan mode

10100

Periodic timer continuous-scan mode: time = QCLK period x 27

10101

Periodic timer continuous-scan mode: time = QCLK period x 28

10110

Periodic timer continuous-scan mode: time = QCLK period x 29

10111

Periodic timer continuous-scan mode: time = QCLK period x 210

11000

Periodic timer continuous-scan mode: time = QCLK period x 211

11001

Periodic timer continuous-scan mode: time = QCLK period x 212

11010

Periodic timer continuous-scan mode: time = QCLK period x 213

11011

Periodic timer continuous-scan mode: time = QCLK period x 214

11100

Periodic timer continuous-scan mode: time = QCLK period x 215

11101

Periodic timer continuous-scan mode: time = QCLK period x 216

11110

Periodic timer continuous-scan mode: time = QCLK period x 217

11111

Reserved mode

Status Registers

This subsection describes the QADC status registers.

28.6.6.1

QADC Status Register 0 (QASR0)

QASR0 contains information about the state of each queue and the current A/D conversion. The bits in this register are read anytime. For flag bits (CF1, PF1, CF2, PF2, TOR1, TOR2), writing a 1 has no effect; writing a 0 clears the bit. For QS[9:6] and CWP, writes have no effect. Stop mode resets this register. The end of a queue is identified in the following cases: • When execution is complete on the CCW in the location prior to the one pointed to by BQ2 • When the current CCW contains the end-of-queue code (channel 63) instead of a valid channel number MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-18

Freescale Semiconductor

Register Descriptions



When the currently completed CCW is in the last location of the CCW RAM.

Once PFn is set, the queue enters the paused state and waits for a trigger event to allow queue execution to continue. However, a special case occurs when the CCW with the pause bit set is the last CCW in a queue; queue execution is complete. The queue status becomes idle, not paused, and both the pause and completion flags are set. Another special case occurs when the queue is operating in software-initiated single-scan or continuous-scan mode and a CCW pause bit is set. The QADC will set PFn and will also automatically generate a retrigger event that restarts execution after two QCLK cycles. Pause mode is never entered. In externally gated single-scan and continuous-scan mode, the behavior of PFn has been redefined. When the gate closes before the end of the queue is reached, PFn is set to indicate that an incomplete scan has occurred. In single-scan mode, a resultant interrupt can be used to determine if the queue should be enabled again. In either externally gated mode, setting PFn indicates that the results for the queue have not been collected during one scan (coherently). NOTE: If a set CCW pause bit is encountered in either externally gated mode, the pause flag will not set, and execution continues without pausing. This has allowed for the modified behavior of PF1 in the externally gated modes. PFn is maintained by the QADC regardless of whether the corresponding interrupt is enabled. PFn may be polled to determine if the QADC has reached a pause in scanning a queue. A trigger event generated by a transition on the external trigger signal or by the periodic/interval timer may be captured as a trigger overrun. TORn cannot be set when the software-initiated single-scan mode or the software-initiated continuous-scan mode is selected. TORn is set when a trigger event is received while a queue is executing and before the scan has completed or paused. TORn has no effect on queue execution. After a trigger event has occurred for queue 1, and before the scan has completed or paused, additional queue 1 trigger events are not retained. Such trigger events are considered unexpected, and the QADC sets the TORn error status bit. An unexpected trigger event may denote a system overrun situation. In externally gated continuous-scan mode, the behavior of TORn has been redefined. In the case that the queue reaches an end-of-queue condition for the second time during an open gate, TORn is set. This is considered an overrun condition. In this case, CF1 has been set for the first end-of-queue condition and TORn sets for the second end-of-queue condition. For TOR1 to set, CF2 must not be cleared before the second end-of-queue. The QS field indicates the status of queue 1 and queue 2. Following are the five queue status conditions: • Idle • Active • Paused • Suspended • Trigger pending The idle state occurs when a queue is disabled, when a queue is in a reserved mode, or when a queue is in a valid queue operating mode awaiting a trigger event to initiate queue execution. One or both queues may be in the idle state. When a queue is idle, CCWs are not being executed for that queue, the queue is not in the pause state, and no trigger is pending.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-19

Queued Analog-to-Digital Converter (QADC)

A queue is in the active state when a valid queue operating mode is selected, when the selected trigger event has occurred, or when the QADC is performing a conversion specified by a CCW from that queue. Only one queue can be active at a time. One or both queues can be in the paused state. A queue is paused when the previous CCW executed from that queue had the pause bit set. The QADC does not execute any CCWs from the paused queue until a trigger event occurs. Consequently, the QADC can service queue 2 while queue 1 is paused. Only queue 2 can be in the suspended state. When a trigger event occurs on queue 1 while queue 2 is executing, the current queue 2 conversion is aborted and the queue 2 status is reported as suspended. Queue 2 transitions back to the active state when queue 1 becomes idle or paused. A trigger pending state is required because both queues cannot be active at the same time. The status of queue 2 is changed to trigger pending when a trigger event occurs for queue 2 while queue 1 is active. In the opposite case, when a trigger event occurs for queue 1 while queue 2 is active, queue 2 is aborted and the status is reported as queue 1 active, queue 2 suspended. So due to the priority scheme, only queue 2 can be in the trigger pending state. Two transition cases cause the queue 2 status to be trigger pending before queue 2 is shown to be in the active state. When queue 1 is active and there is a trigger pending on queue 2, after queue 1 completes or pauses, queue 2 continues to be in the trigger pending state for a few clock cycles. The fleeting status conditions are: • Queue 1 idle with queue 2 trigger pending • Queue 1 paused with queue 2 trigger pending Figure 28-12 displays the status conditions of the QS field as the QADC goes through the transition from queue 1 active to queue 2 active. When a queue enters the paused state, CWP points to the CCW with the pause bit set. While in pause, the CWP value is maintained until a trigger event occurs on either queue. Usually, the CWP is updated a few clock cycles before the queue status field shows that the queue has become active. For example, a read of CWP may point to a CCW in queue 2, while the queue status field shows queue 1 paused and queue 2 trigger pending. When the QADC finishes a queue scan, the CWP points to the CCW where the end-of-queue condition was detected. Therefore, when the end-of-queue condition is a CCW with the EOQ code (channel 63), the CWP points to the CCW containing the EOQ. When the last CCW in a queue is the last CCW table location (CCW63), and it does not contain the EOQ code, the end-of-queue is detected when the following CCW is read, so the CWP points to word CCW0. Finally, when queue 1 operation is terminated after a CCW is read that is pointed to by BQ2, the CWP points to the same CCW as BQ2.

Field

15

14

13

12

11

10

9

8

CF1

PF1

CF2

PF2

TOR1

TOR2

QS9

QS8

Reset R/W:

0000_0000 R/W

R

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-20

Freescale Semiconductor

Register Descriptions

Field

7

6

5

4

3

2

1

0

QS7

QS6

CWP5

CWP4

CWP3

CWP2

CWP1

CWP0

Reset

0000_0000

R/W:

R

Address

IPSBAR + 0x19_0010, 0x19_0011

Figure 28-11. QADC Status Register 0 (QASR0) Table 28-10. QASR0 Field Descriptions Bit(s)

Name

Description

15, 13

CFn

Queue completion flag. Indicates that a queue scan has been completed. CF[1:2] is set by the QADC when the input channel sample requested by the last CCW in the queue is converted, and the result is stored in the result table. When CFn is set and queue completion interrupts are enabled (QACRn[CIEn] = 1), the QADC requests an interrupt. The interrupt request is cleared when a 0 is written to the CF1 bit after it has been read as a 1. Once set, CF1 can be cleared only by a reset or by writing a 0 to it. CF[1:2] is updated by the QADC regardless of whether the corresponding interrupt is enabled. This allows polled recognition of the queue scan completion.

14, 12

PFn

Queue pause flag. Indicates that a queue scan has reached a pause. PF[1:2] is set by the QADC when the current queue 1 CCW has the pause bit set, the selected input channel has been converted, and the result has been stored in the result table. When PFn is set and interrupts are enabled (QACRn[PIEn] = 1), the QADC requests an interrupt. The interrupt request is cleared when a 0 is written to PFn, after it has been read as a 1. Once set, PFn can be cleared only by reset or by writing a 0 to it. PF1: 1 Queue 1 has reached a pause or gate closed before end-of-queue in gated mode. 0 Queue 1 has not reached a pause or gate has not closed before end-of-queue in gated mode. PF2: 1 Queue 2 has reached a pause. 0 Queue 2 has not reached a pause. See Table 28-11 for a summary of CCW pause bit response in all scan modes.

11–10

TORn

Queue trigger overrun flag. Indicates that an unexpected trigger event has occurred for queue 1. TOR[1:2] can be set only while the queue is in the active state. Once set, TOR[1:2] is cleared only by a reset or by writing a 0 to it. 1 At least one unexpected queue 1 trigger event has occurred or queue 1 reaches an end-of-queue condition for the second time in externally gated continuous scan. 0 No unexpected queue 1 trigger events have occurred.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-21

Queued Analog-to-Digital Converter (QADC)

Table 28-10. QASR0 Field Descriptions (continued) Bit(s)

Name

Description

9–6

QS

Queue status. Indicates the current condition of queue 1 and queue 2. The two most significant bits are associated primarily with queue 1, and the remaining two bits are associated with queue 2. Because the priority scheme between the two queues causes the status to be interlinked, the status bits must be considered as one 4-bit field. Table 28-12 shows the bits in the QS field and how they denote the status of queue 1 and queue 2. The queue status field is affected by QADC stop mode. Because all of the analog logic and control registers are reset, the queue status field is reset to queue 1 idle, queue 2 idle. During debug mode, the queue status field is not modified. The queue status field retains the status it held prior to freezing. As a result, the queue status can show queue 1 active, queue 2 idle, even though neither queue is being executed during freeze.

5–0

CWP

Command word pointer. Denotes which CCW is executing at present or was last completed. CWP is a read-only field with a valid range of 0 to 63; write operations have no effect. During stop mode, CWP is reset to 0 because the control registers and the analog logic are reset. When debug mode is entered, CWP is not changed; it points to the last executed CCW.

Table 28-11. CCW Pause Bit Response Scan Mode

Queue Operation

PF Asserts?

Externally triggered single-scan

Pauses

Yes

Externally triggered continuous-scan

Pauses

Yes

Interval timer trigger single-scan

Pauses

Yes

Interval timer continuous-scan

Pauses

Yes

Software-initiated single-scan

Continues

Yes

Software-initiated continuous-scan

Continues

Yes

Externally gated single-scan

Continues

No

Externally gated continuous-scan

Continues

No

Table 28-12. Queue Status QS[9:6]

Queue 1/Queue 2 States

0000

Queue 1 idle, queue 2 idle

0001

Queue 1 idle, queue 2 paused

0010

Queue 1 idle, queue 2 active

0011

Queue 1 idle, queue 2 trigger pending

0100

Queue 1 paused, queue 2 idle

0101

Queue 1 paused, queue 2 paused

0110

Queue 1 paused, queue 2 active

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-22

Freescale Semiconductor

Register Descriptions

Table 28-12. Queue Status (continued) QS[9:6]

Queue 1/Queue 2 States

0111

Queue 1 paused, queue 2 trigger pending

1000

Queue 1 active, queue 2 idle

1001

Queue 1 active, queue 2 paused

1010

Queue 1 active, queue 2 suspended

1011

Queue 1 active, queue 2 trigger pending

1100

Reserved

1101

Reserved

1110

Reserved

1111

Reserved

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-23

Queued Analog-to-Digital Converter (QADC)

Q2 Trigger Event

Q1 Idle/ Q2 Active

Q1 Trigger Event

Q1 Idle/ Q2 Idle

Q2 Complete Q1 Complete

Q1 Active/ Q2 Idle

Delayed Transition Q2 Pause Bit Set

Q1 Pause Bit Set

Q1 Idle/ Q2 Trigger Pending (Temporary)

Q2 Trigger Event

Q2 Trigger Event Q1 Trigger Event

Q1 Trigger Event

Q1 Paused/ Q2 Idle

Q1 Complete Q1 Complete Q1 Idle/ Q2 Paused

Q1 Trigger Event

Q1 Active/ Q2 Trigger Pending

Q1 Active/ Q2 Suspended

Q1 Pause Bit Set

Q1 Complete

Q1 Paused/ Q2 Trigger Pending (Temporary)

Q1 Pause Bit Set Q1 Active/ Q2 Paused

Delayed Transition Q1 Trigger Event

Q2 Complete

Q1 Pause Bit Set Q1 Paused/ Q2 Active

Q1 Trigger Event Q2 Trigger Event Q1 Paused/ Q2 Paused

Q2 Pause Bit Set

Figure 28-12. Queue Status Transition

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-24

Freescale Semiconductor

Register Descriptions

28.6.6.2

QADC Status Register 1 (QASR1)

Stop mode resets this register . 15

14

Field



13

12

11

10

9

8

CWPQ15

CWPQ14

CWPQ13

CWPQ12

CWPQ11

CWPQ10

Reset

0011_1111

R/W:

R

7

6

Field



5

4

3

2

1

0

CWPQ25

CWPQ24

CWPQ23

CWPQ22

CWPQ21

CWPQ20

Reset

0011_1111

R/W:

R

Address

IPSBAR + 0x19_0012, 0x19_0013

Figure 28-13. QADC Status Register 1 (QASR1) Table 28-13. QASR1 Field Descriptions Bit(s)

Name

15–14



13–8

CWPQ1

7–6



5–0

CWPQ

28.6.7

Description Reserved, should be cleared. Queue 1 command word pointer. Points to the last queue 1 CCW executed. This is a read-only field with a valid range of 0 to 63; writes have no effect. CWPQ1 always points to the last executed CCW in queue 1, regardless of which queue is active. In contrast to CWP, CPWQ1 is updated when a conversion result is written. When the QADC finishes a conversion in queue 1, both the result register is written and CWPQ1 is updated. When queue 1 operation is terminated after a CCW is read that is pointed to by BQ2, CWP points to BQ2 while CWPQ1 points to the last queue 1 CCW. During stop mode, CWPQ1 is reset to 63, because the control registers and the analog logic are reset. When debug mode is entered, CWPQ1 is not changed; it points to the last executed CCW in queue 1. Reserved, should be cleared. Queue 2 command word pointer. Points to the last queue 2 CCW executed. This is a read-only field with a valid range of 0 to 63; writes have no effect. CWPQ2 always points to the last executed CCW in queue 2, regardless which queue is active. In contrast to CWP, CPWQ2 is updated when a conversion result is written. When the QADC finishes a conversion in queue 2, both the result register is written and CWPQ2 is updated. During stop mode, CWPQ2 is reset to 63 because the control registers and the analog logic are reset. When debug mode is entered, CWPQ2 is not changed; it points to the last executed CCW in queue 2.

Conversion Command Word Table (CCW)

The CCW table is 64 half-word (128 byte) long RAM with 10 bits of each entry implemented. The CCW table is written by the user and is not modified by the QADC. Each CCW requests the conversion of one analog channel to a digital result. The CCW specifies the analog channel number, the input sample time, MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-25

Queued Analog-to-Digital Converter (QADC)

and whether the queue is to pause after the current CCW. The bits in this register are read anytime (except during stop mode), write anytime (except during stop mode). 15

10

9

8

P

BYP

Field



Reset

0000_00

Unaffected

R/W:

R

R/W

Field

7

6

5

4

3

2

1

0

IST1

IST0

CHAN5

CHAN4

CHAN3

CHAN2

CHAN1

CHAN0

Reset

Undefined

R/W:

R

Address

IPSBAR + 0x19_0200, 0x19_027e

Figure 28-14. Conversion Command Word Table (CCW) Table 28-14. CCW Field Descriptions Bit(s)

Name

Description

15–10



Reserved, should be cleared.

9

P

Pause. Allows subqueues to be created within queue 1 and queue 2. The QADC performs the conversion specified by the CCW with the pause bit set and then the queue enters the pause state. Another trigger event causes execution to continue from the pause to the next CCW. 1 Enter pause state after execution of current CCW. 0 Do not enter pause state after execution of current CCW. NOTE: The P bit does not cause the queue to pause in software-initiated modes or externally gated modes.

8

BYP

Sample amplifier bypass. Enables the amplifier bypass mode for a conversion and subsequently changes the timing. The initial sample time is eliminated, reducing the potential conversion time by two QCLKs. However, due to internal RC effects, a minimum final sample time of four QCLKs must be allowed. When using this mode, the external circuit should be of low source impedance. Loading effects of the external circuitry need to be considered because the benefits of the sample amplifier are not present. 1 Amplifier bypass mode enabled 0 Amplifier bypass mode disabled NOTE: BYP is maintained for software compatibility but has no functional benefit on this version of the QADC.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-26

Freescale Semiconductor

Register Descriptions

Table 28-14. CCW Field Descriptions (continued) Bit(s)

Name

Description

7–6

IST

Input sample time. Specifies the length of the sample window. The input sample time can be varied, under software control, to accommodate various input channel source impedances. Longer sample times permit more accurate A/D conversions of signals with higher source impedances. Table 28-15 shows the four selectable input sample times. The programmable sample time can also be used to adjust queue execution time or sampling rate by increasing the time interval between conversions.

5–0

CHAN

Selects the input channel number. The CCW channel field is programmed with the channel number corresponding to the analog input signal to be sampled and converted. The analog input signal channel number assignments and the signal definitions vary depending on whether the QADC multiplexed or non-multiplexed mode is used by the application. As far as queue scanning operations are concerned, there is no distinction between an internally or externally multiplexed analog input. Table 28-16 shows the channel number assignments for non-multiplexed mode. Table 28-17 shows the channel number assignments for multiplexed mode. Programming the channel field to channel 63 denotes the end of the queue. Channels 60 to 62 are special internal channels. When one of the special channels is selected, the sampling amplifier is not used. The value of VRL, VRH, or (VRH–VRL)/2 is converted directly. Programming any input sample time other than two has no benefit for the special internal channels except to lengthen the overall conversion time.

Table 28-15. Input Sample Times IST[1:0]

Input Sample Times

00

Input sample time = QCLK period × 2

01

Input sample time = QCLK period × 4

10

Input sample time = QCLK period × 8

11

Input sample time = QCLK period × 16

Table 28-16. Non-Multiplexed Channel Assignments and Signal Designations Channel Number1 in CCW CHAN Field

Non-Multiplexed Input Signals

Port Signal Name

Analog Signal Name

Other Functions

Signal Type

Binary

Decimal

PQB0 PQB1 PQB2 PQB3

AN0 AN1 AN2 AN3

— — — —

Input Input Input Input

000000 000001 000010 000011

0 1 2 3

PQA0 PQA1

AN52 AN53

— —

Input/Output Input/Output

110100 110101

52 53

PQA3 PQA4

AN55 AN56

ETRIG1 ETRIG2

Input/Output Input/Output

110111 111000

55 56

VRL VRH —

Low reference High reference —

— — (VRH–VRL)/2

Input Input —

111100 111101 111110

60 61 62





End-of-Queue Code



111111

63

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-27

Queued Analog-to-Digital Converter (QADC) 1

All channels not listed are reserved or unimplemented and return undefined results.

Table 28-17. Multiplexed Channel Assignments and Signal Designations Channel Number1 in CCW CHAN Field

Multiplexed Input Signals

1

Port Signal Name

Analog Signal Name

Other Functions

Signal Type

Binary

Decimal

PQB0 PQB1 PQB2 PQB3

ANW ANX ANY ANZ

— — — —

Input Input Input Input

000XX0 000XX1 010XX0 010XX1

0, 2, 4, 6 1, 3, 5, 7 16, 18, 20, 22 17, 19, 21, 23

PQA0 PQA1

— —

MA0 MA1

Output Output



52 53

PQA3 PQA4

AN55 AN56

ETRIG1 ETRIG2

Input/Output Input/Output

110111 111000

55 56

VRL VRH —

Low Reference High Reference —

— — (VRH–VRL)/2

Input Input —

111100 111101 111110

60 61 62





End-of-Queue Code



111111

63

All channels not listed are reserved or unimplemented and return undefined results.

28.6.8

Result Registers

The result word table is a 64 half-word (128 byte) long by 10-bit wide RAM. An entry is written by the QADC after completing an analog conversion specified by the corresponding CCW table entry.

28.6.8.1

Right-Justified Unsigned Result Register (RJURR) 15

10

9

8

Field



RESULT

Reset

0000_00

Undefined

R/W:

R

R/W

7

0

Field

RESULT

Reset

Undefined

R/W:

R/W

Address

IPSBAR + 0x19_0280, 0x19_02fe

Figure 28-15. Right-Justified Unsigned Result Register (RJURR)

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-28

Freescale Semiconductor

Register Descriptions

Table 28-18. RJURR Field Descriptions Bit(s)

Name

15–10



9–0

RESULT

28.6.8.2

Description Reserved, should be cleared. The conversion result is unsigned, right-justified data.

Left-Justified Signed Result Register (LJSRR) 15

Field

14

8

S

RESULT

Reset

Undefined

R/W:

R/W

7

0

Field

RESULT

Reset

Undefined

R/W:

R/W

Address

IPSBAR + 0x19_0300, 0x19_037e

Figure 28-16. Left-Justified Signed Result Register (LJSRR) Table 28-19. LJSRR Field Descriptions Bit(s)

Name

Description

15

S

The left justified, signed format corresponds to a half-scale, offset binary, two’s complement data format. Conversion values corresponding to 1/2 full scale, 0x0200, or higher are interpreted as positive values and have a sign bit of 0. An unsigned, right justified conversion of 0x0200 would be represented as 0x0000 in this signed register, where the sign = 0 and the result = 0. For an unsigned, right justified conversion of 0x3FF (full range or VRH), the signed equivalent in this register would be 0x7FC0, sign = 0 and result = 0x1FF. For an unsigned, right justified conversion of 0x0000 (VRL), the signed equivalent in this register would be 0x8000, sign = 1 and result = 0x000, a two’s complement value representing –512.

14–6

RESULT

5–0



28.6.8.3

The conversion result is signed, left-justified data. Reserved, should be cleared.

Left-Justified Unsigned Result Register (LJURR) 15

8

Field

RESULT

Reset

Undefined

R/W:

R/W

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-29

Queued Analog-to-Digital Converter (QADC)

7

Field

6

5

0

RESULT



Reset

Undefined

R/W:

R/W

R

Address

IPSBAR + 0x19_0380, 0x19_03fe

Figure 28-17. Left-Justified Unsigned Result Register (LJURR) Table 28-20. LJURR Field Descriptions Bit(s)

Name

15–6

RESULT

5–0



28.7

Description The conversion result is unsigned, left-justified data. Reserved, should be cleared.

Functional Description

This subsection provides a functional description of the QADC.

28.7.1

Result Coherency

The QADC supports byte and half-word reads and writes across a 16-bit data bus interface. All conversion results are stored in half-word registers, and the QADC does not allow more than one result register to be read at a time. For this reason, the QADC does not guarantee read coherency. Specifically, this means that while the QADC is operating, the data in the result registers can change from one read to the next. Simply initiating a read of one result register will not prevent another from being updated with a new conversion result. Thus, to read any given number of result registers coherently, the queue or queues capable of modifying these registers must be inactive. This can be guaranteed by system operating conditions (such as, known completion of a software-initiated queue single-scan or no possibility of an externally triggered/gated queue scan) or by simply disabling the queues (writing MQ1 and/or MQ2 to 0).

28.7.2

External Multiplexing

External multiplexer chips concentrate a number of analog signals onto a few QADC inputs. This is useful for applications that need to convert more analog signals than the QADC converter can normally support. External multiplexing also puts the multiplexed chip closer to the signal source. This minimizes the number of analog signals that need to be shielded due to the proximity of noisy high speed digital signals at the microcontroller chip. For example, four 4-input multiplexer chips can be put at the connector where the analog signals first arrive on the printed circuit board. As a result, only four analog signals need to be shielded from noise as they approach the microcontroller chip, rather than having to protect 16 analog signals. However, external multiplexer chips may introduce additional noise and errors if not properly utilized. Therefore, it is necessary to maintain low “on” resistance (the impedance of an analog switch when active within a multiplexed chip) and insert a low pass filter (R/C) on the input side of the multiplexed chip.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-30

Freescale Semiconductor

Functional Description

28.7.2.1

External Multiplexing Operation

The QADC can use from one to four external multiplexer chips to expand the number of analog signals that may be converted. Up to 16 analog channels can be converted through external multiplexer selection. The externally multiplexed channels are automatically selected from the channel field of the CCW, the same as internally multiplexed channels. The QADC is configured for the externally multiplexed mode by setting the MUX bit in control register 0 (QACR0). Figure 28-18 shows the maximum configuration of four external multiplexer chips connected to the QADC. The external multiplexer chips select one of four analog inputs and connect it to one analog output, which becomes an input to the QADC. The QADC provides two multiplexed address signals, MA[1:0], to select one of four inputs. These inputs are connected to all four external multiplexer chips. The analog output of the four multiplexer chips are each connected to separate QADC inputs (ANW, ANX, ANY, and ANZ) as shown in Figure 28-18

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-31

Queued Analog-to-Digital Converter (QADC)

AN1 AN3 AN5 AN7

MUX

MUX

AN0/ANW/PQB0 AN1/ANX/PQB1 AN2/ANY/PQB2 AN3/ANZ/PQB3

Port QB

AN0 AN2 AN4 AN6

AN55/ETRIG1PQA3 AN56/ETRIG2/PQA4 AN16 AN18 AN20 AN22

AN17 AN19 AN21 AN23

Port QA

AN52/MA0/PQA0 AN53/MA1/PQA1

MUX

MUX

Figure 28-18. External Multiplexing Configuration

When externally multiplexed mode is selected, the QADC automatically drives the MA output signals from the channel number in each CCW. The QADC also converts the proper input channel (ANW, ANX, ANY, and ANZ) by interpreting the CCW channel number. As a result, up to 16 externally multiplexed channels appear to the conversion queues as directly connected signals. User software simply puts the channel number of externally multiplexed channels into CCWs. MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-32

Freescale Semiconductor

Functional Description

Figure 28-18 shows that the two MA signals may also be analog input signals. When external multiplexing is selected, none of the MA signals can be used for analog or digital inputs. They become multiplexed address outputs and are unaffected by DDRQA[1:0].

28.7.2.2

Module Version Options

The number of available analog channels varies, depending on whether external multiplexing is used. A maximum of eight analog channels are supported by the internal multiplexing circuitry of the converter. Table 28-21 shows the total number of analog input channels supported with 0 to 4 external multiplexer chips. Table 28-21. Analog Input Channels Number of Analog Input Channels Available Directly Connected + External Multiplexed = Total Channels1, 2 No External Mux

One External Mux

Two External Muxes

Three External Muxes

Four External Muxes

8

5+4=9

4 + 8 = 12

3 + 12 = 15

2 + 16 = 18

1 2

28.7.3

The external trigger inputs are not shared with two analog input signals. When external multiplexing is used, two input channels are configured as multiplexed address outputs, and for each external multiplexer chip, one input channel is a multiplexed analog input.

Analog Subsystem

This section describes the QADC analog subsystem, which includes the front-end analog multiplexer and analog-to-digital converter.

28.7.3.1

Analog-to-Digital Converter Operation

The analog subsystem consists of the path from the input signals to the A/D converter block. Signals from the queue control logic are fed to the multiplexer and state machine. The end-of-conversion (EOC) signal and the successive approximation register (SAR) reflect the result of the conversion. Figure 28-19 shows a block diagram of the QADC analog subsystem.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-33

Queued Analog-to-Digital Converter (QADC) 16

PQA4

4 Chan. Decode & MUX 16:1

CHAN[5:0] 6

PQA0

10-bit A/D Converter

Input Bias Circuit

Internal Channel Decode

Sample Buffer

PQB0

PowerDown

State Machine & Logic CSAMP

VRH VRL

VSSA

2

SAR Timing

10

Analog Power

Comparator

QCLK IST Start Conv End OF Conv

SAR[9:0] 10

VDDA

STOP RST

10

Signals From/to Queue Control Logic

PQB3

Successive Approximation Register

Figure 28-19. QADC Analog Subsystem Block Diagram

28.7.3.2

Conversion Cycle Times

Total conversion time is made up of initial sample time, final sample time, and resolution time. Initial sample time refers to the time during which the selected input channel is coupled through the sample buffer amplifier to the sample capacitor. The sample buffer is used to quickly reproduce its input signal on the sample capacitor and minimize charge sharing errors. During the final sampling period the amplifier is bypassed, and the multiplexer input charges the sample capacitor array directly for improved accuracy. During the resolution period, the voltage in the sample capacitor is converted to a digital value and stored in the SAR as shown in Figure 28-20. Initial sample time is fixed at two QCLK cycles. Final sample time can be 2, 4, 8, or 16 QCLK cycles, depending on the value of the IST field in the CCW. Resolution time is 10 QCLK cycles. A conversion requires a minimum of 14 QCLK cycles (7 µs with a 2.0-MHz QCLK). If the maximum final sample time period of 16 QCLKs is selected, the total conversion time is 28 QCLKs or 14 µs (with a 2.0-MHz QCLK).

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-34

Freescale Semiconductor

Functional Description

Buffer Sample Time: 2 Cycles

Final Sample Time: n Cycles (2,4,8,16)

Resolution Time: 10 Cycles

QCLK Sample Time

Successive Approximation Resolution Sequence

Figure 28-20. Conversion Timing

If the amplifier bypass mode is enabled for a conversion by setting the amplifier bypass (BYP) field in the CCW, the timing changes to that shown in Figure 28-21. See Section 28.6.7, “Conversion Command Word Table (CCW) for more information on the BYP field. The initial sample time is eliminated, reducing the potential conversion time by two QCLKs. When using the bypass mode, the external circuit should be of low source impedance (typically less than 10 kΩ). Also, the loading effects on the external circuitry of the QADC need to be considered, because the benefits of the sample amplifier are not present. NOTE Because of internal RC time constants, use of a two QCLK sample time in bypass mode will cause serious errors when operating the QADC at high frequencies. Sample Time: n CYCLES (2,4,8,16)

Resolution Time: 10 Cycles

Sample Time

Successive Approximation Resolution Sequence

QCLK

Figure 28-21. Bypass Mode Conversion Timing

28.7.3.3

Channel Decode and Multiplexer

The internal multiplexer selects one of the eight analog input signals for conversion. The selected input is connected to the sample buffer amplifier or to the sample capacitor. The multiplexer also includes positive and negative stress protection circuitry, which prevents deselected channels from affecting the selected channel when current is injected into the deselected channels.

28.7.3.4

Sample Buffer

The sample buffer is used to raise the effective input impedance of the A/D converter, so that external factors (higher bandwidth or higher impedance) are less critical to accuracy. The input voltage is buffered onto the sample capacitor to reduce crosstalk between channels.

28.7.3.5

Comparator

The comparator output feeds into the SAR, which accumulates the A/D conversion result sequentially, beginning with the MSB.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-35

Queued Analog-to-Digital Converter (QADC)

28.7.3.6

Bias

The bias circuit is controlled by the STOP signal to power-up and power-down all the analog circuits.

28.7.3.7

Successive Approximation Register (SAR)

The input of the SAR is connected to the comparator output. The SAR sequentially receives the conversion value one bit at a time, starting with the MSB. After accumulating the 10 bits of the conversion result, the SAR data is transferred to the appropriate result location, where it may be read by user software.

28.7.3.8

State Machine

The state machine generates all timing to perform an A/D conversion. An internal start-conversion signal indicates to the A/D converter that the desired channel has been sent to the MUX. CCW[IST[1:0]] denotes the desired sample time. CCW[BYP] determines whether to bypass the sample amplifier. Once the end of conversion has been reached a signal is sent to the queue control logic indicating that a result is available for storage in the result RAM.

28.8

Digital Control Subsystem

The digital control subsystem includes the control logic to sequence the conversion activity, the system clock and periodic/interval timer, control and status registers, the conversion command word table RAM, and the result word table RAM. The central element for control of QADC conversions is the 64-entry conversion command word (CCW) table. Each CCW specifies the conversion of one input channel. Depending on the application, one or two queues can be established in the CCW table. A queue is a scan sequence of one or more input channels. By using a pause mechanism, subqueues can be created in the two queues. Each queue can be operated using one of several different scan modes. The scan modes for queue 1 and queue 2 are programmed in control registers QACR1 and QACR2. Once a queue has been started by a trigger event (any of the ways to cause the QADC to begin executing the CCWs in a queue or subqueue), the QADC performs a sequence of conversions and places the results in the result word table.

28.8.1

Queue Priority Timing Examples

This subsection describes the QADC priority scheme when trigger events on two queues overlap or conflict.

28.8.1.1

Queue Priority

Queue 1 has priority over queue 2 execution. These cases show the conditions under which queue 1 asserts its priority: • When a queue is not active, a trigger event for queue 1 or queue 2 causes the corresponding queue execution to begin. • When queue 1 is active and a trigger event occurs for queue 2, queue 2 cannot begin execution until queue 1 reaches completion or the paused state. The status register records the trigger event by reporting the queue 2 status as trigger pending. Additional trigger events for queue 2, which occur before execution can begin, are flagged as trigger overruns. • When queue 2 is active and a trigger event occurs for queue 1, the current queue 2 conversion is aborted. The status register reports the queue 2 status as suspended. Any trigger events occurring for queue 2 while it is suspended are flagged as trigger overruns. Once queue 1 reaches the MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-36

Freescale Semiconductor

Digital Control Subsystem

• •

completion or the paused state, queue 2 begins executing again. The programming of the RESUME bit in QACR2 determines which CCW is executed in queue 2. When simultaneous trigger events occur for queue 1 and queue 2, queue 1 begins execution and the queue 2 status is changed to trigger pending. When subqueues are paused

The pause feature can be used to divide queue 1 and/or queue 2 into multiple subqueues. A subqueue is defined by setting the pause bit in the last CCW of the subqueue. Figure 28-22 shows the CCW format and an example of using pause to create subqueues. Queue 1 is shown with four CCWs in each subqueue and queue 2 has two CCWs in each subqueue. The operating mode selected for queue 1 determines what type of trigger event causes the execution of each of the subqueues within queue 1. Similarly, the operating mode for queue 2 determines the type of trigger event required to execute each of the subqueues within queue 2. For example, when the external trigger rising edge continuous-scan mode is selected for queue 1, and there are six subqueues within queue 1, a separate rising edge is required on the external trigger signal after every pause to begin the execution of each subqueue (refer to Figure 28-22). The choice of single-scan or continuous-scan applies to the full queue, and is not applied to each subqueue. Once a subqueue is initiated, each CCW is executed sequentially until the last CCW in the subqueue is executed and the pause state is entered. Execution can only continue with the next CCW, which is the beginning of the next subqueue. A subqueue cannot be executed a second time before the overall queue execution has been completed.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-37

Queued Analog-to-Digital Converter (QADC)

Conversion Command Word (CCW) Table

Result Word Table

P 00

0

Beginning of Queue 1

00

0 0 1

Pause

0 0 0 1

Pause

0

P











0 0 BQ2 0 1

End of Queue 1

Channel Select, Sample, Hold, A/D Conversion



Beginning of Queue 2 Pause

0 1

Pause

0 1

Pause

0

63









P





1

Pause

0

End of Queue 2

63

Figure 28-22. QADC Queue Operation with Pause

Trigger events which occur during the execution of a subqueue are ignored, but the trigger overrun flag is set. When a continuous-scan mode is selected, a trigger event occurring after the completion of the last subqueue (after the queue completion flag is set), causes the execution to continue with the first subqueue, starting with the first CCW in the queue. When the QADC encounters a CCW with the pause bit set, the queue enters the paused state after completing the conversion specified in the CCW with the pause bit. The pause flag is set in QASR0, and a pause interrupt may be requested. The status of the queue is shown to be paused, indicating completion of a subqueue. The QADC then waits for another trigger event to again begin execution of the next subqueue.

28.8.1.2

Queue Priority Schemes

Because there are two conversion command queues and only one A/D converter, a priority scheme determines which conversion occurs. Each queue has a variety of trigger events that are intended to initiate conversions, and they can occur asynchronously in relation to each other and other conversions in progress. For example, a queue can be idle awaiting a trigger event; a trigger event can have occurred, but the first conversion has not started; a conversion can be in progress; a pause condition can exist awaiting another trigger event to continue the queue; and so on.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-38

Freescale Semiconductor

Digital Control Subsystem

The following paragraphs and figures outline the prioritizing criteria used to determine which conversion occurs in each overlap situation. NOTE Each situation in Figure 28-23 through Figure 28-33 is labeled S1 through S19. In each diagram, time is shown increasing from left to right. The execution of queue 1 and queue 2 (Q1 and Q2) is shown as a string of rectangles representing the execution time of each CCW in the queue. In most of the situations, there are four CCWs (labeled C1 to C4) in both queue 1 and queue 2. In some of the situations, CCW C2 is presumed to have the pause bit set, to show the similarities of pause and end-of-queue as terminations of queue execution. Trigger events are described in Table 28-22. Table 28-22. Trigger Events Trigger

Events

T1

Events that trigger queue 1 execution (external trigger, software-initiated single-scan enable bit, or completion of the previous continuous loop)

T2

Events that trigger queue 2 execution (external trigger, software-initiated single-scan enable bit, timer period/interval expired, or completion of the previous continuous loop)

When a trigger event causes a CCW execution in progress to be aborted, the aborted conversion is shown as a ragged end of a shortened CCW rectangle. The situation diagrams also show when key status bits are set. Table 28-23 describes the status bits. Table 28-23. Status Bits Bit

Function

CF flag

Set when the end of the queue is reached

PF flag

Set when a queue completes execution up through a pause bit

Trigger overrun error (TOR)

Set when a new trigger event occurs before the queue is finished servicing the previous trigger event

Below the queue execution flows are three sets of blocks that show the status information that is made available to the user. The first two rows of status blocks show the condition of each queue as: • Idle • Active • Pause • Suspended (queue 2 only) • Trigger pending The third row of status blocks shows the 4-bit QS status register field that encodes the condition of the two queues. Two transition status cases, QS = 0011 and QS = 0111, are not shown because they exist only very briefly between stable status conditions.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-39

Queued Analog-to-Digital Converter (QADC)

The first three examples in Figure 28-23 through Figure 28-25 (S1, S2, and S3) show what happens when a new trigger event is recognized before the queue has completed servicing the previous trigger event on the same queue. In situation S1 (Figure 28-23), one trigger event is being recognized on each queue while that queue is still working on the previously recognized trigger event. The trigger overrun error status bit is set, and the premature trigger event is otherwise ignored. A trigger event that occurs before the servicing of the previous trigger event is through does not disturb the queue execution in progress. T1 Q1:

T1 C1

C2

C3

C4 T2

TOR1

T2

CF1 Q2:

C1

C2

C3 TOR2

IDLE

Q1:

IDLE

0000

QS:

CF2

IDLE

ACTIVE

Q2:

C4

IDLE

ACTIVE

1000

0000

0000

0010

Figure 28-23. CCW Priority Situation 1

In situation S2 (Figure 28-24), more than one trigger event is recognized before servicing of a previous trigger event is complete. The trigger overrun bit is again set, but the additional trigger events are otherwise ignored. After the queue is complete, the first newly detected trigger event causes queue execution to begin again. When the trigger event rate is high, a new trigger event can be seen very soon after completion of the previous queue, leaving little time to retrieve the previous results. Also, when trigger events are occurring at a high rate for queue 1, the lower priority queue 2 channels may not get serviced at all. T1

T1

T1

T1

T1 T2

Q1:

C1

C2

C3

C4

C1

C2

C3

Q2: TOR1 TOR1 TOR1

CF1

T2

T2

C2

C3

C4 C1

TOR2 TOR2 Q1:

IDLE

ACTIVE

1000

1000

CF2

IDLE

ACTIVE

IDLE

Q2:

QS:

IDLE

C4

CF1

0000

ACTIVE

IDLE

0010

0000

Figure 28-24. CCW Priority Situation 2

Situation S3 (Figure 28-25) shows that when the pause feature is used, the trigger overrun error status bit is set the same way and that queue execution continues unchanged.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-40

Freescale Semiconductor

Digital Control Subsystem T1 Q1:

T1

T1

C1

C2

C3 T2

TOR1

T2 TOR1

C1

ACTIVE

QS:

PF2

PAUSE

1001

0101

CF2

IDLE

ACTIVE

0110

0100

C4

TOR2

ACTIVE

1000

0000

C3

PAUSE

IDLE

Q2:

T2

CF1

C2

TOR2 IDLE

C4

T2

PF1 Q2:

Q1:

T1

0001

ACTIVE

IDLE

0010

0000

Figure 28-25. CCW Priority Situation 3

The next two situations consider trigger events that occur for the lower priority queue 2, while queue 1 is actively being serviced. Situation S4 (Figure 28-26) shows that a queue 2 trigger event is recognized while queue 1 is active is saved, and as soon as queue 1 is finished, queue 2 servicing begins. T1 Q1:

C1

C2

C3

C4 CF1

T2

C1

C2

C3

C4

Q2: CF2 Q1:

IDLE

QS:

TRIGGERED

IDLE

Q2:

0000

IDLE

ACTIVE

1000

1011

ACTIVE

IDLE

0010

0000

Figure 28-26. CCW Priority Situation 4

Situation S5 (Figure 28-27) shows that when multiple queue 2 trigger events are detected while queue 1 is busy, the trigger overrun error bit is set, but queue 1 execution is not disturbed. Situation S5 also shows that the effect of queue 2 trigger events during queue 1 execution is the same when the pause feature is used for either queue.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-41

Queued Analog-to-Digital Converter (QADC)

T1 Q1:

T1 C1

C2 T2 T2

C3

T2 T2

PF1

Q2:

C1

Q2:

QS:

IDLE

0110

CF2 IDLE

ACTIVE ACTIVE

ACTIVE

1000 1011

0000

C4

TOR2

PAUSE

TRIG

IDLE

C3 PF2

ACTIVE

CF1

C2

TOR2 Q1:

C4

PAUSE

TRIG

ACTIVE

IDLE

0010

0000

0101 1001 1011

Figure 28-27. CCW Priority Situation 5

The remaining situations, S6 through S11, show the impact of a queue 1 trigger event occurring during queue 2 execution. Because queue 1 has higher priority, the conversion taking place in queue 2 is aborted so that there is no variable latency time in responding to queue 1 trigger events. In situation 6 (Figure 28-28), the conversion initiated by the second CCW in queue 2 is aborted just before the conversion is complete, so that queue 1 execution can begin. Queue 2 is considered suspended. After queue 1 is finished, queue 2 starts over with the first CCW, when the RESUME control bit is set to 0. Situation S7 (Figure 28-29) shows that when pause operation is not used with queue 2, queue 2 suspension works the same way. T1 Q1:

T1 C1

C2

C3

C4

RESUME = 0

T2 PF1 Q2:

CF1 C1

C1

C2

C2

C3

C4 CF2

Q1:

Q2:

QS

IDLE

ACTIVE

PAUSE

IDLE

0000

1000

0100

ACTIVE ACTIVE

IDLE

ACTIVE

SUSPEND

ACTIVE

0110

1010

0010

IDLE

0000

Figure 28-28. CCW Priority Situation 6

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-42

Freescale Semiconductor

Digital Control Subsystem .

T1 Q1:

T1 C1

C2

T2 Q2:

C3

PF1 C1 C1

C4

T2 C1

CF1

C3

C2

C3

C4 CF2

PF2 IDLE

Q1:

ACTIVE

Q2:

IDLE

ACTIVE

QS:

0000

0010

SUSPEND

PAUSE

ACTIVE

ACTIVE PAUSE ACT

0101 0110

0110

1010

SUSPEND

1010

IDLE

ACTIVE

IDLE

0010

0000

Figure 28-29. CCW Priority Situation 7

Situations S8 and S9 (Figure 28-30 and Figure 28-31) repeat the same two situations with the RESUME bit set to a 1. When the RESUME bit is set, following suspension, queue 2 resumes execution with the aborted CCW, not the first CCW, in the queue. T1 Q1:

T1 C1

C2

C3

C4

T2 PF1 Q2:

CF1 C1

C2

C2

C3

RESUME=1

C4 CF2

Q1:

IDLE

Q2:

QS:

ACTIVE

PAUSE

IDLE

0000

1000

0100

ACTIVE ACTIVE

IDLE

ACTIVE

SUSPEND

ACTIVE

IDLE

0110

1010

0010

0000

Figure 28-30. CCW Priority Situation 8

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-43

Queued Analog-to-Digital Converter (QADC)

T1 Q1:

T1 C1

C2

T2 Q2:

C3

PF1 C1 C1

C2

C4

T2

CF1 C4

C3

C2

C4 CF2

PF2 ACTIVE

IDLE

Q1:

Q2:

IDLE

ACTIVE

QS:

0000

0010

PAUSE

ACTIVE

SUSPEND ACT PAUSE ACTIVE

1010

RESUME=1

0110 0101

IDLE

IDLE

SUSPEND ACT

0110

1010

0000

0010

Figure 28-31. CCW Priority Situation 9

Situations S10 and S11 (Figure 28-32 and Figure 28-33) show that when an additional trigger event is detected for queue 2 while the queue is suspended, the trigger overrun error bit is set, the same as if queue 2 were being executed when a new trigger event occurs. Trigger overrun on queue 2 thus allows the user to know that queue 1 is taking up so much QADC time that queue 2 trigger events are being lost. T1 Q1: T2 Q2:

T1 C1

C2

T2 C1

C3

PF1

T2 C1

C2

C2

TOR2

Q2:

IDLE

QS:

0000

ACTIVE

0010

SUSPEND

1010

T2

CF1 C3

C3 PF2

ACTIVE

IDLE

Q1:

C4

PAUSE

ACTIVE

PAUSE ACT

0110

0101 0110

C4 CF2

TOR2 ACTIVE

SUSPEND

1010

RESUME = 0

IDLE

ACTIVE

IDLE

0010

0000

Figure 28-32. CCW Priority Situation 10

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-44

Freescale Semiconductor

Digital Control Subsystem

T1 C1

Q1: T2 Q2:

T1 C2

T2 C1

PF1

C2

IDLE

QS:

0000

ACTIVE

C3

C4

PAUSE

RESUME = 1

C4 CF2

ACTIVE

ACTIVE

0110 0101

1010

CF1

TOR2

SUSPEND ACT PAUSE

0010

C4

T2

PF2

ACTIVE

IDLE

Q2:

T2 C2

TOR2 Q1:

C3

0110

IDLE

SUSPEND ACT

1010

0010

IDLE

0000

Figure 28-33. CCW Priority Situation 11

The previous situations cover normal overlap conditions that arise with asynchronous trigger events on the two queues. An additional conflict to consider is that the freeze condition can arise while the QADC is actively executing CCWs. The conventional use for the debug mode is for software/hardware debugging. When the CPU enters background debug mode, peripheral modules can cease operation. When freeze is detected, the QADC completes the conversion in progress, unlike the abort that occurs when queue 1 suspends queue 2. After the freeze condition is removed, the QADC continues queue execution with the next CCW in sequence. Trigger events that occur during freeze are not captured. When a trigger event is pending for queue 2 before freeze begins, that trigger event is remembered when the freeze is passed. Similarly, when freeze occurs while queue 2 is suspended, after freeze, queue 2 resumes execution as soon as queue 1 is finished. Situations 12 through 19 (Figure 28-34 to Figure 28-41) show examples of all of the freeze situations. FREEZE T1 Q1:

C1

C2

C3

C4 CF1

Figure 28-34. CCW Freeze Situation 12

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-45

Queued Analog-to-Digital Converter (QADC)

FREEZE T2 Q2:

C1

C2

C3

C4 CF2

Figure 28-35. CCW Freeze Situation 13 TRIGGERS IGNORED FREEZE

T1 Q1:

T1 T1 C1

C2

C3

C4

T2 T2 CF1

Figure 28-36. CCW Freeze Situation 14 TRIGGERS IGNORED FREEZE

T2 Q2:

T2 T2 C1

C2

C3

C4

T1 T1 CF2

Figure 28-37. . CCW Freeze Situation 15 TRIGGERS IGNORED FREEZE

T1 Q1:

T1 C1

C2

T1 C3

PF1

C4 CF1

Figure 28-38. CCW Freeze Situation 16

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-46

Freescale Semiconductor

Digital Control Subsystem

TRIGGERS IGNORED FREEZE

T2

T2 Q2:

C1

T2

C2

C3

C4

PF2

CF2

Figure 28-39. CCW Freeze Situation 17 FREEZE T1 Q1:

C1

C2

C3

C4

T2

CF1

Q2: TRIGGER CAPTURED, RESPONSE DELAYED AFTER FREEZE

C1

C2

C3

C4 CF2

Figure 28-40. CCW Freeze Situation 18 FREEZE T1 Q1:

C1

C2

C3

C4

T2 Q2:

CF1 C1

C2

C3

C4

C4 CF2

Figure 28-41. CCW Freeze Situation 19

28.8.2

Boundary Conditions

The queue operation boundary conditions are: • The first CCW in a queue specifies channel 63, the end-of-queue (EOQ) code. The queue becomes active and the first CCW is read. The end-of-queue is recognized, the completion flag is set, and the queue becomes idle. A conversion is not performed. • BQ2 (beginning of queue 2) is set at the end of the CCW table (63) and a trigger event occurs on queue 2. The end-of-queue condition is recognized, a conversion is performed, the completion flag is set, and the queue becomes idle. • BQ2 is set to CCW0 and a trigger event occurs on queue 1. After reading CCW0, the end-of-queue condition is recognized, the completion flag is set, and the queue becomes idle. A conversion is not performed.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-47

Queued Analog-to-Digital Converter (QADC)



BQ2 (beginning of queue 2) is set beyond the end of the CCW table (64–127) and a trigger event occurs on queue 2. The end-of-queue condition is recognized immediately, the completion flag is set, and the queue becomes idle. A conversion is not performed. NOTE Multiple end-of-queue conditions may be recognized simultaneously, although there is no change in QADC behavior. For example, if BQ2 is set to CCW0, CCW0 contains the EOQ code, and a trigger event occurs on queue 1, the QADC reads CCW0 and detects both end-of-queue conditions. The completion flag is set and queue 1 becomes idle.

Boundary conditions also exist for combinations of pause and end-of-queue. One case is when a pause bit is in one CCW and an end-of-queue condition is in the next CCW. The conversion specified by the CCW with the pause bit set completes normally. The pause flag is set. However, because the end-of-queue condition is recognized, the completion flag is also set and the queue status becomes idle, not paused. Examples of this situation include: • The pause bit is set in CCW5 and the channel 63 (EOQ) code is in CCW6. • The pause is in CCW63. • During queue 1 operation, the pause bit is set in CCW20 and BQ2 points to CCW21. Another pause and end-of-queue boundary condition occurs when the pause and an end-of-queue condition occur in the same CCW. Both the pause and end-of-queue conditions are recognized simultaneously. The end-of-queue condition has precedence so a conversion is not performed for the CCW and the pause flag is not set. The QADC sets the completion flag and the queue status becomes idle. Examples of this situation are: • The pause bit is set in CCW10 and EOQ is programmed into CCW10. • During queue 1 operation, the pause bit set in CCW32, which is also BQ2.

28.8.3

Scan Modes

The QADC queuing mechanism allows application software to utilize different requirements for automatically scanning input channels. In single-scan mode, a single pass through a sequence of conversions defined by a queue is performed. In continuous-scan mode, multiple passes through a sequence of conversions defined by a queue are executed. The possible modes are: • Disabled mode and reserved mode • Software-initiated single-scan mode • Externally triggered single-scan mode • Externally gated single-scan mode • Interval timer single-scan mode • Software-initiated continuous-scan mode • Externally triggered continuous-scan mode • Externally gated continuous-scan mode • Periodic timer continuous-scan mode The following paragraphs describe single-scan and continuous-scan operations.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-48

Freescale Semiconductor

Digital Control Subsystem

28.8.4

Disabled Mode

When disabled mode is selected, the queue is not active. Trigger events cannot initiate queue execution. When both queue 1 and queue 2 are disabled, there is no possibility of encountering wait states when accessing CCW table and result RAM. When both queues are disabled, it is safe to change the QCLK prescaler values.

28.8.5

Reserved Mode

Reserved mode is available for future mode definitions. When reserved mode is selected, the queue is not active. The behavior is the same as disabled mode.

28.8.6

Single-Scan Modes

A single-scan queue operating mode is used to execute a single pass through a sequence of conversions defined by a queue. By programming the MQ1 field in QACR1 or the MQ2 field in QACR2, these modes can be selected: • Software-initiated single-scan mode • Externally triggered single-scan mode • Externally gated single-scan mode • Interval timer single-scan mode NOTE Queue 2 cannot be programmed for externally gated single-scan mode. In all single-scan queue operating modes, queue execution is enabled by writing the single-scan enable bit to a 1 in the queue’s control register. The single-scan enable bits, SSE1 and SSE2, are provided for queue 1 and queue 2, respectively. Until a queue’s single-scan enable bit is set, any trigger events for that queue are ignored. The single-scan enable bit may be set to a 1 during the same write cycle that selects the single-scan queue operating mode. The single-scan enable bit can be written only to 1, but will always read 0. Once set, writing the single-scan enable bit to 0 has no effect. Only the QADC can clear the single-scan enable bit. The completion flag, completion interrupt, or queue status is used to determine when the queue has completed. After the single-scan enable bit is set, a trigger event causes the QADC to begin execution with the first CCW in the queue. The single-scan enable bit remains set until the queue is completed. After the queue reaches completion, the QADC resets the single-scan enable bit to 0. Writing the single-scan enable bit to a 1 or a 0 before the queue scan is complete has no effect; however, if the queue operating mode is changed, the new queue operating mode and the value of the single-scan enable bit are recognized immediately. The conversion in progress is aborted, and the new queue operating mode takes effect. In software-initiated single-scan mode, writing a 1 to the single-scan enable bit causes the QADC to generate a trigger event internally, and queue execution begins immediately. In the other single-scan queue operating modes, once the single-scan enable bit is written, the selected trigger event must occur before the queue can start. The single-scan enable bit allows the entire queue to be scanned once. A trigger overrun is captured if a trigger event occurs during queue execution in an edge-sensitive external trigger mode or a periodic/interval timer mode. In the interval timer single-scan mode, the next expiration of the timer is the trigger event for the queue. After queue execution is complete, the queue status is shown as idle. The queue can be restarted by setting the single-scan enable bit to 1. Queue execution begins with the first CCW in the queue.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-49

Queued Analog-to-Digital Converter (QADC)

28.8.6.1

Software-Initiated Single-Scan Mode

Software can initiate the execution of a scan sequence for queue 1 or 2 by selecting software-initiated single-scan mode and writing the single-scan enable bit in QACR1 or QACR2. A trigger event is generated internally and the QADC immediately begins execution of the first CCW in the queue. If a pause occurs, another trigger event is generated internally, and then execution continues without pausing. The QADC automatically performs the conversions in the queue until an end-of-queue condition is encountered. The queue remains idle until the single-scan enable bit is again set. While the time to internally generate and act on a trigger event is very short, the queue status field can be read as momentarily indicating that the queue is paused. The trigger overrun flag is never set while in software-initiated single-scan mode. The software-initiated single-scan mode is useful when: • Complete control of queue execution is required • There is a need to easily alternate between several queue sequences

28.8.6.2

Externally Triggered Single-Scan Mode

The externally triggered single-scan mode is available on both queue 1 and queue 2. Both rising and falling edge triggered modes are available. A scan must be enabled by setting the single-scan enable bit for the queue. The first external trigger edge causes the queue to be executed one time. Each CCW is read and the indicated conversions are performed until an end-of-queue condition is encountered. After the queue is completed, the QADC clears the single-scan enable bit. The single-scan enable bit can be written again to allow another scan of the queue to be initiated by the next external trigger edge. The externally triggered single-scan mode is useful when the input trigger rate can exceed the queue execution rate. Analog samples can be taken in sync with an external event, even though application software does not require data taken from every edge. Externally triggered single-scan mode can be enabled to get one set of data and, at a later time, be enabled again for the next set of samples. When a pause bit is encountered during externally triggered single-scan mode, another trigger event is required for queue execution to continue. Software involvement is not required for queue execution to continue from the paused state.

28.8.6.3

Externally Gated Single-Scan Mode

The QADC provides external gating for queue 1 only. When externally gated single-scan mode is selected, the input level on the associated external trigger signal enables and disables queue execution. The polarity of the external gate signal is fixed so that only a high level opens the gate and a low level closes the gate. Once the gate is open, each CCW is read and the indicated conversions are performed until the gate is closed. Queue scan must be enabled by setting the single-scan enable bit for queue 1. If a pause is encountered, the pause flag does not set, and execution continues without pausing. While the gate is open, queue 1 executes one time. Each CCW is read and the indicated conversions are performed until an end-of-queue condition is encountered. When queue 1 completes, the QADC sets the completion flag (CF1) and clears the single-scan enable bit. Set the single-scan enable bit again to allow another scan of queue 1 to be initiated during the next open gate. If the gate closes before queue 1 completes execution, the current CCW completes, execution of queue 1 stops, the single-scan enable bit is cleared, and the PF1 bit is set. The CWPQ1 field can be read to determine the last valid conversion in the queue. The single-scan enable bit must be set again and the PF1

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-50

Freescale Semiconductor

Digital Control Subsystem

bit should be cleared before another scan of queue 1 is initiated during the next open gate. The start of queue 1 is always the first CCW in the CCW table. Because the gate level is only sampled after each conversion during queue execution, closing the gate for a period less than a conversion time interval does not guarantee the closure will be captured.

28.8.6.4

Interval Timer Single-Scan Mode

Both queues can use the periodic/interval timer in a single-scan queue operating mode. The timer interval can range from 27 to 217 QCLK cycles in binary multiples. When the interval timer single-scan mode is selected and the single-scan enable bit is set in QACR1 or QACR2, the timer begins counting. When the time interval elapses, an internal trigger event is generated to start the queue and the QADC begins execution with the first CCW. The QADC automatically performs the conversions in the queue until a pause or an end-of-queue condition is encountered. When a pause occurs, queue execution stops until the timer interval elapses again, and queue execution continues. When queue execution reaches an end-of-queue situation, the single-scan enable bit is cleared. Set the single-scan enable bit again to allow another scan of the queue to be initiated by the interval timer. The interval timer generates a trigger event whenever the time interval elapses. The trigger event may cause queue execution to continue following a pause or may be considered a trigger overrun. Once queue execution is completed, the single-scan enable bit must be set again to allow the timer to count again. Normally, only one queue is enabled for interval timer single-scan mode, and the timer will reset at the end-of-queue. However, if both queues are enabled for either single-scan or continuous interval timer mode, the end-of-queue condition will not reset the timer while the other queue is active. In this case, the timer will reset when both queues have reached end-of-queue. See Section 28.8.9, “Periodic/Interval Timer for a definition of interval timer reset conditions. The interval timer single-scan mode can be used in applications that need coherent results. For example: • When it is necessary that all samples are guaranteed to be taken during the same scan of the analog signals • When the interrupt rate in the periodic timer continuous-scan mode would be too high • In sensitive battery applications, where the interval timer single-scan mode uses less power than the software-initiated continuous-scan mode

28.8.7

Continuous-Scan Modes

A continuous-scan queue operating mode is used to execute multiple passes through a sequence of conversions defined by a queue. By programming the MQ1 field in QACR1 or the MQ2 field in QACR2, these modes can be selected: • Software-initiated continuous-scan mode • Externally triggered continuous-scan mode • Externally gated continuous-scan mode • Periodic timer continuous-scan mode NOTE Queue 2 cannot be programmed for externally gated continuous-scan mode. When a queue is programmed for a continuous-scan mode, the single-scan enable bit in the queue control register does not have any meaning or effect. As soon as the queue operating mode is programmed, the selected trigger event can initiate queue execution. MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-51

Queued Analog-to-Digital Converter (QADC)

In the case of software-initiated continuous-scan mode, the trigger event is generated internally and queue execution begins immediately. In the other continuous-scan queue operating modes, the selected trigger event must occur before the queue can start. A trigger overrun is captured if a trigger event occurs during queue execution in the externally triggered continuous-scan mode or the periodic timer continuous-scan mode. After queue execution is complete, the queue status is shown as idle. Because the continuous-scan queue operating modes allow the entire queue to be scanned multiple times, software involvement is not needed for queue execution to continue from the idle state. The next trigger event causes queue execution to begin again, starting with the first CCW in the queue. NOTE In continuous-scan modes, all samples are guaranteed to be taken during one pass through the queue (coherently), except when a queue 1 trigger event halts queue 2 execution. The time between consecutive conversions has been designed to be consistent. However, for queues that end with a CCW containing the EOQ code (channel 63), the time between the last queue conversion and the first queue conversion requires one additional CCW fetch cycle. Continuous samples are not coherent at this boundary. In addition, the time from trigger to first conversion cannot be guaranteed, because it is a function of clock synchronization, programmable trigger events, queue priorities, and so on.

28.8.7.1

Software-Initiated Continuous-Scan Mode

When software-initiated continuous-scan mode is selected, the trigger event is generated automatically by the QADC. Queue execution begins immediately. If a pause is encountered, another trigger event is generated internally, and execution continues without pausing. When the end-of-queue is reached, another internal trigger event is generated and queue execution restarts at the beginning of the queue. While the time to internally generate and act on a trigger event is very short, the queue status field can be read as momentarily indicating that the queue is idle. The trigger overrun flag is never set while in software-initiated continuous-scan mode. The software-initiated continuous-scan mode keeps the result registers updated more frequently than any of the other queue operating modes. The result table can always be read to get the latest converted value for each channel. The channels scanned are kept up to date by the QADC without software involvement. The software-initiated continuous-scan mode may be chosen for either queue, but is normally used only with queue 2. When software-initiated continuous-scan mode is chosen for queue 1, that queue operates continuously and queue 2, being lower in priority, never gets executed. The short interval of time between a queue 1 completion and the subsequent trigger event is not sufficient to allow queue 2 execution to begin. The software-initiated continuous-scan mode is a useful choice with queue 2 for converting channels that do not need to be synchronized to anything or for slow-to-change analog channels. Interrupts are normally not used with the software-initiated continuous-scan mode. Rather, the latest conversion results can be read from the result table at any time. Once initiated, software action is not needed to sustain conversions of channel.

28.8.7.2

Externally Triggered Continuous-Scan Mode

The QADC provides external trigger signals for both queues. When externally triggered continuous-scan mode is selected, a transition on the associated external trigger signal initiates queue execution. The MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-52

Freescale Semiconductor

Digital Control Subsystem

polarity of the external trigger signal is programmable, so that a mode which begins queue execution on the rising or falling edge can be selected. Each CCW is read and the indicated conversions are performed until an end-of-queue condition is encountered. When the next external trigger edge is detected, queue execution begins again automatically. Software involvement is not needed between trigger events. When a pause bit is encountered in externally triggered continuous-scan mode, another trigger event is required for queue execution to continue. Software involvement is not needed for queue execution to continue from the paused state. Some applications need to synchronize the sampling of analog channels to external events. There are cases when it is not possible to use software initiation of the queue scan sequence, because interrupt response times vary. Externally triggered continuous-scan mode is useful in these cases.

28.8.7.3

Externally Gated Continuous-Scan Mode

The QADC provides external gating for queue 1 only. When externally gated continuous-scan mode is selected, the input level on the associated external trigger signal enables and disables queue execution. The polarity of the external gate signal is fixed so that a high level opens the gate and a low level closes the gate. Once the gate is open, each CCW is read and the indicated conversions are performed until the gate is closed. When the gate opens again, queue execution automatically restarts at the beginning of the queue. Software involvement is not needed between trigger events. If a pause in a CCW is encountered, the pause flag does not set, and execution continues without pausing. The purpose of externally gated continuous-scan mode is to continuously collect digitized samples while the gate is open and to have the most recent samples available. It is up to the programmer to ensure that the gate is not opened so long that an end-of-queue is reached. In the event that the queue completes before the gate closes, the CF1 flag will set, and the queue will roll over to the beginning and continue conversions until the gate closes. If the gate remains open and the CF1 flag is not cleared, when the queue completes a second time the TOR1 flag will set and the queue will roll-over again. The queue will continue to execute until the gate closes or the mode is disabled. If the gate closes before queue 1 completes execution, the QADC stops and sets the PF1 bit to indicate an incomplete queue. The CWPQ1 field can be read to determine the last valid conversion in the queue. If the gate opens again, execution of queue 1 restarts. The start of queue 1 is always the first CCW in the CCW table. The condition of the gate is only sampled after each conversion during queue execution, so closing the gate for a period less than a conversion time interval does not guarantee the closure will be captured.

28.8.7.4

Periodic Timer Continuous-Scan Mode

The QADC includes a dedicated periodic timer for initiating a scan sequence on queue 1 and/or queue 2. A programmable timer interval ranging from 27 to 217 times the QCLK period in binary multiples can be selected. The QCLK period is prescaled down from the MCU clock. When a periodic timer continuous-scan mode is selected, the timer begins counting. After the programmed interval elapses, the timer generated trigger event starts the appropriate queue. The QADC automatically performs the conversions in the queue until an end-of-queue condition or a pause is encountered. When a pause occurs, the QADC waits for the periodic interval to expire again, then continues with the queue. Once EOQ has been detected, the next trigger event causes queue execution to restart with the first CCW in the queue. The periodic timer generates a trigger event whenever the time interval elapses. The trigger event may cause queue execution to continue following a pause or queue completion or may be considered a trigger overrun. As with all continuous-scan queue operating modes, software action is not needed between

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-53

Queued Analog-to-Digital Converter (QADC)

trigger events. Because both queues may be triggered by the periodic/interval timer, see Section 28.8.9, “Periodic/Interval Timer for a summary of periodic/interval timer reset conditions.

28.8.8

QADC Clock (QCLK) Generation

Figure 28-42 is a block diagram of the QCLK subsystem. The QCLK provides the timing for the A/D converter state machine which controls the timing of the conversion. The QCLK is also the input to a 17-stage binary divider which implements the periodic/interval timer. To retain the specified analog conversion accuracy, the QCLK frequency (fQCLK) must be within the tolerance specified in MCF5282 Electrical Characteristics. Before using the QADC, the prescaler must be initialized with values that put the QCLK within the specified range. Though most applications initialize the prescaler once and do not change it, write operations to the prescaler fields are permitted. QPR[6:0] System Clock

Divide by 2

Prescaler

SAR Control

Input Sample Time from CCW 2

ATD Converter State Machine

SAR

10

Binary Counter 27 28 29 210 211 212 213 214 215 216 217 Queue 1 and Queue 2 Timer Mode Rate Selection

8

Periodic Timer/Interval Timer Select

2

Periodic/Interval Trigger Event for Q1 and Q2

Figure 28-42. QADC Clock Subsystem Functions

CAUTION A change in the prescaler value while a conversion is in progress is likely to corrupt the result. Therefore, any prescaler write operation should be done only when both queues are in the disabled modes. To accommodate the wide range of the system clock frequency, QCLK is generated by a programmable prescaler which divides the system clock. To allow the A/D conversion time to be maximized across the spectrum of system clock frequencies, the QADC prescaler permits the QCLK frequency to be software selectable. The frequency of QCLK is set with the QPR field in QACR0.

28.8.9

Periodic/Interval Timer

The QADC periodic/interval timer can be used to generate trigger events at a programmable interval, initiating execution of queue 1 and/or queue 2. The periodic/interval timer stays reset under these conditions: MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-54

Freescale Semiconductor

Digital Control Subsystem

• • • •

Both queue 1 and queue 2 are programmed to any mode which does not use the periodic/interval timer. System reset is asserted. Stop mode is enabled. Debug mode is enabled. NOTE Interval timer single-scan mode does not start the periodic/interval timer until the single-scan enable bit is set.

These conditions will cause a pulsed reset of the periodic/interval timer during use: • A queue 1 operating mode change to a mode which uses the periodic/interval timer, even if queue 2 is already using the timer • A queue 2 operating mode change to a mode which uses the periodic/interval timer, provided queue 1 is not in a mode which uses the periodic/interval timer • Roll over of the timer During stop mode, the periodic/interval timer is held in reset. Because stop mode causes QACR1 and QACR2 to be reset to 0, a valid periodic or interval timer mode must be written after leaving stop mode to release the timer from reset. When QADC debug mode is entered and a periodic or interval timer mode is selected, the timer counter is reset after the conversion in progress completes. When the periodic or interval timer mode has been enabled (the timer is counting), but a trigger event has not been issued, debug mode takes effect immediately, and the timer is held in reset. Removal of the QADC debug condition restarts the counter from the beginning. Refer to Section 28.3.1, “Debug Mode for more information.

28.8.10 Conversion Command Word Table The conversion command word (CCW) table is 64 half-word (128 byte) long RAM with 10 bits of each entry implemented. The CCW table is written by the user and is not modified by the QADC. Each CCW requests the conversion of one analog channel to a digital result. The CCW specifies the analog channel number, the input sample time, and whether the queue is to pause after the current CCW. The 10 implemented bits of the CCW can be read and written. The remaining six bits are unimplemented and read as 0s; write operations have no effect. Each location in the CCW table corresponds to a location in the result word table. When a conversion is completed for a CCW entry, the 10-bit result is written in the corresponding result word entry. The beginning of queue 1 is the first location in the CCW table. The first location of queue 2 is specified by the beginning of queue 2 pointer field (BQ2) in QACR2. To dedicate the entire CCW table to queue 1, place queue 2 in disabled mode and write BQ2 to 64 or greater. To dedicate the entire CCW table to queue 2, place queue 1 in disabled mode and set BQ2 to the first location in the CCW table (CCW0). Figure 28-43 illustrates the operation of the queue structure.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-55

Queued Analog-to-Digital Converter (QADC)

Conversion Command Word (CCW) Table 00

Result Word Table

Beginning of Queue 1

00











• Channel Select, Sample, Hold, A/D Conversion

End of Queue 1 Beginning of Queue 2

63











• 63

End of Queue 2

10-bit Conversion Command Word Format

10-bit Result, Readable in Three 16-BIT Formats

9

8

[7:6]

[5:0]

15 14 13 12 11 10

[9:0]

P

BYP

IST

CHAN

0 0 0 0 0 0

RESULT

Right-Justified, Unsigned Result P — Pause after Conversion until Next Trigger BYP — Bypass Buffer Amplifier IST — Input Sample Time CHAN — Channel Number and End-of-Queue Code

[15:6] S

RESULT

[5:0] 0 0 0 0 0 0

Left-Justified, Signed Result [15:6]

[5:0]

RESULT

0 0 0 0 0 0

Left-Justified, Unsigned Result

Figure 28-43. QADC Conversion Queue Operation

To prepare the QADC for a scan sequence, write to the CCW table to specify the desired channel conversions. The criteria for queue execution is established by selecting the queue operating mode. The queue operating mode determines what type of trigger event starts queue execution. A trigger event refers to any of the ways that cause the QADC to begin executing the CCWs in a queue or subqueue. An external trigger is only one of the possible trigger events. A scan sequence may be initiated by: • A software command • Expiration of the periodic/interval timer • An external trigger signal • An external gated signal (queue 1 only) The queue can be scanned in single pass or continuous fashion. When a single-scan mode is selected, the scan must be engaged by setting the single-scan enable bit. When a continuous-scan mode is selected, the queue remains active in the selected queue operating mode after the QADC completes each queue scan sequence. During queue execution, the QADC reads each CCW from the active queue and executes conversions in three stages: • Initial sample • Final sample MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 28-56

Freescale Semiconductor

Digital Control Subsystem



Resolution

During initial sample, a buffered version of the selected input channel is connected to the sample capacitor at the input of the sample buffer amplifier. During the final sample period, the sample buffer amplifier is bypassed, and the multiplexer input charges the sample capacitor directly. Each CCW specifies a final input sample time of 2, 4, 8, or 16 QCLK cycles. When an analog-to-digital conversion is complete, the result is written to the corresponding location in the result word table. The QADC continues to sequentially execute each CCW in the queue until the end of the queue is detected or a pause bit is found in a CCW. When the pause bit is set in the current CCW, the QADC stops execution of the queue until a new trigger event occurs. The pause status flag bit is set, and an interrupt may optionally be requested. After the trigger event occurs, the paused state ends, and the QADC continues to execute each CCW in the queue until another pause is encountered or the end of the queue is detected. An end-of-queue condition occurs when: • The CCW channel field is programmed with 63 to specify the end of the queue. • The end-of-queue 1 is implied by the beginning of queue 2, which is specified by the BQ2 field in QACR2. • The physical end of the queue RAM space defines the end of either queue. When any of the end-of-queue conditions is recognized, a queue completion flag is set, and if enabled, an interrupt is requested. These situations prematurely terminate queue execution: • Queue 1 is higher in priority than queue 2. When a trigger event occurs on queue 1 during queue 2 execution, the execution of queue 2 is suspended by aborting the execution of the CCW in progress, and queue 1 execution begins. When queue 1 execution is complete, queue 2 conversions restart with the first CCW entry in queue 2 or the first CCW of the queue 2 subqueue being executed when queue 2 was suspended. Alternately, conversions can restart with the aborted queue 2 CCW entry. The RESUME bit in QACR2 selects where queue 2 begins after suspension. By choosing to re-execute all of the suspended queue 2 CCWs (RESUME = 0), all of the samples are guaranteed to have been taken during the same scan pass. However, a high trigger event rate for queue 1 can prevent completion of queue 2. If this occurs, execution of queue 2 can begin with the aborted CCW entry (RESUME = 1). • Any conversion in progress for a queue is aborted when that queue’s operating mode is changed to disabled. Putting a queue into the disabled mode does not power down the converter. • Changing a queue’s operating mode to another valid mode aborts any conversion in progress. The queue restarts at its beginning once an appropriate trigger event occurs. • For low-power operation, the stop bit can be set to prepare the module for a loss of clocks. The QADC aborts any conversion in progress when stop mode is entered. • When the QADC debug bit is set and the CPU enters background debug mode, the QADC freezes at the end of the conversion in progress. After leaving debug mode, the QADC resumes queue execution beginning with the next CCW entry. Refer to Section 28.3.1, “Debug Mode” for more information.

28.8.11 Result Word Table The result word table is a 64 half-word (128 byte) long by 10-bit wide RAM. An entry is written by the QADC after completing an analog conversion specified by the corresponding CCW table entry. The result word table can be read or written, but in normal operation is only read to obtain analog conversions from the QADC. Unimplemented bits read as 0s and writes have no effect.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

28-57

Chapter 33 Electrical Characteristics This chapter contains electrical specification tables and reference timing diagrams for the MCF5282 microcontroller unit. This section contains detailed information on power considerations, DC/AC electrical characteristics, and AC timing specifications of MCF5282. The electrical specifications are preliminary and are from previous designs or design simulations. These specifications may not be fully tested or guaranteed at this early stage of the product life cycle; however, these specifications will be met for production silicon. Finalized specifications will be published after complete characterization and device qualifications have been completed. NOTE The parameters specified in this MCU document supersede any values found in the module specifications.

33.1

Maximum Ratings Table 33-1. Absolute Maximum Ratings1, 2 Rating

Symbol

Value

Unit

VDD

– 0.3 to +4.0

V

Clock Synthesizer Supply Voltage

VDDPLL

– 0.3 to +4.0

V

RAM Memory Standby Supply Voltage

VSTBY

– 0.3 to + 4.0

V

Flash Memory Supply Voltage

VDDF

– 0.3 to +4.0

V

Flash Memory Program / Erase Supply Voltage

VPP

– 0.3 to + 6.0

V

Analog Supply Voltage

VDDA

– 0.3 to +6.0

V

Analog Reference Supply Voltage

VRH

– 0.3 to +6.0

V

Analog ESD Protection Voltage

VDDH

– 0.3 to +6.0

V

Supply Voltage

Digital Input Voltage

3

VIN

– 0.3 to + 6.0

V

VAIN

– 0.3 to + 6.0

V

EXTAL pin voltage

VEXTAL

0 to 3.3

V

XTAL pin voltage

Analog Input Voltage

VXTAL

0 to 3.3

V

Instantaneous Maximum Current Single pin limit (applies to all pins) 3, 4, 5

ID

25

mA

Maximum Power Supply Current 5

IDD

300

mA

Operating Temperature Range (Packaged)

TA

– 40 to 85

°C

Tstg

– 65 to 150

°C

Tj

105

oC

HBM

2000

V

Storage Temperature Range Maximum operating junction temperature ESD Target for Human Body 1

Model6

Functional operating conditions are given in DC Electrical Specifications. Absolute Maximum Ratings are stress ratings only, and functional operation at the maxima is not guaranteed. Stress beyond those listed may affect device reliability or cause permanent damage to the device.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

33-1

Electrical Characteristics 2

3

4 5

6

33.2

This device contains circuitry protecting against damage due to high static voltage or electrical fields; however, it is advised that normal precautions be taken to avoid application of any voltages higher than maximum-rated voltages to this high-impedance circuit. Reliability of operation is enhanced if unused inputs are tied to an appropriate logic voltage level (e.g., either VSS or VDD). Input must be current limited to the value specified. To determine the value of the required current-limiting resistor, calculate resistance values for positive and negative clamp voltages, then use the larger of the two values. 6.0V voltage excludes XTAL and EXTAL pads. All functional non-supply pins are internally clamped to VSS and VDD. Power supply must maintain regulation within operating VDD range during instantaneous and operating maximum current conditions. If positive injection current (Vin > VDD) is greater than IDD, the injection current may flow out of VDD and could result in external power supply going out of regulation. Insure external VDD load will shunt current greater than maximum injection current. This will be the greatest risk when the MCU is not consuming power (ex; no clock).Power supply must maintain regulation within operating VDD range during instantaneous and operating maximum current conditions. All ESD testing methodology is in conformity with CDF-AEC-Q100 Stress Test Qualification for Automotive Grade Integrated Circuits.

Thermal Characteristics

Table 33-2 lists thermal resistance values. Table 33-2. Thermal Characteristics Characteristic

2 3 4 5

Value

Unit

Junction to ambient, natural convection

Four layer board (2s2p)

θJMA

261,2

°C/W

Junction to ambient (@200 ft/min)

Four layer board (2s2p)

θJMA

231,2

°C/W

Junction to board

θJB

153

°C/W

Junction to case

θJC

104

°C/W

Ψjt

21,5

°C/W

Junction to top of package 1

Symbol

Natural convection

θJMA and Ψjt parameters are simulated in accordance with EIA/JESD Standard 51-2 for natural convection. Freescale recommends the use of θJA and power dissipation specifications in the system design to prevent device junction temperatures from exceeding the rated specification. System designers should be aware that device junction temperatures can be significantly influenced by board layout and surrounding devices. Conformance to the device junction temperature specification can be verified by physical measurement in the customer’s system using the Ψjt parameter, the device power dissipation, and the method described in EIA/JESD Standard 51-2. Per JEDEC JESD51-6 with the board horizontal. Thermal resistance between the die and the printed circuit board per JEDEC JESD51-8. Board temperature is measured on the top surface of the board near the package. Thermal resistance between the die and the case top surface as measured by the cold plate method (MIL SPEC-883 Method 1012.1). Thermal characterization parameter indicating the temperature difference between package top and the junction temperature per JEDEC JESD51-2. When Greek letters are not available, the thermal characterization parameter is written as Psi-JT.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 33-2

Freescale Semiconductor

DC Electrical Specifications

The average chip-junction temperature (TJ) in °C can be obtained from: T J = T A + ( P D × Θ JMA ) (1)

Where: TA= Ambient Temperature, ×C QJMA= Package Thermal Resistance, Junction-to-Ambient, ×C/W PD= PINT + PI/O PINT= IDD ¥ VDD, Watts - Chip Internal Power PI/O= Power Dissipation on Input and Output Pins — User Determined For most applications PI/O < PINT and can be neglected. An approximate relationship between PD and TJ (if PI/O is neglected) is: P D = K ÷ ( T J + 273°C ) (2)

Solving equations 1 and 2 for K gives: K = PD × (TA + 273 × C) + QJMA × PD 2 (3)

where K is a constant pertaining to the particular part. K can be determined from equation (3) by measuring PD (at equilibrium) for a known TA. Using this value of K, the values of PD and TJ can be obtained by solving equations (1) and (2) iteratively for any value of TA.

33.3

DC Electrical Specifications Table 33-3. DC Electrical Specifications1 (VSS = VSSPLL= VSSF = VSSA= 0 VDC) Characteristic

Symbol

Min

Max

Unit

Input High Voltage

VIH

0.7 x VDD

5.25

V

Input Low Voltage

VIL

VSS – 0.3 0.35 x VDD

Input Hysteresis

V

VHYS

0.06 x VDD



mV

Input Leakage Current Vin = VDD or VSS, Input-only pins

Iin

-1.0

1.0

µA

High Impedance (Off-State) Leakage Current Vin = VDD or VSS, All input/output and output pins

IOZ

-1.0

1.0

µA

Output High Voltage (All input/output and all output pins) IOH = –2.0 mA

VOH

VDD - 0.5

__

V

Output Low Voltage (All input/output and all output pins) IOL = 2.0mA

VOL

__

0.5

V

Weak Internal Pull Up Device Current, tested at VIL Max.

IAPU

-10

-130

µA

— —

7 7

2

Input Capacitance All input-only pins All input/output (three-state) pins

Cin

pF

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

33-3

Electrical Characteristics

Table 33-3. DC Electrical Specifications1 (continued) (VSS = VSSPLL= VSSF = VSSA= 0 VDC) Characteristic

Symbol

Load Capacitance3 (50% Partial Drive) (100% Full Drive)

Min

Max

Unit pF

CL

Supply Voltage (includes core modules and pads) RAM Memory Standby Supply Voltage Normal Operation: VDD > VSTBY - 0.3 V Standby Mode: VDD < VSTBY - 0.3 V

VDD

25 50 2.7

3.6

0.0 1.8

3.6 3.6

2.7

3.6

V V

VSTBY

V

Flash Memory Supply Voltage VDDF 1

Refer to Table 33-8 through Table 33-12 for additional PLLQADC, and Flash specifications. This parameter is characterized before qualification rather than 100% tested. 3 Refer to the chip configuration section for more information. Drivers for the SDRAM pins are at 25pF drive strength.Drivers for the QADC pins are at 50pF drive strength. 2

33.4

Power Consumption Specifications Table 33-4. STOP Mode Current Consumption Specifications Symbol

Typical– Master Mode

Typical– Single Chip Mode1

Max2

Unit

System clocks disabled (LPCR[STPMD] = 00)

IDD

25

7.9



mA

System clocks and CLKOUT disabled (LPCR[STPMD] = 01)

IDD

7.3

5.6



mA

System clocks, CLKOUT, and PLL disabled (LPCR[STPMD] = 10)

IDD

4.5

4.7



mA

System clocks, CLKOUT, PLL, and OSC disabled (LPCR[STPMD] = 11)

IDD

400

750

1000

µA

Characteristic

1

Single chip mode current measured with all pins in general purpose input mode except for the UART0 and FEC pins that are enabled for their module functionality. 2 Maximum values can vary depending on the system’s state and signal loading.

Figure 33-1 shows typical WAIT/DOZE and RUN mode power consumption for both master and single chip mode as measured on an M5282EVB. For master mode the RUN mode current was measured executing a continuous loop that performs no operation while running from the on-chip SRAM. For WAIT/DOZE mode measurements the peripherals on the device are in their default power savings mode, so the WAIT and DOZE power consumption are the same. Some modules can be programmed to shutdown in WAIT and/or DOZE modes. Refer to module chapters for more information. All single chip mode measurements were taken with all pins in general purpose input mode except for the UART0 and FEC pins that are enabled for their module functionality; however, neither module is being accessed at the time of the current measurement. Single chip RUN mode current was measured executing a continuous loop that performs no operation while running from the on-chip Flash. MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 33-4

Freescale Semiconductor

Power Consumption Specifications

250

Idd (mA)

200

Master mode - RUN

150

Master mode - WAIT

Single chip - RUN 100

Single chip - WAIT

50

0 8

16

24

32

40

48

56

64

72

80

Frequency (MHz)

Figure 33-1. Typical WAIT/DOZE Mode Current Consumption

Table 33-5 lists the estimated power consumption for individual modules. The current consumption is for the module itself and does not include power for I/O. Table 33-5. Estimated Module Power Consumption Module

Estimated Power

Unit

EIM

20

µA/MHz

SDRAMC

30

µA/MHz

FEC

60

µA/MHz

Watchdog

1.5

µA/MHz

PIT

1

µA/MHz

FlexCAN

15

µA/MHz

QSPI, UART, I2C, and Timers

75

µA/MHz

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

33-5

Electrical Characteristics

Table 33-6. Typical Application Power Consumption Application

Current 181.6 mA

Dhrystone benchmark running from cache and on-chip SRAM (running at 64 MHz fsys) dBUG ROM monitor running from external flash and SDRAM (running at 64 MHz fsys)

155 mA

Table 33-7 lists the maximum power consumption specifications. Table 33-7. Maximum Power Consumption Specifications Characteristic Operating Supply Current 1 Master Mode • 66 MHz • 80 MHz Single Chip Mode WAIT/DOZE • 66 MHz • 80 MHz

Symbol

Typical

Max

Unit

— — — — — —

200 240 150

mA mA mA

125 150

mA mA

— — — —

4 2 1 10

mA mA mA µA

— — —

10 7 20

µA mA µA

16.53 254 1.64 0.2

30 64 20 10

mA mA mA µA

— —

5.0 10.0

mA µA

IDD

Clock Synthesizer Supply Current Normal Operation 8.25 MHz crystal, VCO on, Max fsys STOP (OSC and PLL enabled) STOP (OSC enable, PLL disabled) STOP (OSC and PLL disabled)

IDDPLL

RAM Memory Standby Supply Current Normal Operation: VDD > VSTBY - 0.3 V Transient Condition: VSTBY - 0.3 V > VDD > VSS + 0.5 V Standby Operation: VDD < VSS + 0.5 V

ISTBY

Flash Memory Supply Current Read Program or Erase2 Idle STOP

IDDF

Analog Supply Current Normal Operation Low-Power Stop

IDDA

1

Current measured at maximum system clock frequency, all modules active, and default drive strength with matching load. 2 Programming and erasing all 8 blocks of the Flash. 3 Measured with f sys of 64 MHz. 4 Measured with f sys of 32 MHz and fclk of 187.5 kHz.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 33-6

Freescale Semiconductor

Phase Lock Loop Electrical Specifications

33.5

Phase Lock Loop Electrical Specifications Table 33-8. PLL Electrical Specifications (VDD and VDDPLL = 2.7 to 3.6 V, VSS = VSSPLL = 0 V) Characteristic

PLL Reference Frequency Range Crystal reference External reference 1:1 Mode System Frequency 1 External Clock Mode On-Chip PLL Frequency

Min

Max

fref_crystal fref_ext fref_1:1

2 2 33.33

10.0 10.0 80

Self Clocked Mode Frequency

3, 4

4, 5

0 fref / 32

80 80

fLOR

100

1000

kHz

fSCM

1

5

MHz

tcst



10

ms

VDD- 1.0 2.0

VDD VDD

VSS VSS

1.0 0.8

VDD- 1.0





0.5





pF



500

µs

— —

10.5 500

ms µs

EXTAL Input High Voltage Crystal Mode All other modes (1:1, Bypass, External)

VIHEXT

EXTAL Input Low Voltage Crystal Mode All other modes (1:1, Bypass, External)

VILEXT

XTAL Output High Voltage IOH = 1.0 mA

VOL

XTAL Output Low Voltage IOL = 1.0 mA

VOL

XTAL Load Capacitance6 4,7

tlpll

PLL Lock Time

4, 5,8

Unit MHz

fsys

Loss of Reference Frequency 2, 4

Crystal Start-up Time

Symbol

MHz

V

V

V V

Power-up To Lock Time With Crystal Reference Without Crystal Reference

tlplk

1:1 Clock Skew (between CLKOUT and EXTAL) 9

tskew

-2

2

ns

tdc

40

60

% fsys

fUL

- 1.5

1.5

% fsys

fLCK

- 0.75

0.75

% % fsys

— —

10 .01

% fsys

Duty Cycle of

reference 4

Frequency un-LOCK Range Frequency LOCK Range 4, 5, 7, 10,11 ,

CLKOUT Period Jitter Measured at fSYS Max Peak-to-peak Jitter (Clock edge to clock edge) Long Term Jitter (Averaged over 2 ms interval) 1 2 3 4 5 6 7

Cjitter

All internal registers retain data at 0 Hz. “Loss of Reference Frequency” is the reference frequency detected internally, which transitions the PLL into self clocked mode. Self clocked mode frequency is the frequency that the PLL operates at when the reference frequency falls below fLOR with default MFD/RFD settings. This parameter is characterized before qualification rather than 100% tested. Proper PC board layout procedures must be followed to achieve specifications. Load Capacitance determined from crystal manufacturer specifications and will include circuit board parasitics. This specification applies to the period required for the PLL to relock after changing the MFD frequency control bits in the synthesizer control register (SYNCR). MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3

Freescale Semiconductor

33-7

Electrical Characteristics 8

Assuming a reference is available at power up, lock time is measured from the time VDD and VDDPLL are valid to RSTO negating. If the crystal oscillator is being used as the reference for the PLL, then the crystal start up time must be added to the PLL lock time to determine the total start-up time. 9 PLL is operating in 1:1 PLL mode. 10 Jitter is the average deviation from the programmed frequency measured over the specified interval at maximum fsys. Measurements are made with the device powered by filtered supplies and clocked by a stable external clock signal. Noise injected into the PLL circuitry via VDDPLL and VSSPLL and variation in crystal oscillator frequency increase the Cjitter percentage for a given interval 11 Based on slow system clock of 40 MHz measured at fsys max.

33.6

QADC Electrical Characteristics Table 33-9. QADC Absolute Maximum Ratings Parameter

Symbol

Min

Max

Unit

VDDA

–0.3

6.0

V

VDD

–0.3

4.0

V

VRH

–0.3

6.0

V

VSS Differential Voltage

VSS – VSSA

–0.1

0.1

V

VDD Differential Voltage 2

VDD – VDDA

–6.0

4.0

V

VREF Differential Voltage

VRH – VRL

–0.3

6.0

V

VRH to VDDA Differential Voltage 3

VRH – VDDA

–6.0

6.0

V

VRL to VSSA Differential Voltage

VRL – VSSA

–0.3

0.3

V

VDDH – VDDA

–1.0

1.0

V

IMA

–25

25

mA

Analog Supply, with reference to VSSA Internal Digital Supply

1,

with reference to VSS

Reference Supply, with reference to VRL

VDDH to VDDA Differential Voltage Maximum Input Current 1 2 3 4 5

6

4, 5, 6

For internal digital supply of VDD = 3.3V typical. Refers to allowed random sequencing of power supplies. Refers to allowed random sequencing of power supplies. Transitions within the limit do not affect device reliability or cause permanent damage. Exceeding limit may cause permanent conversion error on stressed channels and on unstressed channels. Input must be current limited to the value specified. To determine the value of the required current-limiting resistor, calculate resistance values using VPOSCLAMP = VDDA + 0.3V and VNEGCLAMP = –0.3 V, then use the larger of the calculated values. Condition applies to one pin at a time.

Table 33-10. QADC Electrical Specifications (Operating) 1 (VDDH and VDDA = 5.0 Vdc ± 0.5V, VDD = 2.7-3.6V, VSS and VSSA = 0 Vdc, FQCLK = 2.0 MHz, TA within operating temperature range) Parameter Analog Supply VSS Differential Voltage

Symbol

Min

Max

Unit

VDDA

3.3

5.5

V

VSS – VSSA

-100

100

mV

2

VRL

VSSA

VSSA + 0.1

V

Reference Voltage High 2

VRH

VDDA – 0.1

VDDA

V

VREF Differential Voltage

VRH – VRL

3.3

5.5

V

Reference Voltage Low

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 33-8

Freescale Semiconductor

QADC Electrical Characteristics

Table 33-10. QADC Electrical Specifications (Operating) 1 (continued) (VDDH and VDDA = 5.0 Vdc ± 0.5V, VDD = 2.7-3.6V, VSS and VSSA = 0 Vdc, FQCLK = 2.0 MHz, TA within operating temperature range) Parameter

Symbol

Min

Max

Unit

VINDC

VSSA–0.3

VDDA + 0.3

V

Input High Voltage, PQA and PQB

VIH

0.7 (VDDA)

VDDA + 0.3

V

Input Low Voltage, PQA and PQB

VIL

VSSA – 0.3

0.4(VDDA)

V

Input Hysteresis, PQA, PQB 3

VHYS

0.5



V

Output High Voltage, PQA/PQB 3 IOH = TBD

VOH

VDDH-0.8

— —

Analog Supply Current Normal Operation 4 Low-Power Stop

IDDA

— —

5.0 10.0

mA µA

Reference Supply Current, DC Reference Supply Current, Transient

IREF IREF

— —

250 2.0

µA mA

CL



50

pF

IOFF

-200

200

nA

— —

15 10



5

Input Voltage

Load Capacitance, PQA/PQB Input Current, Channel Off 5 Capacitance 6

Total Input PQA Not Sampling PQB Not Sampling Incremental Capacitance added during sampling 1 2 3

4 5 6

CIN

V

pF

QADC converter specifications are only guaranteed for VDDH and VDDA = 5.0V +/- 0.5V. VDDH and VDDA may be powered down to 2.7V with only GPIO functions supported. To obtain full-scale, full-range results, VSSA ≤ VRL ≤ VINDC ≤ VRH ≤ VDDA Parameter applies to the following pins: Port A: PQA[4:3]/AN[56:55]/ETRIG[2:1], PQA[1:0]/AN[53:52]/MA[1:0] Port B: PQB[3:0]/AN[3:0]/AN[Z:W] Current measured at maximum system clock frequency with QADC active. Maximum leakage occurs at maximum operating temperature. Current decreases by approximately one-half for each 8 to 12° C, in the ambient temperature range of 50 to 125 °C. This parameter is characterized before qualification rather than 100% tested.

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 Freescale Semiconductor

33-9

Electrical Characteristics

Table 33-11. QADC Conversion Specifications (Operating) (VDDH and VDDA = 5.0 Vdc ± 0.5V, VDD= 2.7-3.6V, VSS and VSSA= 0 Vdc, VRH – VRL = 5 Vdc ± 0.5V, TA within operating temperature range, fsys = 16 MHz) Num

Parameter QADC Clock (QCLK) Frequency1

1

Symbol

Min

Max

Unit

FQCLK

0.5

2.1

MHz

CC

14

28

QCLK cycles

TCONV

7.0

14.0

µs

TSR



10

µs

5



mV

-2

2

Counts

-3

3

Counts

Conversion Cycles

2

3

Conversion Time FQCLK = 2.0 MHz1 Min = CCW/IST =%00 Max = CCW/IST =%11

4

Stop Mode Recovery Time

5

Resolution2



6

Absolute (total unadjusted) error 3, 4, 5 FQCLK = 2.0 MHz 2, 2 clock input sample time

AE

error 3, 4, 5

Absolute (total unadjusted) FQCLK = 2.0 MHz 2, 2 clock input sample time

7 1

2 3 4

5



Conversion characteristics vary with FQCLK rate. Reduced conversion accuracy occurs at max FQCLK rate. Using the QADC pins as GPIO functions during conversions may result in degraded results. Best QADC conversion accuracy is achieved at a frequency of 2 MHz. At VRH – VRL = 5.12 V, one count = 5 mV Accuracy tested and guaranteed at VRH – VRL = 5.0V ± 0.5V Current Coupling Ratio, K, is defined as the ratio of the output current, Iout, measured on the pin under test to the injection current, Iinj, when both adjacent pins are overstressed with the specified injection current. K = Iout/Iinj. The input voltage error on the channel under test is calculated as Verr = Iinj * K * RS. Performance expected with production silicon.

33.7

Flash Memory Characteristics

The Flash memory characteristics are shown in Table 33-12 and Table 33-13. Table 33-12. SGFM Flash Program and Erase Characteristics (VDDF = 2.7 to 3.6 V) Parameter System clock (read only) System clock (program/erase) 1

1

Symbol

Min

Typ

Max

Unit

fsys(R)

0



80

MHz

fsys(P/E)

0.15



80

MHz

Refer to the Flash section for more information

Table 33-13. SGFM Flash Module Life Characteristics (VDDF = 2.7 to 3.6 V) Parameter Maximum number of guaranteed program/erase cycles1 before failure Data retention at average operating temperature of 85°C

Symbol

Value

Unit

P/E

10,0002

Cycles

Retention

10

Years

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 33-10

Freescale Semiconductor

Electrical Characteristics

* The timings are also valid for inputs sampled on the negative clock edge. 1.5V

CLKOUT(66.67 MHz) TSETUP

Input Setup And Hold

Invalid

1.5V Valid 1.5V

Vh = VIH

Input Rise Time

Invalid

trise = 1.5 ns

Vl = VIL

Vh = VIH

Input Fall Time

CLKOUT

THOLD

tfall = 1.5 ns

Vl = VIL

B4

B5

Inputs

Figure 33-2. General Input Timing Requirements

33.9

Processor Bus Output Timing Specifications

Table 33-14 lists processor bus output timings. Table 33-15. External Bus Output Timing Specifications Name

Characteristic

Symbol

Min

Max

Unit

tCHCV



0.5tCYC +10

ns

tCHBV



0.5tCYC +10

ns

Control Outputs B6a

CLKOUT high to chip selects valid 1 valid2

B6b

CLKOUT high to byte enables (BS[3:0])

B6c

CLKOUT high to output enable (OE) valid3

tCHOV



0.5tCYC +10

ns

B7

CLKOUT high to control output (BS[3:0], OE) invalid

tCHCOI

0.5tCYC + 2



ns

B7a

CLKOUT high to chip selects invalid

tCHCI

0.5tCYC + 2



ns

Address and Attribute Outputs

MCF5282 Coldfire Microcontroller User’s Manual, Rev. 2.3 33-12

Freescale Semiconductor

ANEXO 4

NMRA Electrical Standards for Digital Command Control, July 2004.

NMRA STANDARD

Electrical Standards

This Standard received approval from the NMRA membership and Board of Trustees in January 1994, July 2002 and July 2004.

For Digital Command Control, All Scales Adopted July 2004

S 9.1

5

10

Communication from a Digital Command Station to a Digital Decoder is accomplished by transmitting a series of bits that convey instructions. A bit is a signal which represents one of two conditions, which we will call "1" and "0". This portion of the standard covers the electrical characteristics of the digital command control signal that encodes these bits.

A: Technique For Encoding Bits

15

20

25

30

The NMRA baseline digital command control signal consists of a stream of transitions between two equal voltage levels that have opposite polarity1. Alternate transitions separate one bit from the next. The remaining transitions divide each bit into a first part and a last part. Digital Command Stations shall encode bits within this digital command control stream of transitions by varying the duration of the parts of the bits, or frequency of the transitions. In a "1" bit, the first and last part of a bit shall have the same duration, and that duration shall nominally be 58 microseconds2, giving the bit a total duration of 116 microseconds. Digital Command Station components shall transmit "1" bits with the first and last parts each having a duration of between 55 and 61 microseconds. A Digital Decoder must accept bits whose first and last parts have a duration of between 52 and 64 microseconds, as a valid bit with the value of "1". In a "0" bit, the duration of the first and last parts of each transition shall nominally be greater than or equal to 100 microseconds. To keep the DC component of the total signal at zero as with the "1" bits, the first and last part of the "0" bit are normally equal to one another. Digital Command Station components shall transmit "0" bits with each part of the bit having a duration of between 95 and 9900 microseconds with the total bit duration of the "0" bit not exceeding 12000 microseconds. A Digital Decoder must accept bits whose first or last parts have a duration of between 90 and 10000 microseconds as a valid bit with the value of "0". Figure 1 provides an example of bits encoded using this technique.

Figure 1: Bit Encoding 35

Digital Decoders must accept one bits whose positive and negative components differ by as much as 6 microseconds.

1 Note

that since a locomotive or piece of rolling stock can be placed upon a given section of track facing in either direction, it is impossible to define, from the point of view of a Digital Decoder, whether the first or last part of a bit will have the "positive" voltage polarity. 2 All

timing measurements are done between zero volt crossings.

© 2001,2004 by the National Model Railroad Association, Inc. S-9.1 Electrical Standards for DCC Page 1 of 3

Printed: July 2004

40

One Bit Timing For Power Station Output under Load: Relationship for One Bits Period A < 55 µSec or Period A > 61 µSec Period A = Period B |Period A – Period B| 3 µSec

Result Bad OK OK Bad

Decoders must accept: Relationship for One Bits Period A >= 52µSec and Period A
View more...

Comments

Copyright © 2017 PDFSECRET Inc.