Tarjeta de desarrollo para el laboratorio de

Transcripción

Tarjeta de desarrollo para el laboratorio de
XI JORNADAS DE PARALELISMO—GRANADA, SEPTIEMBRE 2000
1
Tarjeta de desarrollo para el laboratorio de
microcontroladores PIC
Fernando Pardo y José A. Boluda
Resumen--En este artículo se presenta una tarjeta de
desarrollo, especialmente concebida para las prácticas de
laboratorio con microcontroladores PIC. Todas las
características de la tarjeta han sido pensadas para que la
realización y desarrollo de los experimentos, por parte del
profesor y los alumnos, sean sencillos.
Palabras clave--Microcontroladores, PIC, tarjeta de
desarrollo, laboratorio de micros.
I. INTRODUCCIÓN
L
A
enseñanza
de
sistemas
basados
en
microcontroladores es parte fundamental de una
Ingeniería Electrónica, y es un buen complemento en la
formación de cualquier Ingeniero Informático.
Durante varios años se ha impartido una asignatura de
microcontroladores en la titulación de Ingeniería
Informática de la Universitat de València. En las clases
de laboratorio se utilizaban tarjetas basadas en el 8051.
Las clases estaban bien, pero el conjunto de periféricos
con los que se hacían experimentos era escaso, ya que
casi toda la tarjeta de desarrollo estaba dedicada al
propio micro con su RAM y EPROM. Por otro lado, la
descarga de programas se podía realizar sobre la marcha,
pero a una RAM externa que era por tanto necesaria en
todas las aplicaciones. Además, era siempre necesario
contar con un mínimo "Sistema Operativo" que cuartaba
la libertad en el diseño de experimentos, especialmente
si luego se querían portar a otras plataformas. Por
último, la tarjeta admitía un único tipo de
microcontrolador, siendo las posibilidades de
intercambio algo escasas.
Por estas razones, entre otras, se consideró la
posibilidad de cambiar la plataforma de desarrollo del
laboratorio de micros. En la búsqueda de alternativas, se
encontró que Microchip ofrece una gran variedad de
microcontroladores (PIC), con muchas posibilidades de
aplicación, y con una gran compatibilidad entre ellos
[1]. Esto es especialmente importante, ya que se buscaba
una plataforma donde realizar una amplia gama de
aplicaciones. De hecho, la adopción finalmente de esta
familia de micros ha hecho posible que se pudiera
utilizar la misma tarjeta en otras asignaturas como la de
Periféricos y la de Instrumentación. En la de periféricos
se utilizan para realizar un componente externo basado
en USB: el puerto USB de la tarjeta, con el PIC
adecuado, se programa como dispositivo esclavo. En la
asignatura de instrumentación se utiliza como generador
digital de señales analógicas.
Departamento de Informática, Universidad de Valencia, Avda. Vte.
Andrés Estellés s/n, 46100 Burjassot, Valencia (España).
[email protected], [email protected], http://tapec.uv.es/
En el caso de la asignatura de microcontroladores, el
laboratorio está orientado hacia el desarrollo de sistemas
empotrados autónomos, que es el campo donde mejor
encajan los microcontroladores. Esta es la razón también
por la que se han introducido un gran número de
periféricos y puertos, tanto analógicos como digitales.
Por un lado, el tener una única tarjeta con todo incluido
es más cómodo y fiable que tener que enchufar una
tarjeta diferente para cada experimento, por otro lado, el
entorno del micro sería el mismo que si el desarrollo
fuera real.
La figura 1 muestra una foto de la tarjeta. Los
diferentes módulos y periféricos de la tarjeta se han
dispuesto de forma bien diferenciada siguiendo fines
pedagógicos. La información completa sobre esta tarjeta
se puede encontrar en [2].
Fig. 1. Fotografía de la tarjeta EduPIC
Las principales características de esta tarjeta son las
siguientes:
o Está preparada para soportar las familias 12, 16 y 18
de los PIC de Microchip. (Encapsulado tipo DIP de
8, 18, 28 y 40 pines.)
o Los PIC son programados directamente en la tarjeta
a través del puerto paralelo del PC, siempre y
cuando el PIC soporte ICSP (In Circuit Serial
Programmming). Prácticamente cualquier PIC
soporta ICSP.
o Existe
un
conmutador
para
deshabilitar
completamente los periféricos durante la
programación.
o Incluye LCD alfanumérico de 2x16 caracteres.
o Teclado matricial con 4x4 teclas.
o Cuatro fuentes analógicas integradas:
o 2 potenciómetros lineales (0-5 V)
o 1 sensor de temperatura.
o 1 sensor de luminosidad.
2
o
o
o
o
o
o
o
o
o
o
o
o
o
AUTORES: TÍTULO DEL ARTÍCULO
Se incluye una resistencia para calentamiento del
sensor de temperatura.
Barra de 8 leds para monitorizar el bus de datos.
Conjunto de 4 displays de 7 segmentos conectados a
un único conversor de BCD a 7 segmentos.
5 entradas digitales de un bit seleccionables
mediante conmutador.
Entradas comunes analógicas y digitales
seleccionables mediante conmutadores de tres
estados (Análogo/Libre/Digital). Este conmutador
permite la desconexión individual de cada entrada
analógica o digital.
Bus I2C y periféricos:
o PCF8591: Conversor A/D y D/A. Tiene
una salida y cinco entradas analógicas.
o PCF8582: Memoria E2PROM con 256
bytes.
Conector e interfaz RS232.
Conector USB (sólo para PICs que soporten USB).
Botón para generar interrupción externa (INT).
Conmutadores de habilitación individuales para
cada periférico de la tarjeta.
Conectores individuales para el bus I2C, entradas y
salidas analógicas, PWM (RC1 y RC2),
interrupción externa y reloj timer0 (T0K).
Dos conectores IDC de 26 pines para expandir la
conexión del microcontrolador. El primer conector
tiene todas las señales de los PIC de hasta 28 pines,
mientras que el segundo completa las señales
presentes en PICs más grandes (hasta 40 pines).
La alimentación se puede realizar mediante una
fuente externa aunque no esté ni polarizada (AC o
DC) ni filtrada, siempre que sea superior a unos 1315 Voltios e inferior a unos 30 V. Es posible la
utilización de dos pilas de 9 voltios.
II. PERIFÉRICOS Y MÓDULOS DE LA TARJETA
Los componentes más interesantes de la tarjeta
EduPIC se comentan a continuación.
A. Unidad de programación
Una de las características más interesantes de esta
tarjeta es que se puede grabar casi cualquier PIC en la
propia tarjeta. Esta característica es especialmente
importante en un laboratorio docente donde un mismo
dispositivo debe ser grabado una y otra vez.
La figura 2 muestra el circuito de programación de la
tarjeta. Los pines de programación del PIC (RB7 y RB8)
están conectados al conector del puerto paralelo de
impresora a través de un buffer. A través de este puerto
se reciben también diferentes señales para llevar el PIC a
su estado de programación.
Para que la programación sea correcta, es necesario
aislar los pines RB7 y RB6 del resto de periféricos. Un
conmutador de la tarjeta se encarga de asegurar este
aislamiento.
En el circuito de programación se incluye también el
de reset. Como el PIC tiene su propio power-up reset, el
circuito de reset externo se limita a un botón.
D9
VPP
1
20
2
19
3
18
4
17
5
16
6
15
7
14
8
13
9
12
VCC
R16
2K2
Q5
R17
2K2
1
2
3
NMCLR
2
3
Q6
12N3904
2N3906
10
11
LN10304
R22
2K2
R23
1K
3
Q7
12N3904
D11
R24
2
2K2
P1
1
14
2
15
3
16
4
17
5
18
6
19
7
20
8
21
9
22
10
23
11
24
12
25
13
SW15
1N4148
R25
1
100
2
3
4
RESET
U10
2
4
6
8
11
13
15
17
1
19
1A1
1A2
1A3
1A4
2A1
2A2
2A3
2A4
1G
2G
1Y1
1Y2
1Y3
1Y4
2Y1
2Y2
2Y3
2Y4
18
16
14
12
9
7
5
3
SW18
RB7
SDATA
RB6
SCLK
1
2
RB7/SDATA
5
RB6/SCLK
3
4
6
SW_PROG
74LS244
PARALELO
Fig. 2. Circuito de programación de PIC en la placa.
B. Fuentes analógicas y digitales
La tarjeta dispone de 5 entradas digitales de un bit y 4
analógicas, sin contar las propias del bus I2C que se
comenta más adelante. Estas entradas comparten el
puerto A del PIC que puede ser configurado como
digital o analógico. Dado que comparten la misma
entrada, es necesario disponer de algún mecanismo que
permita elegir una entrada o la otra, o incluso ninguna en
el caso de utilizar señales externas a la tarjeta. Para ello
se han utilizado conmutadores que permiten elegir las
tres posibilidades: analógico, digital y desconectado.
Hay 4 fuentes internas de señales analógicas: dos de
ellas son simples potenciómetros que permiten
seleccionar cualquier tensión entre 0 y 5 Voltios. Otra
fuente analógica viene de un sensor de temperatura
LM35, que entrega una salida lineal con la temperatura,
exactamente 10 mV por cada grado centígrado
empezando en cero grados. La última entrada analógica
viene de una resistencia sensible a la luz (LDR)
colocada junto con otra resistencia formando un divisor
resistivo entre 0 y 5 Voltios.
Las fuentes digitales se han implementado mediante
interruptores que dan 0 ó 5 V.
C. Barra de 8 leds y display de 7 segmentos
La salida digital básica consiste en un led por cada bit
de un puerto. En este caso se ha elegido una barra de
leds para reducir espacio.
Otra salida digital básica consiste en un simple display
de 7 segmentos.
Se han conectado estos dos dispositivos de salida a los
8 bits del puerto B del PIC. La figura 3 muestra el
circuito de esta conexión.
XI JORNADAS DE PARALELISMO—GRANADA, SEPTIEMBRE 2000
D9
GA[0..7]
1
20
GA0
2
19
GA1
3
18
GA2
4
17
GA3
5
16
GA4
6
15
GA5
7
14
GA6
8
13
GA7
9
12
R14
D10
10
7
6
4
2
1
9
10
5
a
b
c
d
e
f
g
dp
GA0
GA1
GA2
GA3
GA4
GA5
GA6
GA7
1
2
3
4
5
6
7
8
GA0
GA1
GA2
GA3
GA4
GA5
GA6
GA7
16
15
14
13
12
11
10
9
3
8
gnd1
gnd2
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
330 DIP 16
SC52-11HWA
11
LN10304
3
es un tipo de teclado que ofrece 2n teclas por cada n bits
y es muy simple de usar.
El teclado 4x4 (16 teclas) está conectado también al
puerto B. Los 4 bits más significativos están conectados
a las filas, y los 4 menos significativos a las columnas.
No hay necesidad de colocar resistencias de pull-up,
ya que el propio PIC las proporciona (siempre que se
configure para ello). Si el teclado estuviera conectado en
otro puerto sí que podría ser necesario disponer
externamente de estas resistencias.
3 SW14
2
Fig. 3. Circuito de la barra de leds y display de 7 segmentos
Ambos dispositivos, display y leds, comparten el
mismo paquete de resistencias, lo que provoca que uno
de los dispositivos tome la mayor parte de la corriente,
al ser diodos, y luzca más. Para evitar esto se han
elegido dispositivos cuyos diodos tienen características
similares de tensión y corriente de polarización.
D. Display múltiple de 7 segmentos
Para incrementar la complejidad de los dispositivos de
salida, se ha incluido un display múltiple formado por
cuatro sencillos de 7 segmentos. Hay varias
posibilidades de control de este tipo de display múltiple,
pero se ha optado por un display de refresco, ya que
permite introducir conceptos como la realización de
tareas de fondo, interrupciones de refresco, etc., durante
la ejecución normal de un programa.
La figura 4 muestra el circuito de este display de 4
displays de 7 segmentos. Los 4 bits menos significativos
del puerto B están conectados al 74LS48 que es el
convertidor de BCD a 7 segmentos. La salida de este
convertidor es común a los 4 displays. Con el fin de que
sólo aparezca el número en el display deseado, se han
puesto 4 señales de habilitación en los 4 bits más
significativos del puerto B, de manera que estos bits
controlan los transistores que conectan o desconectan
cada display de forma individual.
Un número de 4 cifras se construye poniendo cada vez
un dígito en la parte baja del puerto B. al tiempo que se
selecciona un display diferente. Si esta alternancia se
realiza lo suficientemente rápida, el ojo verá un número
de 4 cifras casi sin parpadeos.
G[0:7]
D4
D5
a
b
c
d
e
f
g
dp
gnd1
gnd2
7
6
4
2
1
9
10
5
a
b
c
d
e
f
g
dp
3
8
gnd1
gnd2
SC52-11HWA
7
6
4
2
1
9
10
5
gnd1
gnd2
3 Q2
RB7
G0
G1
G2
G3
G4
G5
G6
G7
a
b
c
d
e
f
g
dp
3
8
gnd1
gnd2
3 Q3
RB6
G0
G1
G2
G3
G4
G5
G6
G7
G0
G1
G2
G3
G4
G5
G6
13
12
11
10
9
15
14
A
B
C
D
E
F
G
1
2
4
8
BI/RBO
RBI
LT
7
1
2
6
4
5
3
RB0
RB1
RB2
RB3
74LS48
3 Q4
RB5
1
VCC
6
RA1/AN15
RA0/AN04
POT10K
2
3
R35
2
1
E
R/W
RS
LCD
VEE
2X16
VCC
GND
P2
5
9
4
8
3
7
2
6
1
RB4
U13
13
8
11
10
RC6/TX
VCC
3 SW3
2
C24+
C25+
1u
1u
RS-232
DISP1.ON
1
3
4
5
2
6
+
C26
1u
C27
+
E. Teclado matricial 4x4
Es importante disponer de un teclado en una tarjeta de
desarrollo. Se ha optado por un teclado matricial, ya que
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
G. Interface RS232
Es importante que una tarjeta de desarrollo disponga
de algún puerto de comunicaciones y transmisión de
datos, aunque sea sencillo.
Se ha incorporado el RS232 porque es sencillo,
disponible, está en la mayoría de ordenadores
personales, y la mayoría de PICs incluye una UART de
comunicaciones serie donde es sencillo implementar una
conexión RS232.
Lo único necesario para implementar la comunicación
RS232 es un circuito que adapta las tensiones de 5 V del
PIC a las de 12 V del RS232. Esto se consigue con un
MAX232 por ejemplo, tal como muestra la figura 6.
10K
Fig. 4. Circuito correspondiente al display múltiple de 4 cifras
7
8
9
10
11
12
13
14
Fig. 5. Circuito del LCD
2N3904
1
D0
D1
D2
D3
D4
D5
D6
D7
LCD
R7
2
10K
RA2/AN2
LCD.ON
D13
1
10K
2N3904
R40
3
2
3
8
R6
2
1
10K
2N3904
7
6
4
2
1
9
10
5
SW21
SC52-11HWA
R5
2
1
10K
2N3904
7
6
4
2
1
9
10
5
SC52-11HWA
R4
2
1
a
b
c
d
e
f
g
dp
3
8
U5
D7
G0
G1
G2
G3
G4
G5
G6
G7
SC52-11HWA
3 Q1
VCC
D6
G0
G1
G2
G3
G4
G5
G6
G7
F. Pantalla LCD
El último paso hacia un display de mediana
complejidad lo constituye la pantalla LCD. Hay otras
pantallas más sofisticadas, pero hay pocas que sean tan
versátiles, estándares, económicas, y fáciles de usar.
El LCD de la tarjeta está conectado al puerto B y A del
PIC. El puerto B se utiliza como bus de datos, mientras
que en los tres bits menos significativos de A se han
implementado las señales de control del LCD.
La figura 5 muestra la conexión del LCD al PIC de la
tarjeta.
3
DISP2.ON
1
1
1u
R1IN
R2IN
T1IN
T2IN
C+
C1C2+
C2V+
VMAX232
Fig. 6. Interface RS232
R1OUT
R2OUT
T1OUT
T2OUT
12
9
14
7
RC7/RX
4
AUTORES: TÍTULO DEL ARTÍCULO
H. Bus I2C
El protocolo de bus I2C permite la transmisión de
datos entre varios dispositivos con tan solo dos hilos. La
simplicidad y facilidad de uso son sólo algunas de las
razones para incluirlo en sistemas empotrados.
La mayoría de microcontroladores modernos,
incluyendo los PIC, disponen de dos pines para el bus
I2C. Por otro lado, hay varios dispositivos periféricos
que disponen de este bus como único interface digital,
facilitando la interconexión de dispositivos.
Se han incluido dos de estos periféricos en la tarjeta
EduPIC. Uno de ellos es un conversor A/D y D/A. El
conversor A/D no era en principio necesario pues el PIC
ya tiene 4 puertos de este tipo, pero la conversión D/A
no forma parte de casi ningún PIC, por lo que resulta
interesante incluirla dentro de la tarjeta. De esta manera
la tarjeta ya puede leer y escribir señales analógicas.
El otro dispositivo I2C es una simple EEPROM serie
que expande la capacidad de almacenamiento del PIC,
especialmente porque algunos PICs (pocos) no incluyen
ninguna memoria EEPROM para escritura permanente.
I. Interface USB
Hay algunos microcontroladores PIC, muy pocos
todavía, que incluyen un interface USB en el propio
micro. No sólo incluyen la parte lógica de
comunicaciones, sino que generan las señales eléctricas
según el estándar USB 1.0; esto significa que se puede
realizar una conexión de bus USB sin necesidad de
ningún circuito externo, salvo un par de resistencias y
condensadores.
El puerto USB del PIC comparte pines con el bus I2C
entre otros, por lo que si se quiere que una tarjeta de
desarrollo permita ambos buses, es necesario disponer
de unos puentes de configuración. Esto lo hace la tarjeta
EduPIC con dos puentes que permiten elegir entre bus
I2C y USB.
Por otro lado, la configuración de las señales del
puerto puede ser diferente dependiendo de que la tarjeta
actúe como maestro o como esclavo. La configuración
por defecto es la de esclavo, ya que es la más usual.
Además, no todos los PIC soportan el modo maestro.
III. SOFTWARE
No se ha implementado ningún firmware en la tarjeta.
Este era uno de los requisitos, pues se pretendía que el
código implementado no dependiera de ningún sistema
operativo o firmware que pudiera estar presente en la
tarjeta, y que pudiera interferir en la aplicación.
Sin embargo, es necesario algún mecanismo que
permita la descarga de la aplicación en el PIC y luego se
ejecute. Esto se ha implementado mediante la capacidad
ICSP (programación serie) de los PIC, que permite que
puedan ser grabados en la propia tarjeta.
Para ello es necesario disponer de un programa en el
PC que se comunique con el PIC y le grabe el programa.
Se ha desarrollado un programa que realiza esta labor
entre otras. Este programa lee el código en formato HEX
generado por el compilador y lo transmite al PIC,
comprobando que la grabación sea correcta. Esta
función es la principal, pero también permite escribir
datos en la memoria EEPROM del PIC, lee el contenido
del PIC, permite cambiar la configuración del PIC,
permite su desprotección, etc.
Estas funciones se combinan en una interface amistosa
que funciona tanto en Windows como Linux.
La tarjeta está adaptada para ser usada con otros
programas de descarga y grabación de libre distribución
como el ICProg.
IV. SESIONES DE LABORATORIO
Hay un total de 5 sesiones en el laboratorio de
microcontroladores. El principal objetivo es cubrir la
mayor parte de características tanto del micro como de
los periféricos, para combinarlos en aplicaciones lo más
realistas posible. En la última sesión se ofrece la
oportunidad de que el estudiante invente su propio
proyecto.
Sesión 1: Programación en ensamblador
En esta sesión los estudiantes realizan un pequeño
programa en ensamblador del PIC. En el resto de
sesiones utilizan C, pero es importante que sepan qué
hay detrás de cualquier programa en C. Además hay
ciertas características que son sólo accesibles si se
conoce el ensamblador del PIC. En esta sesión se
aprende también el manejo de las herramientas de
depuración básicas como el simulador.
Sesión 2: Interrupciones, temporización y display
múltiple
En esta sesión se introduce el lenguaje C. Se explica el
uso de las interrupciones y temporizaciones mediante el
uso del display múltiple de 4 dígitos. En esta sesión el
estudiante debe implementar un contador de doble
sentido. Deben generar interrupciones cada cierto
tiempo (timer1) para modificar el contador y atender a
las señales de parada e inicialización. Al mismo tiempo
se debe refrescar el display para mostrar en cada
momento el valor del contador.
Sesión 3: Teclado y LCD
Mediante la implementación de un conversor de
temperaturas, los estudiantes aprenden a leer de un
teclado matricial y a escribir y controlar un LCD.
Sesión 4: Entradas analógicas y comunicación serie
En esta sesión se aprende a leer las entradas analógicas
y a mandar/recibir datos por el puerto serie RS232
conectado al ordenador. Para ello envían por el puerto
serie el valor analógico de uno de los puertos. El puerto
analógico se elige mediante el teclado del ordenador.
Sesión 5: Proyecto libre
En esta última sesión el estudiante presenta un
proyecto propio que ha ido desarrollando durante el
curso. El proyecto debe funcionar sobre la tarjeta y
hacer uso de la mayor cantidad de dispositivos.
Otras sesiones, otras asignaturas
Tal y como se comentó anteriormente, esta tarjeta se
emplea también en la asignatura de periféricos, donde se
implementa un periférico esclavo basado en USB.
También en la asignatura de Instrumentación, donde se
generan señales analógicas a partir de patrones digitales.
REFERENCIAS
[1]
Microchip Inc, Varios Manuales y notas de aplicación.
http://www.microchip.com/
[2]
Fernando Pardo, EduPic, Tarjeta de desarrollo para
sistemas
basados
en
PIC:
Manual
del
usuario,
http://tapec.uv.es/edupic/

Documentos relacionados