Está en la página 1de 40

Diseño

Integrado

8 Desarrollo del Sistema Físico

8.1 Diseño de la Placa del Detector de Movimiento.

Se exponen a continuación de forma detallada todas las partes en las que


dividimos el diseño del Detector de Movimiento, exponiendo los esquemáticos de cada
una de las partes y definiendo los elementos que se han elegido en cada caso.

8.1.1 PIC18F2550 [8]

Para determinar el cual es el micro que mejor se adapta a las necesidades del
proyecto se ha realizado previamente, en el apartado 2.3, un estudio de los
dispositivos y fabricantes existentes en el mercado. Teniendo en cuenta los datos de
este estudio llegamos a la conclusión que utilizaríamos un microcontrolador PIC de
Microchip. Para seleccionar el modelo exacto que resulte más conveniente a la
aplicación se deberán tener las siguientes características:

• Debe disponer de un puerto de comunicaciones USB.


• La longitud de palabra será de 8 bits ya que no hemos de manejar gran cantidad
de información.
• Debe disponer de un conversor A/D.
• La memoria de programa debe ser Flash.
• Un componente opcional sería una memoria ROM de datos donde se podrían
guardar todos los datos adquiridos a través de los sensores para ser enviados
mas tarde al ordenador.

También será necesario analizar los requisitos de la aplicación que


pretendemos desarrollar, teniendo en cuenta aspectos tales como:

• Procesamiento de datos: puede ser necesario que el microcontrolador realice


cálculos críticos en un tiempo limitado. En ese caso debemos asegurarnos de
seleccionar un dispositivo suficientemente rápido para ello. Por otro lado, habrá que
tener en cuenta la precisión de los datos a manejar: si no es suficiente con un
microcontrolador de 8 bits, puede ser necesario acudir a microcontroladores de 16
o 32 bits, o incluso a hardware de coma flotante.
• Entrada/Salida: para determinar las necesidades de Entrada/Salida del sistema es
conveniente conocer el diagrama de bloques del mismo, de tal forma, que sea
sencillo identificar la cantidad y tipo de señales a controlar. Una vez realizado este
análisis puede ser necesario añadir periféricos externos o cambiar a otro
microcontrolador más adecuado a ese sistema.

Universidad de Sevilla Pág. 71


CAPITULO 8
Diseño Desarrollo Físico
Integrado

• Consumo: algunos productos que incorporan microcontroladores están


alimentados con baterías. Lo más conveniente en un caso como éste puede ser
que el microcontrolador esté en estado de bajo consumo pero que despierte ante la
activación de una señal (una interrupción) y ejecute el programa adecuado para
procesarla.
• Memoria: en cuanto a la cantidad de memoria necesaria se debe hacer una
estimación de cuánta memoria volátil y no volátil es necesaria y si es conveniente
disponer de memoria no volátil modificable.
• Ancho de palabra: el criterio de diseño debe ser seleccionar el microcontrolador de
menor ancho de palabra que satisfaga los requerimientos de la aplicación. Usar un
microcontrolador de 4 bits supondrá una reducción en los costes importante,
mientras que uno de 8 bits puede ser el más adecuado si el ancho de los datos es
de un byte. Los microcontroladores de 16 y 32 bits, debido a su elevado coste,
deben reservarse para aplicaciones que requieran altas prestaciones.
• Diseño de la placa: la selección de un microcontrolador concreto condicionará el
diseño de la placa. Deberá tenerse en cuenta el encapsulado del mismo.

Considerando todo lo anterior, se ha optado por


el PIC18F2550 ya que dispone de un puerto USB que
puede funcionar tanto a baja velocidad (1,5 Mbps) como
a velocidad completa (12 Mbps) y soporta transferencias
de control, interrupción, masivas e isócronas. Además
tiene un módulo conversor A/D con 10 canales de
entrada y una memoria de datos EEPROM (Electrical
Erasable Programmable Read Only Memory) de 256
bytes. Se trata de una memoria de lectura, programada y Fig. 38 PIC18F2550
borrada eléctricamente. La operación de borrado y
programación es muy sencilla y se puede grabar y borrar
tantas veces como se quiera.

Las características principales del dispositivo se resumen en la siguiente tabla.

PARÁMETROS PIC18F2550
Tensión de Alimentación 5V
Corriente máxima de entrada 250mA
Corriente máxima de salida por todos los 200mA
pines
Corriente máxima de entrada en un pin I/O 25mA
Corriente máxima de salida en un pin I/O 25mA
Temperatura de almacenamiento -65ºC<T<+150ºC
Potencia disipada total 1.0 W
Memoria FLASH 32kbytes
Memoria SRAM 2048bytes
Memoria EEPROM 256bytes
Dimensiones 10.34 x 17.87 x 2.50 mm
Tipo de encapsulado PDIP
Fig. 39 Características del PIC 18F2550

Pág. 72 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

El encapsulado en el que encontramos el dispositivo es un encapsulado DIP.


Este tipo de encapsulado es el más empleado en montaje por taladro pasante en
placa. En nuestro caso se trata de un chip en plástico (negro), con las siguientes
dimensiones:

Fig. 40 Detalle del encapsulado del PIC18F2550

Un dato importante en todos los componentes es la distancia entre patillas que


poseen, en los sistemas integrados es de vital importancia este dato, así en este tipo
el estándar se establece en 0,1 pulgadas (2,54mm).

Se suelen fabricar a partir de 4, 6, 8, 14, 16, 22, 24, 28, 32, 40, 48, 64 patillas,
estos son los que más se utilizan.

La funcionalidad de los pines del PIC18F2550 puede verse en la siguiente


tabla, donde se ha marcad los pines que intervienen en nuestro diseño, así como la
funcionalidad que tienen para el correcto funcionamiento del diseño.

Universidad de Sevilla Pág. 73


CAPITULO 8
Diseño Desarrollo Físico
Integrado

Fig. 41 Funcionalidad de los pines del PIC 18F2550

Pág. 74 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

Las entradas y salidas del PIC


se conectan según su funcionalidad
siguiendo las indicaciones de la hoja de
características del dispositivo y las
necesidades de diseño de la aplicación.

En la Fig. 42 Entradas/Salidas
del PIC podemos ver que cada uno de
los pines utilizados lleva una etiqueta
que identificará la conexión de ese pin
con el resto de elementos que forman
el diseño de la placa.

Fig. 42 Entradas/Salidas del PIC

8.1.2 Alimentación

Colocamos dos bornes que constituirán el punto de conexión de la placa con la


fuente de alimentación. Físicamente se trata de una simple regleta que por un lado
podemos soldar a la placa de circuito impreso y por el otro conectamos a los cables
conductores de la tensión de alimentación.
Los microprocesadores ofertados por
Microchip poseen todos una alimentación de 5V. A la
hora de elegir el resto de componentes para el
desarrollo del sistema se tuvo esto muy presente para
no tener que colocar dos alimentaciones distintas
sobre la misma placa. Finalmente se eligió un
acelerómetro cuyo rango de tensión de alimentación
admite los 5V, quedando la placa alimentada con una
única línea.
Fig. 43 Alimentación

La salida de los bornes de la alimentación se conectan a las entradas del PIC


20 para VDD y los pines 9 y 19 para VSS. Colocaremos etiquetas con las conexiones a
VDD y VSS de aquí en adelante.

Como nuestro diseño consta de una comunicación por puerto USB, la


alimentación por parte de la fuente será opcional para cuando no tengamos el
dispositivo conectado al ordenador, colocaremos un jumper que permita seleccionar
que fuente de alimentación estamos usando sin necesidad de realizar ningún ajuste
sobre la placa.

Universidad de Sevilla Pág. 75


CAPITULO 8
Diseño Desarrollo Físico
Integrado

8.1.3 Reset

Cuando se suministra una tensión de alimentación al microcontrolador, este


ejecuta automáticamente un RESET, de forma que todos los registros se modifican
adquiriendo la configuración que presentan por defecto en sus estados lógicos
originales. Sin embargo los microcontroladores dispones de un pin destinado
específicamente para ejecutar un RESET en el caso de producirse un fallo o cuando
sea necesario aplicarle un RESET para la inicialización del microcontrolador.

Cuando se ejecuta un RESET, se producen dos acciones importantes:

• El contador de programa se vuelve a colocar en el principio del


programa.
• Los registros modificados vuelven a su estado normal.

La señal de reset se aplica al pin MCLR . Esta entrada está negada, por lo cual
tendremos que conectarlo a la alimentación positiva VCC si queremos que nuestro PIC
funcione. Esta entrada puede ser activada de manera externa y por el propio PIC si se
produce:
- Conexión de la alimentación
- Caída de tensión de alimentación de el PIC por debajo de los 2.2 V
- Desbordamiento de WDT (contador que funciona con los impulsos de
su propio oscilador).

Para general la señal de reset en nuestro diseño colocamos a nivel alto la


patilla /MCLR a través de dos resistencias y colocamos un pulsador a tierra, de forma
que cuando el pulsador es accionado, la entrada se pone a nivel bajo y el circuito se
resetea.

Algunas reglas básicas para


realizar este circuito son:

• Es recomendable que R6< 40 K.


• Se recomienda que R8 < 1 K

Fig. 44 Reset Manual

Pág. 76 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

Existe también la opción de conectar un


reset automático como el de la Fig. 45. En este
caso, si el voltaje suministrado al
microcontrolador se ubica entre 1.2V y 1.7V
automáticamente se ejecuta un Reset. Este
rango de voltaje asegura que el microcontrolador
se reinicie antes de cometer errores en cualquier
proceso. En el caso de que el voltaje siga por
debajo del rango especificado, el
microcontrolador no arranca de nuevo hasta que
se estabilicen los voltajes en su rango normal. El
diodo D1 es utilizado para descargar el
condensador rápidamente cuando el voltaje baja
Fig. 45 Reset Automático de su nivel normal.

En nuestro diseño nos quedamos con la opción del reset manual de la


Fig. 44. Conectando las líneas a Tierra, Alimentación y la Etiqueta MLRC que
se conectará con la entrada del PIC que se corresponde con la pata 1 del dispositivo.

8.1.4 Condensadores de desacoplo

El condensador de desacoplo
se utiliza para dar una mayor
estabilidad a la hora de alimentar el
PIC, ya que evitan que existan
oscilaciones en la entrada de
alimentación del dispositivo integrado.

Se coloca en paralelo, lo más


próximo que podamos al integrado Fig. 46 Condensadores de desacoplo.
entre alimentación y tierra.

En nuestro diseño es necesario colocar dos condensadores de desacoplo, ya


que además de tener la tensión de alimentación necesaria en cada diseño, el
PIC18F2550 presenta una salida de tensión a 3.3V por el pin 14 del dispositivo6.
Colocaremos este pin a tierra a través de un condensador de desacoplo para dejar
fijada dicha tensión y que no presente problemas en las entradas y salidas cercanas.

6
La salida de 3.3V que presenta el PIC viene como consecuencia del módulo de comunicación USB. Para
más detalles ver el apartado 8.1.7 de este mismo documento en el que se detalla la comunicación USB.

Universidad de Sevilla Pág. 77


CAPITULO 8
Diseño Desarrollo Físico
Integrado

8.1.5 Cristal del Oscilador

Es un elemento indispensable para el correcto funcionamiento de un


microcontrolador, ya que se encarga de generar la base de tiempo que necesita el
microcontrolador para ejecutar el programa, es decir, el cristal es el encargado de
proporcionar la frecuencia de reloj al PIC.

Respecto al oscilador, el PIC18F2550 incorpora múltiples fuentes de reloj que


se pueden dividir en tres tipos:

• Osciladores primarios: Son cristales externos.


• Osciladores Secundarios: Son las fuentes externas conectadas al Timer 1.
• Bloque del Oscilador Interno: Fuente de reloj para los modos de bajo consumo.

Estas tres fuentes hacen que el oscilador disponga de doce modos distintos de
funcionamiento:

Fig. 47 Modos de funcionamiento del oscilador para PIC18F2550

Los modos de funcionamiento del oscilador y el módulo USB que hemos


elegido para las comunicaciones están muy relacionados. En los microcontroladores
PIC anteriores a la familia 18F2455/2550/4455/4550, todos los módulos del
microcontrolador, incluidos los puertos de comunicaciones, utilizaban la misma fuente
de reloj; pero en los microcontroladores de esta familia, el oscilador primario forma
parte del módulo USB, de manera que el módulo sólo puede tomar la señal de reloj del
oscilador primario, mientras que el resto de micro puede utilizar cualquier otra fuente.

Pág. 78 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

Dependiendo de si utilizamos USB de baja velocidad o de velocidad completa,


la señal de reloj del módulo USB deberá ser de 6MHz o de 48MHz respectivamente.
Como utilizaremos un dispositivo del alta velocidad será se 48MHz.

En nuestro diseño utilizaremos un cristal de 4 Mhz, en la configuración que nos


indican en la hoja de características del microcontrolador que hemos elegido, el
PIC18F2550, es decir, con dos condensadores encargados de estabilizar la frecuencia
de salida del cristal, conectados a cada una de las patas de salida del crista y a tierra,
tal y como muestra la Fig. 48.

Fig. 48 Cristal Osciloscopio

Las salidas del cristal de cuarzo serán entradas del PIC sobre los pines 9,
OSC1 y 10, OSC2, preparadas para recibir las frecuencias del cristal y tratar la
información. Para conocer los valores de los condensadores debemos acudir a la hoja
de características del PIC18F2550, comprobando la frecuencia del cristal,
comprobamos que serán de 27pF.

Fig. 49 Selección capacidad del condensador

Ambos circuitos, condensadores de desacoplo y cristal, deben estar próximos


al PIC, es una de las ideas que debemos tener claras a la hora de empezar con el
Layout.

Hasta ahora se han comentado los elementos auxiliares que siempre necesita
todo microcontrolador, cristal, alimentación, circuito de reset y condensadores de
desacoplo. Pasamos a detallar el diseño de los periféricos de entrada y salida
necesarios para nuestra aplicación.

Universidad de Sevilla Pág. 79


CAPITULO 8
Diseño Desarrollo Físico
Integrado

8.1.6 Pulsadores y LEDs

Elementos incluidos para la depuración de la aplicación que pretendemos


diseñar. Serán de mucha utilidad para comunicarnos con el PIC. En nuestro diseño,
tanto los interruptores como los LEDs están conectados para ser activos por nivel alto.
Esto tendremos que tenerlo presente a la hora de programarlos en el diseño de la
aplicación.

Los pulsadores están conectados a las entradas digitales que presenta el PIC
18F2550 en los pines 2;3 y 13, correspondiente con entradas /salidas digitales del
Puerto A que deberemos configurar en nuestro sistema.

Los LEDs están conectados a las salidas digitales del puerto B


correspondientes a los pines del dispositivo 26;27 y 28.

Fig. 51 LEDs para la depuración del código


de la placa

Fig. 50 Botones para el control

Pág. 80 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

8.1.7 USB

Para la comunicación del microcontrolador con el PC es necesario un medio de


conexión. La elección del PIC18F2550 se realizó pensando en la realización de esta
conexión y nos decantamos por el PIC18F2550 por permitir conectarse al ordenador a
través de una conexión USB (Universal Serial Bus).

El PIC 18F2550 soporta una comunicación con un puerto USB 2.0, a


velocidades por tanto de 480Mbits. Para construir la señal de salida es necesario
generar una potencia de salida a 3.3V que iremos doblando con codificación NRZI( No
retorno a cero invertido). Esta tensión se ofrece como salida del dispositivo por le pin
14 VUSB, que colocaremos a tierra con un condensador de desacoplo.

Pin Nombre Color del Cable Descripción


1 VCC Rojo +5V
2 D− Blanco Data −
3 D+ Verde Data +
4 GND Negro Tierra

Fig. 52 Conexión con el USB

Las líneas de alimentación (Vbus y GND) evitan la necesidad de usar fuentes de


alimentación externas. Tienen una tensión de 5V y la corriente se limita a una tensión
de 3 a 5 amperios por razones de seguridad, siendo el consumo y la configuración
eléctrica totalmente transparente al usuario.

El diseño de nuestra placa lleva incorporado un conector hembra de tipo B, ya


que son los únicos que actualmente existen para soldarlos en la placa.

8.1.8 Acelerómetros [9]

El acelerómetro elegido es el modelo LIS2L02AS4 de la marca


STMicroelectronic. Es un acelerómetro lineal de bajo consumo, capaz de medir la
aceleración que se produce en dos ejes, ofreciendo una salida analógica de la medida
obtenida. Posee un amplio rango de medida ofreciendo además la posibilidad de
seleccionar el rango con el que se pretende trabajar, de forma que se obtendrá una
mejora de la sensibilidad cuanto menor sea el rango de aceleración medido.

Resumimos las características más importantes del acelerómetro:

Fig. 53 Características del Acelerómetro ST LIS2L02AS4

Universidad de Sevilla Pág. 81


CAPITULO 8
Diseño Desarrollo Físico
Integrado

Es un producto muy utilizado para muy diversas aplicaciones:


• Terminales móviles
• Entradas de dispositivos para juegos de Realidad virtual
• Detección de Caída
• Sistemas Antirrobo
• Robótica
El acelerómetro incorpora un sensor MEMS de eje dual y un circuito de interfaz
CMOS que ofrece dos salidas analógicas simultáneas en tiempo real: una para
direcciones de lado a lado (laterales) y otra para movimientos hacia adelante y atrás
(longitudinales).

El LIS2L02AS4 dota de valores de aceleración con un nivel muy bajo de ruido y


mínimo consumo de potencia. Este acelerómetro se aloja en un encapsulado plástico
de 2.4 x 10.3 x 15.4 mm, con un diseño robusto y compacto ofreciendo una alta
resistencia al choque. Posee un rango de salida full-scale de ±6.0g. La función ‘auto-
test’ permite al usuario verificar los componentes mecánicos y eléctricos del
acelerómetro. Además, este modelo usa la tecnología sin plomo ECOPACK® de ST
para cumplir con la directiva RoHS (Restriction of Hazardous Substances) de la Unión
Europea.

El LIS2L02AS4 posee el siguiente esquema


de conexión, muchos de los pines que presenta el
dispositivo no se conectarán en la aplicación ya
que son patas no conectadas o reservadas.
Describimos la funcionalidad de los pines que
intervienen en el diseño y colocamos el
esquemático de conexionado que encontramos en
la hoja de características.

Fig. 54 Pines del Acelerómetro LIS2L02AS4

En el esquemático se han colocado dos condensadores de desacoplo entre


tierra y Alimentación que aconsejan se sitúen cerca del integrado en el rutado de la
palca y un jumper que permita el cambio del acelerómetro en modo prueba ST o en
modo de funcionamiento normal.

Pág. 82 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

Fig. 56 Acelerómetro placa z


Fig. 55 Acelerómetro de la placa x_y

La colocación de los acelerómetros determinará la información que


obtendremos de cada una de las señales de salida. Tratamos de obtener tres señales
que permitan describir el movimiento al que se ve sometido nuestro sensor. Como
nuestro acelerómetro dispone únicamente de dos salidas, es necesario realizar un
montaje físico con el que consigamos medir la aceleración en el eje z con un nuevo
acelerómetro. Para ello se utilizan los dos acelerómetros mostrados en los
esquemáticos de la Fig. 55 y Fig. 56.

Colocaremos el acelerómetro de la Fig. 55 en la misma placa de montaje sobre


la que irá el PIC y el resto de componentes necesarios para la aplicación, de esa
forma tendremos las salidas de las aceleraciones en los ejes x-y, que serán dos de las
entradas analógicas del PIC. Para la aceleración sobre el eje z montaremos en una
nueva placa el acelerómetro de la Fig. 56, para el que sólo necesitaremos una salida,
la medida del eje z. Esta placa la colocaremos en vertical sobre la placa principal del
sistema, formando un ángulo de 90º, consiguiendo así la tercera entrada necesaria
para describir el movimiento.

Fig. 57 Detalle colocación Placas para medir las tres dimensiones de la aceleración

Universidad de Sevilla Pág. 83


CAPITULO 8
Diseño Desarrollo Físico
Integrado

Las salidas de los acelerómetros se conectará a entradas analógicas del


PIC18F2550, en concreto a los pines 2, 3 y 4. Las entradas analógicas sobre las que
debemos leer la aceleración serán.

Pin Entrada en PIC Medida Aceleración eje


2 Z
3 Y
4 X
Fig. 58 Correspondencia Entrada PIC y medida realizada

El encapsulado del acelerómetro es de tipo SO, encapsulado Circuito integrado


de pequeño contorno. Son los más populares en los circuitos de lógica combinacional,
tanto en TTL como en CMOS. La terminación de las patillas es en forma de ala de
gaviota, por lo que se sueldan directamente sobre las pistas de la placa de circuito
impreso, en un área denominada footprint. La distancia entre patillas es de 1,27mm
(0,05").

Fig. 59 Detalle del encapsulado del acelerómetro LIS2L02AS4

Pág. 84 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

8.1.9 Resultado final

Reuniendo todos los componentes en un mismo esquemático, comenzamos


con la realización del rutado de la placa, para lo cual debemos conocer todos los
elementos utilizados y sus huellas para poder realizar la impresión del mismo.

En nuestro caso, el esquema general es el que se muestra a continuación:

Fig. 60 Esquemático completo del diseño

En este esquemático no se presenta el acelerómetro z ya que no pertenece a


la misma placa física, aunque pertenezca al diseño del sistema.

Una vez diseñadas todas las partes funcionales necesarias en el diseño,


podemos comprobar el resultado final, establecer la lista de elementos necesarios
para la creación del PCB y comenzar con el rutado de la placa.

Universidad de Sevilla Pág. 85


CAPITULO 8
Diseño Desarrollo Físico
Integrado

Los elementos necesarios para el diseño:

Cantidad Elemento
2 Acelerómetro LIS2L02AS4
1 Borna Alimentación
2 Condensador 27pF
2 Condensador 470nF
2 Condensador electrolítico 10uF
2 Condensador 100nF
1 Conector Hembra USB soldar placa
1 Cristal 4MHz
3 Jumper
3 LED rojo
1 PIC18F2550
12 Pines verdes
4 Pulsador
1 Resistencia 100Ω
4 Resistencia 10kΩ
5 Resistencia 330Ω
1 Zócalo 28pines
1 Placa Positiva
Fig. 61 Componentes del diseño

El resultado final del rutado de las placas:

El tamaño de las placas resultantes es de 10x8 cm la placa base de control del


proceso de Detección de Movimiento y 5x5.5 cm la placa con el acelerómetro en el eje
z. Tanto la colocación de los componentes como el rutado de las pistas se realizarán
de forma que se consigan los siguientes objetivos:

• Minimizar la longitud de las pistas


• Minimizar el número de pistas a usar
• Minimizar el número de cruces entre pistas
• Facilitar el soldado de los componenetes
• Facilitar el acceso a los interruptores, bornas y conector USB

El elemento central de diseño es el microcontrolador, el emplazamiento del


resto de los componentes dependerá de él, según la funcionalidad de sus pines y la
lógica que empleemos.

Para la implementación del circuito se utilizó una placa positiva de una cara,
trazando las pistas por el Bottom. La anchura de las pistas es de 40mm en el caso de
elementos con encapsulado pasante o DIP, y 20mm para el acelerómetro, que posee
un encapsulado superficial SO en el que los pines se encuentran más próximos entre
ellos.

Pág. 86 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

Definimos de forma esquemática las principales reglas de diseño, separaciones


y márgenes que se tienen en cuenta en la fabricación del PCB.

PARÁMETRO Valor
Diámetro del Taladro 0,8mm
Margen Mínimo de la Máscara contra la Pared 0,2mm
Anchura mínima del conductor 0,25mm
Espacio mínimo entre conductores 0,2mm
Distancia mínima del conductor al borde del circuito 0,3mm

Fig. 62 Resultado del rutado de la placa

Universidad de Sevilla Pág. 87


CAPITULO 8
Diseño Desarrollo Físico
Integrado

Fig. 63 Resultado del rutado de la placa z

Fig. 64 Fotografía del resultado final de las placas.

Pág. 88 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

8.2 Diseño del firmware

Firmware es un bloque de instrucciones, que establece la lógica de más bajo


nivel que controla los circuitos electrónicos de un dispositivo. Al estar integrado en la
electrónica del dispositivo es en parte hardware; pero también puede ser considerado
software, ya que proporciona lógica y se dispone en algún tipo de lenguaje de
programación. Funcionalmente, es el intermediario entre las órdenes externas que
recibe el dispositivo y su electrónica, ya que es el encargado de controlar a ésta última
para ejecutar correctamente las órdenes externas.

8.2.1 Configuración básica de los pines del PIC18F2550

Los pines que se utilicen como entradas analógicas deben ser configurados
como tales en los correspondientes registros TRIS, PORT y LAT.

TRIS: Para la configuración de las patitas como entradas o salidas.


PORT: Para almacenar los niveles lógicos de las patitas.
LAT: Para inhibir la salida de los niveles.

La configuración de las puertas se realiza colocando a ‘0’ para la configuración


como salida, y ‘1’ para configurarlo como entrada en el registro TRIS correspondiente
al puerto. Si es entrada, el valor correspondiente a esta patita pasará a almacenarse
en el registro PORT, mientras que si lo encontramos como salida el valor del registro
pasará a encontrarse en la patita.

Siguiendo la construcción del la placa debemos configurar los pines de los


puertos A y B, que son los que atizamos en nuestro diseño.

8.2.1.1 PUERTO A
Esta puerta tiene 7 líneas. Todos ellas pueden ser Entrada/Salida digital,
configurando el registro ADCON1 de manera adecuada. Además, cinco de ellas
pueden ser entradas del conversor analógico/digital.

En nuestro diseño se utilizarán3 líneas del puerto como entradas analógicas


del conversor analógico/digital, son las líneas AN0, AN1 y AN2, que se corresponden
con los pines 2,3 y 4 del PIC18F2550. Para la configuración debemos usar el registro
ADCON1 que se explicará en el apartado 8.2.3 del documento.

8.2.1.2 PUERTO B
Esta puerta tiene 8 líneas con resistencia de pull-up internas que se pueden
habilitar con el bit RB-PU#. Todas ellas pueden ser entradas/salidas digital.

En el diseño se utilizarán las líneas RB1, RB2 y RB3, pines 22, 23 y 24, como
entradas digitales de la señal que introduzcamos por los pulsadores, mientras que las
líneas RB5, RB6 y RB7, correspondientes a los pines 26, 27 y 28 serán salidas
digitales a los Led’s de control de la placa.

Universidad de Sevilla Pág. 89


CAPITULO 8
Diseño Desarrollo Físico
Integrado

8.2.2 Registros del oscilador

El funcionamiento del oscilador en el PIC18F2550 se controla a través de los


registros de configuración CONFIG1L y CONFIG1H y con dos registros de control
OSCCON y OSCTUNE.

A continuación se muestra el módulo del oscilador indicando la fuente utilizada


(oscilador primario) y los valores que toman los distintos bits de estos registros para
conseguir a partir de un cristal de 4MHz una velocidad en el módulo USB de 48MHz,
necesaria para una comunicación con USB a velocidad completa.

Fig. 65 Módulo del Oscilador

Pág. 90 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

El reloj del micro se configurará para que funcione a una velocidad de 48MHz,
teniendo por tanto la misma velocidad que se va a utilizar en la comunicación USB, lo
que evitará problemas con los tiempos de espera del procesado de la señal.

Para configurar los registros del oscilador recordamos que lo que se pretende
es utilizar el oscilador primario en modo HSPLL (Cristal de alta velocidad con PLL
activado) como reloj tanto para el módulo USB como para el resto del
microcontrolador. Los datos con los que partimos para realizar la configuración:

 Cristal de 4MHz
 USB 2.0 (alta velocidad): necesita una frecuencia de funcionamiento de
48MHz

Los registros de configuración, CONFIG1L y CONFIG1H, permiten seleccionar


el modo de funcionamiento del oscilador y las opciones de pre y post-escalado.

• CONFIG1L

Fig. 66 Registro CONFIG1L

Universidad de Sevilla Pág. 91


CAPITULO 8
Diseño Desarrollo Físico
Integrado

• CONFIG1H

Fig. 67 Registro CONFIG1H

En este registro se ha deshabilitado con la opción IESO bit a 0 el intercambio


entre oscilador interno y externo, lo cual simplificará posteriormente la configuración de
los registros de control. También hemos desactivado la opción de monitorización de
fallos en el reloj, ya que no vamos a implementar esta posibilidad y se ha seleccionado
el modo de funcionamiento que nos interesa, HSPPL.

La configuración de los registros de control es más sencilla, ya que en ambos


registros se especifican funcionamientos del oscilador interno que en nuestra
aplicación no se implementará.

El registro OSCCON controla varios aspectos de la operación de reloj, entre


ellos el que mas nos interesa es el que permite seleccionar la fuente de reloj que se
utilizará en el sistema, lo que se corresponde con los bits SCS1:SCS0 del registro.

Pág. 92 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

• OSCCON

Fig. 68 Registro OSCCON

El registro OSCTUNE se utiliza para calibrar y ajustar la frecuencia del


oscilador interno. Como en el diseño elegido utilizamos el oscilador primario como
fuente de reloj, este valor de registro no nos interesa.

Universidad de Sevilla Pág. 93


CAPITULO 8
Diseño Desarrollo Físico
Integrado

8.2.3 Registros del convertidor A/D

El módulo conversor A/D tiene una resolución de 10bits con 10 canales para
los dispositivos de 28 pines como es el caso del PIC18F2550.

A través del canal de entrada seleccionado, se aplica la señal analógica a un


condensador de captura y mantenimiento (sample and hold) y luego se introduce al
conversor, el cual proporciona un resultado digital de 10 bit de longitud usando la
técnica de aproximaciones sucesivas, técnica utilizada en los casos en los que se
requiere una alta velocidad de conversión.

Esta técnica consiste en realizar sucesivas comparaciones de forma


ascendente o descendente, hasta encontrar un valor digital que iguale la tensión
entregada por el conversor D/A y la tensión de entrada.

Fig. 69 Estructura del conexionado del conversor A/D.

Este módulo presenta cinco registros de configuración y control:

• ADRESH: Parte alta del resultado de la conversión A/D


• ADRESL: Parte baja del resultado de la conversión A/D
• ADCON0: Controla el funcionamiento del módulo A/D
• ADCON1: Configura la función de los pines de los puertos.
• ADCON2: Configura el reloj del conversor A/D, el tiempo de
adquisición y el formato del resultado de la conversión.

Pág. 94 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

El registro ADCON0 controla la operación del conversor A/D, mientras que el


ADCON! Sirve para configurar las patitas de la puerta A como entradas analógicas o
E/S digitales. El registro ADCON2 configura la fuente de reloj A/D y la justificación del
resultado.

En la pareja de registros ADRESH:ADRESL se deposita el resultado de la


conversión, que al estar compuesta por 10 bits, sólo son significativos 10 de los 16 bits
de esta pareja.

• ADCN0

Fig. 70 Registro ADCON0

La resolución de la conversión depende de Vref=(Vref+)-(Vref-), de forma que:

(Vref + ) − (Vref −) Vref 5V


Re solución = = ⇒ Vref = VDD − GND = 5V ⇒ Re s = = 4.8 mV
1024 1024 1024bit bit

Universidad de Sevilla Pág. 95


CAPITULO 8
Diseño Desarrollo Físico
Integrado

Vref+ y Vref- determinan los límites máximo y mínimo de la tensión analógica que
se puede convertir. En el caso de Vref+=5V y Vref-=0V, caso que encontramos en
nuestro diseño, la resolución calculada es de 4.8mV/bit . Por tanto, a la entrada
analógica de 0V le corresponderá una salida digital 00 0000 0000 y para la de 5V será
11 1111 1111. El Vref mínimo es de 2V.

• ADCON1

Vref+ y Vref- pueden ser internas (VDD y GND) o externas a través de los pines 4
y 5 del dispositivo: RA2->Vref- y RA3->Vref+. Nosotros utilizaremos VDD y GND como
referencia.

Fig. 71 Registro ADCON1

Pág. 96 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

El tiempo para convertir un dato esta formado por dos periodos: Tiempo de
Adquisición y Tiempo de Conversión. Para cada uno de los periodos se establecen
determinadas tareas, como podemos comprobar en la Fig. 72

Fig. 72 Secuencia de Conversión A/D

El tiempo de adquisición puede ser programado para que el micro lo tenga en


cuanta durante el proceso de conversión de manera automática. Los bits
ACQT2:ACQT0 del registro ADCON2<5:3> proporcionan un rango desde 2 hasta 20
vecesTAD (Periodo de conversión por bit). De esta forma después de seleccionar el
canal no hay que esperar el periodo de adquisición por programa hasta poder activar
el bit de inicio de la conversión GO/·DONE. El micro automáticamente espera el
tiempo de adquisición programado en ACQT2:ACQT0. Si la configuración de estos
registros se hace a 000, la espera seguirá realizándose de forma manual, cuando el bit
GO/#DONE se activa, el módulo supone que ya ha pasado el tiempo de adquisición de
datos y comienza la conversión inmediatamente.

En nuestro coso se programará un tiempo de adquisición automático que


simplificará el código del microcontrolador.

La conversión comienza justo después de completarse el tiempo de


adquisición. Para que la conversión se realice de forma correcta es necesario que
pasen al menos 11TAD, siendo TAD el tiempo necesario para completar la conversión
analógico-digital de un bit.

Existen 7 formas posibles de seleccionar el reloj del conversor para TAD, a


través de los bits ADCS2:ADCS0 del registro, bien utilizando la señal de reloj del
oscilador del micro, previamente escalado con los valores 2, 4, 8, 16, 32 ó 64 veces
TOSC, o configurando un oscilador interno propio del módulo de conversión, el oscilador
RC que funciona a 1MHz.

Universidad de Sevilla Pág. 97


CAPITULO 8
Diseño Desarrollo Físico
Integrado

TAD debe elegirse para que tenga un valor entre 0,7µs y 2,5µs, valores
obtenidos de las especificaciones del PIC18F2550. Además, para una correcta
conversión analógico-digital, el reloj analógico-digital de conversión (TAD) debe ser lo
más corto como sea posible, pero mayor que el mínimo TAD permitido por el
dispositivo; 0,7µs.

La muestra el resultado del valor del TAD sabiendo la frecuencia de trabajo del
dispositivo y la fuente de reloj analógico-digital seleccionada.

Fig. 73 TAD frente a la frecuencia de operación del dispositivo.

La elección del reloj del oscilador como FOSC/4 que se ha realizado en el diseño
del sistema se debe a las características del mismo. La frecuencia de variación de la
velocidad del acelerómetro que se va a medir con nuestra aplicación puede llegar a
ser como mucho la variación el movimiento continuo del balanceo de un brazo, por
ejemplo, lo cual nunca supondrá velocidades mayores a 5MHz.

Conociendo el reloj del oscilador, el modelo de entrada que presenta el


convertidor, mostrado en la Fig. 74 y con los datos que se especifican en la hoja de
características del PIC18F2550, podemos diseñar el tiempo de adquisición.

Fig. 74 Modelo entrada analógica del PIC18F2550

Pág. 98 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

Se define el tiempo de adquisición de datos como TACQ=TAMP+Tc+TCOFF (Tiempo


de amplificación + Tiempo de carga del condensador + Coeficiente de Temperatura)
Para el caso que nos ocupa y clores, comprobamos (especificaciones dada en la hoja
de catálogo):

TAMP=2µs
TC=-CHOLD(RIC+Rss+Rs)Ln(1/2048)=-25p(1K+2k+0)Ln(1/2048)=0,57µs
TCOEFF=(85ºC-25ºC)0.02µs/ºC=1.2µs

Resultando: TACQ=0.2µs+0.57µs+1.2µs=1.97µs. Como la frecuencia del


oscilador elegida es de 4MHz, el tiempo será TAD=4TOSC=1µs, con lo que podremos
configurar de manera automática el tiempo de adquisición para que TACQ=2TAD,
simplificando la codificación de la aplicación en el micro.

El resultado de la línea de tiempo necesaria para la conversión es el siguiente:

Fig. 75 Conversión A/D con tiempo de Adquisición automático.

El bit de más peso del registro ADCON2 , el bit 7, ADFM selecciona el formato
del resultado de la conversión. Si vale1, el resultado está justificado en el registro
ADRESH, que tiene sus 6 bits de más peso a 0; mientras que si vale 0 la justificación
se realiza sobre el registro ADRESL, que tiene sus bits de menos peso a 0.

Fig. 76 Alineamiento del resultado digital

Universidad de Sevilla Pág. 99


CAPITULO 8
Diseño Desarrollo Físico
Integrado

• ADCON2

Fig. 77 Registro ADCON2

8.2.3.1 Configuración del Conversor A/D

A continuación se muestran los pasos necesarios a la hora de realizar una


conversión A/D.

1. Configurar el modulo C A/D


• Configurar las patitas que actuarán como entradas analógicas, las que
trabajan como E/S digitales y las usadas para la Tensión de referencia
(registro ADCON1).
• Seleccionar reloj de conversión (registro ADCON2)
• Seleccionar el tiempo de adquisición de dato (ADCON2)
• Seleccionar el canal de entrada (registro ADCON0)
• Activar el módulo A/D (registro ADCON0)

2. Activar , si se desea, la interrupción escribiendo sobre PIE1 y PIR1


• Borrar el señalizador ADIF
• Poner a 1 el bit ADIE
• Poner a 1 los bits habilitadores GIE.

Pág. 100 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

3. Tiempo de espera para que transcurra el tiempo de adquisición (si es


requerido).

4. Inicio de la conversión.
• Poner a 1 el bit GO/DONE# (registro ADCON0)

5. Tiempo de espera para completar la conversión A/D que puede detectarse:


• Exploración del bit GO/DONE#, que al completarse la conversión pasa
a valer 0
• Esperando a que se produzca la interrupción, si se ha programado, al
finalizar la conversión.
• Aunque no se permita interrupción, el señalizador ADIF se pondrá a 1
al finalizar la conversión

6. Leer el resultado en los 10 bits válidos y borrar el flan ADIF.

7. Para una nueva conversión regresar al paso 1º o al 2º

El tiempo de conversión por bit esta definido por TAD. Se exige esperar un
tiempo mínimo de 2TAD para reiniciar una nueva conversión.

8.2.4 Registros del módulo USB

Para nuestra aplicación configuraremos un conexión USB de alta velocidad 2.0


pese a que no sería necesario tanta velocidad para la transmisión de la aplicación, el
realizarlo a velocidad completa no encarece el sistema y permite tener un soporte ya
diseñado para futuras aplicaciones que requieran una velocidad de transferencia
mayor.

El PIC18F2550 contiene un mecanismo de comunicación serie compatible con


USB, llamado SIE (Serial Interface Engine) que permite el control de la comunicación
entre el host USB y el PIC.

El control y la configuración del módulo USB se lleva a cabo a través de 22


registros de estado y de control. Estos son:

• Registro de Control USB (UCON).


• Registro de configuración USB (UCFG).
• Registro de estado de transferencia USB (USTAT). Lectura
• Registro de dirección de dispositivo USB (UADDR).
• Registros de número de frame (UFRMH:UFRML).
• Registros (del 0 al 15) de habilitación de puntos finales (UEPn).

Universidad de Sevilla Pág. 101


CAPITULO 8
Diseño Desarrollo Físico
Integrado

Vemos la configuración interna para el funcionamiento del módulo USB en la


Fig. 78. Comprobamos que el módulo USB dispone de un regulador interno de 3.3V
para suministrar tensión al transductor interno. Esto se debe a que USB utiliza 3,3 V
para las comunicaciones, por lo tanto, mientras el resto del micro puede utilizar una
alimentación de 5 V, el transductor debe alimentarse de una fuente distinta (Vusb).

El regulador se controla a través del bit VREGEN del registro de configuración


CONFIG2L. Cuando está habilitado (VREGEN = 1), el voltaje es visible en el pin Vusb.
Si el regulador está deshabilitado, una tensión de 3,3 V debe ser suministrada
externamente a través de Vusb. Hay que tener en cuenta que las resistencias de
pullup internas únicamente pueden utilizarse si el transductor interno está activo.

Fig. 78 Módulo USB

Como puede comprobarse en la figura, se ha optado por la utilización de todos


los elementos internos de los que dispone el microcontrolador, el regulador, el
transductor y los pull-ups, de esta manera conseguimos que el número de
componentes necesarios en el dispositivo sea el menor posible, lo cual repercute tanto
en el tamaño como en el coste del dispositivo.

Pág. 102 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

El bit de PKTDIS (UCON <4>) es una bandera que indica que el SIE ha
inutilizado para la transmisión y recepción de paquetes. Este bit es activado por el SIE
cada vez que se recibe una señal de SISTEMA para permitir al tratamiento de la
misma. Este bit no puede ser activado por el microcontrolador, sólo podemos limpiarlo;
lo permitirá al SIE para seguir la transmisión y/o la recepción.

• UCON

Fig. 79 Registro UCON

La configuración del transductor y los pull-ups, asi como la velocidad de


dispositivo se debe llevar a cabo antes de habilitar el módulo y no puede ser cambiada
mientras este se encuentre habilitado. El registro que se encarga de realizar esta
configuración es el UCFG.

• UCFG

Antes de comenzar la comunicación con el USB debemos configurar el


hardware asociado al módulo de comunicación, utilicemos el hardware interno y/o
externo al microcontrolador. La mayor parte de la configuración se realiza con el
registro de UCFG, a excepción del regulador de tensión de 3.3V que deberemos
configurarlo en el registro de configuración CONFIG2L.

Universidad de Sevilla Pág. 103


CAPITULO 8
Diseño Desarrollo Físico
Integrado

El registro de UFCG contiene la mayor parte de los bits que controlan el


comportamiento de nivel de sistema del módulo USB. Estos incluyen:

⇒ Velocidad de Bus (velocidad completa o baja velocidad)


⇒ Habilitación de las resistencias pull-up del microcontrolador
⇒ Habilitación del Transductor del microcontrolador
⇒ Permiten Uso de Buffer Ping-pong·

Fig. 80 Registro UCFG

El registro UCFG también contiene dos bits que permiten el manejo del modo
de testeo del la función del microcontrolador, ayudando en las puebas de manejo de la
aplicación, para la eliminación de fallos y certificaciones del uso del USB, son bits de
salida de control que permiten la supervisión del estado del buffer en cada momento.

El USB OE proporciona información en cuanto a si el SIE escucha al Bus o


participa activamente en la comunicación con el host. Esto bit estará habilitado por
defecto cuando se usa un transductor externo. El bit de supervisión USB OE es útil
para la eliminación de fallos de sistema inicial.

Pág. 104 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

Podemos generar un diagrama de ojo activando la opción de testeo UTEYE. La


salida del diagrama de ojo permitirá observar si las señales que se generan a través
del USB están afectadas por el ruido debido a la proximidad de componentes.

En nuestro diseño ambos modos permanecerán desactivados.

• UEPn

Los registros de configuración de puntos finales cambiarán de valor según la


tecnología de transmisión que empleemos en la comunicación con el dispositivo USB,
se configuraran en el software mediante los ficheros de cabecera.

Un ejemplo de configuración de estos registros, podríamos verlo con una


comunicación para el envío de datos al PC por interrupción. En este caso debemos
configurar los registros de manera que

UEP0=0001 0110 Punto Final 0 para soportar transferencias de control.


UEP1=0001 0010 Punto Final 1 para soportar transferencias de interrupción de
entrada

Fig. 81 Registros UEPn

Universidad de Sevilla Pág. 105


CAPITULO 8
Diseño Desarrollo Físico
Integrado

• USTAT (Registro de Estado; Sólo permite lectura)

El registro de Estado del USB indica el estado de transacción dentro del SIE.
Cuando el SIE emite una interrupción de transferencia de USB completa, debemos
leer el registro USTAT para determinar el estado de la transferencia. USTAT contiene
el número de punto final de la transferencia.

8.2.5 Registros de configuración

Los PIC18F2550 incluyen varias características especiales pensadas para


maximizar las prestaciones y minimizar el coste eliminando componentes externos.
Además permiten ahorrar energía y proteger el código frente a copia.

Estos elementos son:

⇒ Varias fuentes de oscilador diferentes.


⇒ Diversos tipos de RESET.
⇒ Varias fuentes de interrupción, con dos niveles de prioridad.
⇒ Temporizador Watchdog.
⇒ Varios modos de bajo consumo.
⇒ Monitor de fallo de reloj.
⇒ Star-up de dos velocidades.
⇒ Protección del código.
⇒ Posiciones de localización ID.
⇒ Circuitería de programación serie en circuito.

Los registros de configuración permiten controlar estas características


especiales del microcontrolador. Estos registros están mapeados a partir de la
dirección de memoria de programa 300000h, la cual se encuentra más allá de la
direcciones de memoria de programa disponibles para el usuario, de hecho se
encuentra en la zona de memoria reservada para la configuración del sistema.

Fig. 82 Registros de configuración del PIC18F2550

Pág. 106 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

Se han producido cambios en los bits de configuración del oscilador de entrada


CONFIG1, además de los siguientes bits que afectan a otras características del
dispositivo.

8.3 Adaptación de la placa del programador.

Para la comunicación con el PIC18F2550 debemos crear una placa sobre la


que podamos colocar nuestro PIC de 28 pines, ya que la placa que se proporciona
junto con el programador esta adaptada a las características del PIC16F690, que
posee únicamente 20 pines.

La conexión de la placa con el PIC 16F690 a través del puerto de


comunicación ICSP, presenta las siguientes conexiones con los pines marcados en el
dibujo del patillaje del microprocesador:

Universidad de Sevilla Pág. 107


CAPITULO 8
Diseño Desarrollo Físico
Integrado

Fig. 83 Esquemático comunicación con PIC16F690

La conexión de la placa con el PIC 18F2550, cambia completamente ya que la


funcionalidad de los pines del 18F2550 no se corresponde en ubicación con el
integrado 16F690.

Fig. 84 Esquemático comunicación con PIC18F2550

Pág. 108 Universidad de Sevilla


CAPITULO 8
Desarrollo Físico Diseño
Integrado

Una vez se tienen claro los pines del PIC18F2550 implicados en la


comunicación con el puerto USB para el funcionamiento del programador y la relación
entre estos y los puertos del conector del programador, construimos el circuito
necesario siguiendo los pasos que se detallan en el Apartado 3 de este mismo
documento.

Universidad de Sevilla Pág. 109


CAPITULO 8
Diseño Desarrollo Físico
Integrado

Pág. 110 Universidad de Sevilla

También podría gustarte