PIC’Trainer Plus - Fundación San...

69
INGENIERIA DE MICROSISTEMAS PROGRAMADOS S.L. C/ Alda. Mazarredo Nº 47 - 1º Dpto. 2 48009 BILBAO - BIZKAIA Tel/Fax: 94 4230651 Email: [email protected] www.microcontroladores.com Tarjeta de expansión PIC’Trainer Plus m MANUAL DE USUARIO

Transcript of PIC’Trainer Plus - Fundación San...

INGENIERIA DE MICROSISTEMASPROGRAMADOS S.L.

C/ Alda. Mazarredo Nº 47 - 1º Dpto. 248009 BILBAO - BIZKAIA

Tel/Fax: 94 4230651

Email: [email protected]

Tarjeta de expansión

PIC’Trainer Plus�MANUAL DE USUARIO

Trainer Plus INDICE

i - 1

INDICE GENERAL

TEMA 1: Arquitectura de µPIC Trainer Plus

1.1 OBJETIVOS DE µPIC TRAINER PLUS 1-1 1.2 CARACTERÍSTICAS GENERALES 1-2 1.3 ARQUITECTURA DE µPIC TRAINER PLUS 1-3 1.3.1 Interfaz con µPIC Trainer. El teclado 1-3 1.3.1.1 Ejemplo 1: El teclado 1-4 1.3.2 El canal serie Rs-232 1-5 1.3.2.1 Ejemplo 2: El canal serie RS-232 1-5 1.3.3 Reloj/calendario + RAM 1-6 1.3.4 El módulo de visualización 1-7 1.3.5 El módulo ADC/DAC 1-8 1.3.6 Las E/S en paralelo 1-10 1.3.7 El esquema general 1-10

TEMA 2: Montaje de µPIC Trainer Plus

2.1 INTRODUCCIÓN 2-1 2.2 LISTA DE MATERIALES 2-2 2.3 PASOS A SEGUIR EN EL MONTAJE 2-3 2.4 LOS JUMPERS 2-5 TEMA 3: Especificaciones del bus I2C

3.1 INTRODUCCIÓN 3-1 3.2 CONCEPTO DEL BUS I2C 3-1

3.2.1 Terminología del bus I2C 3-3 3.3 CARACTERÍSTICAS GENERALES 3-3 3.4 TRANSFERENCIA DEL BIT 3-4 3.4.1 Validez del bit 3-4 3.4.2 Condiciones de inicio (START) y parada (STOP) 3-4 3.5 TRANSFIRIENDO DATOS 3-4

Trainer Plus INDICE 3.5.1 Formato del byte 3-5 3.5.2 Reconocimiento 3-5 3.6 SINCRONIZACIÓN DEL RELOJ, ARBITRAJE 3-6 3.6.1 Sincronización 3-6 3.6.2 Arbitraje 3-7 3.7 FORMATO 3-8 3.8 DIRECIONAMIENTO 3-9 3.8.1 Definición del primer byte 3-9 3.9 ESPECIFICACIONES ELÉCTRICAS 3-10 3.10 TIEMPOS 3-11 3.11 EJEMPLO 3: Rutinas I2C 3-12

TEMA 4: EL PCF 8583 Reloj/Calendario + RAM

4.1 DESCRIPCIÓN GENERAL 4-1 4.2 CARACTERISTICAS 4-1 4.3 DIAGRAMA DE PINES 4-1 4.4 RANGOS DE TRABAJO 4-2 4.5 DESCRIPCIÓN FUNCIONAL 4-2 4.5.1 Registro de control/estado 4-3 4.5.2 Evolución de los contadores 4-6 4.5.3 Registro de control de alarma 4-6 4.5.4 Registros de alarma 4-8 4.5.5 Salida de interrupción 4-8 4.5.6 Oscilador y divisor 4-9 4.5.7 Inicialización 4-9 4.5.8 Protocolo I2C 4-9 4.5.9 Nota de aplicación 4-10 4.6 EJEMPLO 4: El reloj en tiempo real 4-11

TEMA 5: EL SAA 1064, CONTROLADOR DE DISPLAY

5.1 DESCRIPCIÓN GENERAL 5-1 5.2 CARACTERÍSTICAS 5-1 5.3 DIAGRAMA DE PINES 5-2 5.4 DESCRIPCIÓN FUNCIONAL 5-2 5.4.1 Pin ADR 5-3 5.4.2 Byte de estado 5-3

i - 2

Trainer Plus INDICE 5.4.3 Byte de instrucción y bits de control 5-3 5.4.4 Datos 5-4 5.4.5 Power On Reset 5-4 5.4.6 Salidas a los segmentos 5-4 5.4.7 Salidas Multiplexadas 5-4 5.5 EJEMPLO 5: Controlador de displays 5-6

TEMA 6: EL PCF 8591 CONVERTIDOR A/D Y D/A

6.1 DESCRIPCIÓN GENERAL 6-1 6.2 CARACTERÍSTICAS 6-1 6.3 DIAGRAMA DE PINES 6-2 6.4 DESCRIPCIÓN FUNCIONAL 6-2 6.4.1 Direccionado 6-2 6.4.2 El byte de control 6-3 6.4.3 Conversión D/A 6-3 6.4.4 Conversión A/D 6-5 6.4.5 Oscilador 6-6 6.4.6 Nota de aplicación 6-7 6.5 EJEMPLO 6: EL convertidor DAC 6-8 6.6 EJEMPLO 7: El convertidor ADC 6-9

TEMA 7: EL PCF 8574A, E/S DIGITALES

7.1 DESCRIPCIÓN GENERAL 7-1 7.2 CARACTERÍSTICAS 7-1 7.3 DIAGRAMA DE PINES 7-2 7.4 DESCRIPCIÓN FUNCIONAL 7-2 7.4.1 Direccionamiento 7-2 7.4.2 Interrupción 7-3 7.4.3 La puerta de E/S 7-4 7.4.4 Características 7-5 7.5 EJEMPLO 8: E/S paralelo 7-5

APENDICES

AP.1 EL SOFTWARE AP-1 AP.2 BIBLIOGRAFIA AP-3

i - 3

Trainer Plus ARQUITECTURA

1 - 1

TEMA 1: Arquitectura de µPIC Trainer Plus

1.1 OBJETIVOS DEL µ PIC TRAINER PLUS

Debido a las grandes posibilidades de conexión de los microcontroladores PIC con diferentes tipos de periféricos y dispositivos, es posible aumentar enormemente la potencia y prestaciones de los PIC mediante la conexión externa de distintos elementos que aumenten las capacidades de interconexión. EL µTrainer Plus es un equipo que conectado al sistema de desarrollo µPIC Trainer permite ampliar y experimentar prácticamente con los recursos más avanzados y más interesantes que soportan los microcontroladores PIC. Dando un vistazo a los diferentes modelos de las gamas media y alta de PIC’s existentes nos encontramos con dispositivos que implementan, mediante hardware, distintos módulos que permiten la comunicación con dispositivos externos. Tal es el caso de los módulos SCI y SSP. El módulo SCI (Interface de Comunicación Serie) implementa un USART en el interior del microcontrolador. Esto hace posible la comunicación serie entre éste y cualquier otro periférico externo como puede ser un terminal, impresora, o cualquier otro periférico cuyo interfaz sea del tipo RS-232, RS-485, etc. Dicha comunicación serie puede ser además síncrona o asíncrona. En este último caso la comunicación puede ser del tipo “Full-Duplex”. El módulo SSP (Puerta Serie Síncrona) está pensado para la conexión serie entre el PIC y ciertos dispositivos integrados diseñados al efecto. Existen dos modalidades dentro del módulo SSP: la SPI (Interface de Periféricos Serie) y la I2C (Circuitos Inter-Integrados). La modalidad SPI consiste en una comunicación síncrona a 3 hilos con distintos dispositivos diseñados al efecto. Entre estos dispositivos abundan las memorias RAM y EEPROM de diferentes capacidades, con lo que se hace posible la expansión externa de un PIC con estos tipos de memorias. La modalidad I2C consiste en una comunicación síncrona a 2 hilos con distintos tipos de dispositivos diseñados al efecto. Entre estos se pueden encontrar, además de memorias RAM y EEPROM, convertidores ADC y DAC, controladores de displays 7 segmentos, puertas paralelo de E/S, relojes en tiempo real, etc. De esta forma hipotecando las dos líneas de un PIC empleadas en la comunicación, se consigue a cambio ampliar notablemente el número de periféricos y elementos externos. Hay que destacar que, aunque ciertos modelos de PIC incorporan ambos módulos SCI y SSP implementados por hardware y su empleo se hace muy cómodo, otros dispositivos PIC no los poseen. A pesar de ello, mediante las rutinas apropiadas es posible implementar por software el protocolo necesario para realizar los dos tipos de comunicaciones y aprovechar así las grandes oportunidades de expansión externa que nos brindan. El presente manual está dedicado a explicar el montaje, funcionamiento y experimentación de los módulos más modernos de ampliación que existen en la tarjeta µPIC Trainer Plus diseñada por Microsystems Engineering. Se trata de una tarjeta de expansión para el sistema de desarrollo µPIC Trainer de la misma compañía, cuyo objetivo es ampliar el número de periféricos y prestaciones.

Trainer Plus ARQUITECTURA

1.2 CARACTERÍSTICAS GENERALES

Se detallan a continuación las características más relevantes del sistema de ampliación µPIC Trainer Plus.

• Conexión directa mediante cable plano de 26 hilos al conector de expansión “PIC-BUS” de µPIC Trainer.

• Alimentación única de +5 Vcc que se toma directamente del PIC-BUS o bien se

aplica a través de las bornas de conexión exterior. • Tamaño de la placa 100 x 160 mm Eurocard. • Teclado numérico hexadecimal de 4 x 4 conectado a las líneas RB0-RB7 de la

puerta B. • Canal de comunicaciones serie RS-232 con conector standard DB9 macho.

Este canal se puede gestionar mediante las líneas RC6 y RC7 para aquellos dispositivos que implementan la USART por hardware, o bien mediante las líneas RB4 y RB5 para la gestión por software. Se selecciona mediante Jumpers.

• Interface I2C gestionado por las líneas RC3-RC4 para los dispositivos que lo

implementan por hardware, o bien mediante las líneas RB6-RB7 para la gestión software. Se selecciona por jumpers.

• Display de 4 dígitos de 7 segmentos gestionado por el dispositivo I2C

SAA1064. • Cuatro canales de conversión analógico-digital (ADC) y un digital-analógico

(DAC) proporcionados por el dispositivo I2C PCF8591. Tanto los 4 canales AD como el DA están disponibles en el exterior mediante las bornas de conexión para ser usados por los distintos transductores.

La tensión de referencia empleada por los convertidores ADC y DAC se puede

también aplicar desde el exterior mediante la borna correspondiente. • Ocho líneas de E/S digital proporcionadas por el dispositivo I2C PCF8574.

Estas líneas están disponibles en las bornas de conexión para ser empleadas por los periféricos que se deseen controlar.

Cada línea está asociada a un diodo led activo por nivel “0” para pilotar el

estado lógico de esas 8 señales. • Reloj/calendario en tiempo real controlado por el dispositivo I2C PCF8583.

Además de las clásicas funciones horarias dispone de alarma y puede actuar como temporizador/contador. Está alimentado por batería de Ni/Cd recargable que mantiene al circuito en hora aún a falta de tensión de alimentación.

El circuito posee también 240 bytes de memoria RAM no volátil. • Va acompañado de un manual con instrucciones de montaje, funcionamiento,

experimentos prácticos e información técnica, así como un disco de 3.5” con software de aplicación y ejemplos.

1 - 2

Trainer Plus ARQUITECTURA

1 - 3

1.3 ARQUITECTURA DE µPIC TRAINER PLUS

En los siguientes apartados se irán explicando las diferentes secciones que configuran el sistema µPIC Trainer Plus (foto 1-1). Además de incluirse los correspondientes esquemas, se dará un explicación detallada de las mismas.

Foto 1-1. Fotografía de µPIC Trainer Plus

1.3.1 Interfaz con µPIC Trainer. El teclado

El esquema de conexionado del teclado se muestra en la figura 1.1 Mediante el conector CN1 de 26 contactos se conecta mediante cable plano a la placa µPIC Trainer. De aquí se obtienen todas las señales del PIC que en ella esté insertado (Puerta A, Puerta B, Puerta C, Alimentación y MCLR). Las 8 líneas de la puerta B (RB0-RB7) se conectan directamente al teclado matricial de 4x4.El software de la aplicación configurará a las líneas RB7-RB4 como salidas para ir activando secuencialmente cada una de las filas. Al mismo tiempo las líneas RB3-RB0 se configuran como entradas desde las columnas del teclado y son leídas para determinar si hay alguna tecla pulsada. RB6 y RB7 también pueden actuar como señales SDA y SCL para el interfaz I2C en caso de que este se gestione por software. Si se está trabajando con un PIC que incorpora hardware I2C son las líneas RC4 y RC3 las que suministran las señales SDA y SCL, respectivamente. La selección de uno u otro modo de implementar el bus I2C, se realiza mediante los jumpers J1 y J2 que conmutan a ambas señales.

Trainer Plus ARQUITECTURA

Figura 1.1: Interfaz con µPIC Trainer. El teclado

1.3.1.1 Ejemplo 1: El teclado

En el disco de demostración que se incluye con el equipo hay una serie de ficheros con

rutinas y ejemplos de manejo del teclado. Son las siguientes:

P16CXX.INC Se trata de un fichero que contiene la definición de todos los dispositivos PIC de la gama media. Lo proporciona la casa Microchip incluido en el software de sus productos. Si se desea hacer uso de esas definiciones, se debe incluir, mediante la directiva Include, en todos los programas fuentes del usuario. Todos los ejemplos expuestos en este manual, hace uso de ellas. LCD_CXX.ASM Se trata de una serie de rutinas creadas por Microsystems Engineering para el uso del módulo de visualización LCD del sistema de desarrollo µPIC Trainer. La mayor parte de ellas están explicadas en el manual de usuario de dicho sistema. Los ejemplos o aplicaciones que hagan uso del módulo LCD, deben incluir este fichero, mediante la directiva Include, en los correspondientes programas fuente. TECLADO.ASM Se trata de un fichero con rutinas para el manejo del teclado que incluye el sistema µPIC Trainer Plus objeto de este manual. Este fichero debe incluirse, mediante la directiva Include, en aquellas aplicaciones en que se haga uso del mismo. Contiene 3 rutinas: Key_Scan realiza un barrido del teclado y devuelve en la variable “Tecla” el código de la tecla pulsada. Key_BCD convierte el código de tecla en su correspondiente código BCD (de 0 a F). BCD_7seg convierte un código BCD en su correspondiente código de 7 segmentos que se puede aplicar sobre los displays incluidos en µPIC Trainer Plus.

1 - 4

Trainer Plus ARQUITECTURA

TECLA.ASM Se trata de un ejemplo de demostración que incluye los tres ficheros anteriormente mencionados. El programa funciona bajo un PIC16C84 previamente grabado e insertado sobre el sistema de desarrollo µPIC Trainer que a su vez estará conectado con µPIC Trainer Plus mediante el conector de expansión. Consiste en ir explorando el teclado al tiempo que sobre el módulo LCD se va visualizando la última tecla pulsada.

1.3.2 El canal serie RS-232 Su esquema corresponde al mostrado en la figura 1.2. Básicamente está formado por el

circuito MAX232 (U5). Este se encarga de convertir los niveles lógicos TTL presentes en la patilla 11 de transmisión (Tx), a niveles lógicos RS-232, que se obtienen por la patilla 14 (TxD) y se aplican al conector DB9 (CN2). La señal de recepción RxD llega desde el canal serie a la patilla 13 de U5 con niveles RS-232 que son convertidos a niveles TTL y se obtienen por la patilla 12 (Rx). Tanto la señal de transmisión Tx como la de recepción Rx se controlan desde RC6 y RC7 si se está trabajando con un PIC que incorpora un USART por hardware. En caso de que la comunicación se gestione mediante software se emplean las líneas RB4 y RB5. La selección de uno u otro modo de trabajo se selecciona mediante los jumpers J3 y J4.

Figura 1.2. El canal serie RS-232

1.3.2.1 Ejemplo 2: El canal serie RS232

En el disco de demostración se incluyen una serie de ficheros con rutinas y ejemplos relacionados con el manejo por software del canal serie RS-232 del sistema µPIC Trainer Plus.

1 - 5

Trainer Plus ARQUITECTURA

1 - 6

RS232LOW.ASM Es un fichero que debe incluirse, mediante Include, en los programas fuentes de aplicación que hagan uso de la comunicación serie. Incluye 2 rutinas: RxD es una rutina de recepción que devuelve en la variable “Rxdreg” el carácter recibido por el canal serie. TxD es una rutina de transmisión que transmite por el canal el carácter contenido en la variable “Txdreg”. Mediante una serie de variables que deben ser inicializadas antes de incluir este fichero se establecen una serie de parámetros tales como velocidad de reloj del PIC, Baudios, Nº de bits de datos, Nº de bits de stop, etc.. Se recomienda hacer un estudio previo del funcionamiento de estas rutinas. COM.ASM Se trata de un ejemplo de aplicación de las rutinas anteriores. Se supone un 16C84 grabado con el programa e insertado en µPIC Trainer. Este a su vez conectado con el sistema µPIC Trainer Plus y, el canal serie de este último, conectado con un terminal o el canal serie de un PC dotado de un programa de comunicaciones. El programa espera a recibir un carácter desde el terminal, este se reenvía nuevamente produciendo un eco y al mismo tiempo se visualiza sobre el módulo LCD de µPIC Trainer.

1.3.3 Reloj/calendario + RAM

Se trata de un dispositivo adaptable al bus I2C modelo PCF8583P (U2) que contiene un reloj/calendario en tiempo real. Junto con las clásicas funciones horarias, también realiza funciones de alarma y temporización. Dispone en su interior de 256 posiciones de memoria RAM estática, de las cuales las 16 primeras están reservadas para las funciones de reloj, calendario, alarma y temporización. Quedan por tanto 240 posiciones libres para que el usuario pueda guardar su propia información. En la figura 1-3 se puede apreciar la conexión de U2 dentro de la placa µPIC Trainer Plus de Microsystems Engineering. Las líneas SCL y SDA (patillas 6 y 5 respectivamente) son las líneas propias del bus I2C. A través de ellas el dispositivo comunicará con el MASTER (el PIC empleado en la aplicación) para su lectura y/o escritura. La dirección I2C que tiene asignada el dispositivo es la 1010000x. Esta dirección viene por una parte determinada por la propia estructura interna del PCF8583P y, por otra, por el estado lógico de la patilla 3 (A0) que en el caso de µPIC Trainer Plus es de nivel “0”. La patilla 1 (OSCI) es la entrada de reloj. A su través se aplica la frecuencia patrón en base a la cual se mantiene al reloj/calendario en hora. Esta frecuencia puede ser de 50Hz o la obtenida por un cristal de 32.768 Hz contectado entre esta patilla y la 2 (OSCO) como es el caso que nos ocupa. La patilla 7 (INT) es una señal de salida que se activa por nivel bajo en caso de alarma horaria o cuando se alcance una determinada temporización. Esta señal se puede emplear para activar cualquier periférico o bien para provocar interrupciones al MASTER que controla a este dispositivo. En el sistema µPIC Trainer Plus el circuito PCF8583P se puede alimentar mediante la tensión general de alimentación Vcc o bien mediante una batería recargable de Ni/Cd. En presencia de la tensión general de alimentación Vcc, el circuito se alimenta de ella a través del diodo D5. Al mismo tiempo la batería se carga a través de D5 y R16.

Trainer Plus ARQUITECTURA Ante la falta general de alimentación es la pila la que suministra la tensión al circuito de forma que este mantenga el reloj/calendario en hora y mantenga los datos que haya en su memoria RAM. Se dispone así de un sistema de almacenamiento no volátil. Más información sobre el dispositivo PCF8583P en el tema 4 de este manual.

Figura 1.3. El reloj/calendario + RAM

1.3.4 El módulo de visualización

Consiste en un conjunto de 4 displays de 7 segmentos controlados por el dispositivo I2C SAA1064 (U1). Su conexión en la placa µPIC Trainer Plus se muestra en el esquema de la figura 1.4. Las líneas SCL y SDA son las líneas del bus I2C mediante las cuales el MASTER envía la información a visualizar sobre los cuatro dígitos. La dirección I2C del dispositivo es de 7 bits. Los 5 bits de más peso están establecidos de antemano por el fabricante del mismo y corresponde a la combinación 01110. Los siguientes 2 bits los establece el usuario mediante la tensión que se aplique por la patilla 1 (ADR):

Tensión en ADR Bits GND 0 0

3/8 de Vcc 0 1 5/8 de Vcc 1 0

Vcc 1 1

La dirección asignada en µPIC Trainer Plus es por tanto 0111011x.. El bit x representa un “0” o un “1” según se vaya a escribir o leer respectivamente. Ver la figura 1.4 Cuando el circuito SAA1064 recibe vía I2C la información a visualizar sobre los 4 displays, realiza un multiplexado de los mismos. Así, en un primer momento, por las líneas P1-P8 aparece la información a representar sobre el dígito 1 y, por las líneas P9-P16 la del dígito 3. Simultáneamente aparece la señal MX1 con lo que se activa el transistor Q1 que gobierna los ánodos comunes de dichos dígitos.

1 - 7

Trainer Plus ARQUITECTURA

Tras un lapsus de tiempo, por las líneas P1-P8 y P9-P15 aparece la información a visualizar sobre los dígitos 2 y 4 junto con la señal MX2 que activa al transistor Q2 dando paso a los ánodos comunes de dichos dígitos.

El proceso, automático, se repite indefinidamente y a la debida velocidad. De esta forma

aunque sólo hay dos dígitos activados en cada instante, se provoca la sensación óptica de que los cuatro están activados.

El circuito realiza además funciones de test, control de brillo, etc . Para más detalles sobre el

mismo se recomienda leer el tema 5 de este manual.

Figura 1.4. El módulo de visualización

1.3.5 El módulo ADC/DAC

Es el mostrado en la figura 1.5. Se centra en el dispositivo I2C PCF8591 (U3). La dirección del mismo esta formada por 4 bits establecidos en fábrica y que se corresponden con 1001 y otro tres bits que dependen del estado lógico de las líneas A0, A1 y A2. En el caso de µPIC Trainer Plus la dirección resultante es 1001000x. El circuito consiste, por una parte, en un convertidor Analógico/Digital (ADC) de 8 bits y cuatro canales analógicos de entrada. Las señales a convertir se aplican por las líneas AN0, AN1, AN2 y AN3 y proceden de las bornas de conexión exterior. Por otra parte dispone de un convertidor Digital/Analógico (DAC) también de 8 bits y cuya tensión de salida se obtiene por la señal AOUT y esta presente en la correspondiente borna de conexión.

1 - 8

Trainer Plus ARQUITECTURA La señal analógica de tierra así como la de referencia se aplican, mediante las bornas de conexión, a las líneas AGND y VREF. Estas tensiones se pueden conectar directamente a GND y VCC general del sistema. Se obtiene así una resolución de 20mV/bit en las distintas conversiones: VAOUT = VAGND + (VREF - VAGND) * VALOR DEL DAC VBIT = (VREF – VAGND) / 28 ADC = (VANx – VAGND) / VBIT

Las líneas SCL y SDA son las líneas propias del bus I2C. A través de ellas el MASTER envía al dispositivo las órdenes de funcionamiento, los códigos a convertir, etc.. Igualmente el MASTER recibe los resultados de las conversiones de los distintos canales. En el tema 6 de este manual se encontrará la descripción de este circuito con más detalle.

Figura 1.5. El módulo ADC/DAC

1 - 9

Trainer Plus ARQUITECTURA

1 - 10

1.3.6 Las E/S en paralelo

Están basadas en el dispositivo I2C PCF8574A (U4). Es un circuito cuya dirección está formada por los 4 bits preestablecidos cuya combinación es 0111 y el estado lógico de las líneas A0, A1 y A2, que en el caso de µPIC Trainer Plus es la 0111000x. En la figura 1.6 se muestra el esquema de conexiones. Básicamente se trata de un circuito con 8 líneas que pueden actuar como entradas o salidas dependiendo que se lean o escriban (P0-P7). Los periféricos a controlar se conectan con estas líneas a través de las correspondientes bornas de conexión. Cada línea además lleva un led que pilota y representa el estado lógico de la misma. Estos leds se activan por lógica negativa. Las líneas SCL y SDA forman el bus I2C. A través de ellas el MASTER lee o escribe los valores binarios presente en las señales P0-P7. La señal de salida INT, activa por “0” se puede utilizar como interrupción al MASTER. Esta ocurre cada vez que una línea de entrada cambia de estado. El circuito se hace especialmente interesante porque permite ampliar el número de líneas de E/S de un PIC. Más detalles en el en el tema 7.

Figura 1.6. El módulo de E/S

1.3.7 El esquema general

Se representa en la figura 1.7. Después de lo expuesto sólo hay que destacar la presencia de las resistencias “pull-up” R5, R6 y R7. Se hacen necesarias dado que las señales del bus I2C son siempre en colector abierto al igual que la de interrupción.

Trainer Plus ARQUITECTURA

1 - 11

Figura 1.7. Esquema general

Trainer Plus MONTAJE

2 - 1

TEMA 2: Montaje de µPIC Trainer Plus

2.1 INTRODUCCIÓN

En este tema se trata sobre el montaje de la placa de ampliación µPIC Trainer Plus de Microsystems Engineering. Mediante la placa de circuito impreso diseñada al efecto, el montaje práctico no debe suponer problema alguno. Se trata de una placa profesional tipo EUROCARD de 100 x 160, a doble capa, con taladros metalizados, máscara antisoldante y serigrafía para la ubicación de los componentes en el lugar y con la orientación adecuada. Se recomienda el empleo de un soldador tipo “lápiz” de punta fina y una potencia no superior a los 30W. El estaño debe ser al 60% mínimo y un grosor no superior a 1 mm. En la figura 2.1 se muestra la serigrafía de la placa con la disposición de componentes.

Figura 2.1. Disposición de componentes

Trainer Plus MONTAJE

2 - 2

2.2 LISTA DE MATERIALES

Referencia Valor Descripción U1 SAA1064 Controlador de displays 7 segmentos U2 PCF8583P Reloj/calendario + RAM U3 PCF8591 Convertidor AD y DA U4 PCF8574A E/S paralelo U5 MAX232 Convertidor de niveles lógicos DIG1-DIG4 SA36-11 4 displays de ánodo común D5 1N4007 Diodo D6-D13 Led 8 diodos led de 3 mm Q1-Q2 SC 107 2 transistores NPN R1-R7 2K2 7 resistencias de ¼ W R8-R15 270 8 resistencias de ¼ W R16 150 1 resistencia de ¼ W R17 10K 1 resistencia de ¼ W R18 100 K 1 resistencia de ¼ W C1-C5 100 nF 5 condensadores C6 2.7 nF 1 condensador C7-C10 22 µF 4 condensadores electrolíticos radiales de 25V C11 10 pF 1 condensador BAT1 3.6 V Batería recargable de Ni/Cd X1 32,768 KHz Cristal de cuarzo CN1 26 c Conector de 26 contactos para cable plano, macho, recto CN2 DB9 Conector DB9 macho, codo de bajo perfil J1-J4 4 tiras con 3 postes rectos cada una y sus correspondientes caperuzas. Teclado Teclado de 4 x 4 SECME mod. ECO 16250 06 Bornas 6 bornas de 3 contactos para circuito impreso Zócalos 1 de 24, 3 de 16 y 1 de 8 pines Separadores 4 de 6 mm y 4 de 10 mm Tuercas 8 tuercas métrica 10 Cable Latiguillo de cable plano de 26 hilos acabado en 2 conectores hembra. Pines Tira de 8 pines hembra C.Impreso Placa de C. Impreso de Microsystems Engineering Disco Disco de demostración con programas de ejemplo Manual Manual de usuario de µPIC Trainer Plus

Trainer Plus MONTAJE

2.3 PASOS A SEGUIR EN EL MONTAJE

Con objeto de facilitar el montaje de µPIC Trainer Plus a aquellos usuarios que no estén familiarizados con el “bricolaje” electrónico, se cita a continuación el orden en que se deben ir colocando los diferentes elementos por el lado de los componentes de la placa del circuito impreso.

1.- Como primera medida se deben identificar, separar y clasificar todos los

elementos que forman el kit según la lista de componentes presentada en el apartado anterior, prestando especial atención a sus formas, valores, referencias, etc. y procurando no perder ninguno.

2.- Se empezará por colocar todas las resistencias, excepto R8-R15 que se

pondrán más adelante. El valor de estas se identifica por sus colores:

Referencia Valor Colores R1-R7 2 K 2 Rojo-Rojo-Rojo R8-R15 270 Rojo-Violeta-Marrón

R16 150 Marrón-Verde-Marrón R17 10k Marrón-Nebro-Naranja R18 100 K Marrón-Negro-Amarillo

Se doblan las patillas a 90º y se insertan en su sitio, según su valor.

Consultar la serigrafía de la placa o la figura 2-1 para conocer la ubicación exacta de cada una.

Deben quedar todas ellas al ras de la placa y una vez realizada la

soldaduras, se cortan los trozos de las patillas sobrantes al ras de dicha soldadura.

3.- Colocar el diodo D5 teniendo en cuenta que la franja que tiene pintada en

uno de sus extremos corresponde al cátodo y debe ir orientada según la serigrafía de la placa y al ras de la misma. Cortar los sobrantes de las patillas.

4.- Colocar los 5 zócalos de los circuitos integrados. Independientemente del

modelo de zócalo disponible, siempre se representa mediante algún tipo de referencia, qué patilla es la número 1. Esta referencia debe a su vez coincidir con la referencia pintada en la serigrafía del circuito impreso.

Se recomienda sujetar primero, al ras de la placa, todos los zócalos

mediante dos puntos de soldadura cada uno. Luego asegurarse de que están todos perfectamente alineados, orientados y que todas las patillas sobresalen por el lado opuesto de la placa (a veces algunas se doblan, no sobresalen y no se pueden soldar). Finalmente proceder a soldar todas las patillas restantes evitando en todo momento que se toquen entre sí.

5.- Colocar los 8 diodos tipo led D6-D13. Deben ir al ras de la placa y bien

alineados entre sí. Visto desde por la parte superior, se puede apreciar que uno de los extremos está achaflanado y corresponde con la patilla más corta. Esa es el cátodo y debe estar orientada según la serigrafía. Cortar los restos de las patillas.

2 - 3

Trainer Plus MONTAJE

6.- Soldar los condensadores de desacoplo C1-C5. Deben ir al ras de la placa y no tienen una posición determinada.

7.- Soldar los condensadores C6 y C11. No tienen polaridad y deben ir al ras de

la placa. 8.- Colocar las 4 tiras de tres postes y soldarlos lo más rectos posibles en los

lugares destinados para los jumpers J1-J4. A continuación colocar la tira de 8 pines hembra en el lugar del teclado. Procurar también que quede formando ángulo recto respecto al plano de la placa.

9.- Colocar los dos transistores Q1 y Q2. A la vista de la serigrafía su

orientación no debe presentar ningún problema. Deben quedar a unos 5 mm de altura respecto a la placa.

10.- Colocar los 4 displays DIG1-DIG4. Los puntos decimales deben quedar

orientados hacia abajo, hacia el teclado. A la hora de soldarlos extremar las precauciones dado que las soldaduras

están muy próximas entre sí y se corre el riesgo de cortocircuitarlas. 11.- Colocar y soldar el cristal de cuarzo X1. 12.- A continuación se procederá a soldar las resistencias R8-R15. Estas se

colocan en sentido vertical respecto a la placa. Procurar que queden todas al ras y bien alineadas.

13.- Situar al ras de la placa y soldar los 4 condensadores electrolíticos C7-C10.

Tiene polaridad y la patilla positiva debe estar orientada según indica la serigrafía.

14.- Colocar el conector macho para cable plano de 26 contactos CN1.

Orientarlo de forma que su patilla 1 (marcada por un triángulo) mire hacia el borde izquierdo de la placa.

15.- Colocar y soldar el conector CN2 de 9 contactos DB9 macho, codo. 16.- Soldar la batería BAT1 prestar atención a su polaridad. 17.- Colocar y soldar las 6 bornas de 3 contactos. Estas encajan entre sí y el

orificio de conexión debe orientarse hacia el borde derecho de la placa. 18.- Insertar los 5 circuitos integrados U1-U5 en sus correspondientes zócalos.

Procurar que las patillas estén bien alineadas y no ejercer demasiada fuerza para evitar que se doblen.

19.- Fijar, mediante los 4 separadores de 10 mm, el teclado a la placa al mismo

tiempo que se insertan los contactos sobre la tira de 8 pines hembra soldada anteriormente.

20.- Finalmente atornillar los 4 separadores de 6 mm en las cuatro esquinas de

la placa, a modo de patillas.

2 - 4

Trainer Plus MONTAJE

2 - 5

2.4 LOS JUMPERS

La placa dispone tan sólo de 4 jumpers (J1-J4) de 2 posiciones cada uno. Con ellos se selecciona qué señales se harán cargo del canal serie RS-232 así como del bus I2C. Todo ello queda reflejado en la siguiente tabla. JUMPER 2 – 1 2 – 3 Descripción J1 – J2 Abierto Abierto Bus I2C desconectado

Abierto Cerrado El Bus I2C está controlado mediante RC3-RC4. Se emplea para aquellos PIC’s que tengan I2C implementado por hardware.

Cerrado Abierto El Bus I2C se controla mediante las señales RB6-RB7. Se emplea en las ocasiones en que el bus se gestione por software.

J3 – J4 Abierto Abierto Canal serie RS-232 desconectado. Abierto Cerrado La transmisión se realiza por RC6 y la recepción por RC7. Se

emplea cuando los PIC’s tengan la USART implementada por hardware.

Cerrado Abierto La transmisión se realiza por RB4 y la recepción por RB5. Se emplea cuando el canal serie se gestione por software.

Trainer Plus ESPECIFICACIONES I2C

3 - 1

TEMA 3: Especificaciones del bus I2C

3-1 INTRODUCCIÓN En algunas aplicaciones, especialmente las que emplean microcontroladores mono-chip, se deben establecer ciertos criterios :

Estos criterios se pueden implementar con una estructura de bus serie. Este tipo de bus no puede alcanzar velocidades similares a las conseguidas con una estructura de bus paralelo, pero requiere mucho menos cableado y el hardware es mucho más sencillo. Los distintos dispositivos conectados al bus serie deben comunicarse entre sí mediante un protocolo que evite el bloqueo de la información y garantice la comunicación entre todos ellos. El sistema debe ser independiente de los dispositivos conectados al bus, con objeto de poder realizar futuras ampliaciones y/o modificaciones. Mediante el adecuado protocolo se decide qué dispositivo se hace cargo del bus y cuándo.

Todos estos conceptos se contemplan en las especificaciones del bus I2C.

• Cierto tipo de microcontroladores no son ampliables desde el exterior por lo que la aplicación se tiene que ceñir al tipo y cantidad de elementos que contenga en su interior : memoria RAM de datos, EEPROM, líneas de E/S, temporizadores, contadores, etc. Si estos no son suficientes habrá que elegir otro modelo de microcontrolador con más prestaciones o, emplear un sistema ampliable externamente.

• Normalmente un sistema completo además del microcontrolador, necesita

de otros circuitos periféricos como memorias, ampliación de las líneas de E/S, convertidores A/D y D/A, relojes en tiempo real, controladores de display, de LCD, etc.

• El coste de conexión de todos estos periféricos con el microcontrolador

debe reducirse al mínimo. • Normalmente la aplicación no requiere una gran velocidad de transferencia

entre el microcontrolador y los distintos dispositivos. • La eficacia general del sistema depende de la versatilidad de los

dispositivos conectados al mismo.

3-2 CONCEPTO DEL BUS I2C

Dos líneas, SDA (datos) y SCL (reloj), transportan la información entre los diferentes dispositivos conectados al bus. Cada dispositivo se identifica por una única dirección y puede transmitir o recibir dependiendo de la operación que se vaya a realizar. Un controlador de LCD, por ejemplo, solo recibe mientras que una memoria de tipo RAM puede transmitir o recibir datos en función de que se vaya a leer o escribir.

Trainer Plus ESPECIFICACIONES I2C

Los dispositivos pueden clasificarse en MASTER (principal) o SLAVE (secundario). El MASTER es el que inicia la transferencia de datos y genera la señal de reloj. Cualquiera de los dispositivos direccionados por un MASTER, se considera un SLAVE. El I2C es un bus MULTIMASTER. Puede haber más de un MASTER conectado y controlando el bus. Normalmente se tratan de micocontroladores o microcomputadores. Ver la figura 3-1.

Figura 3-1. Conexiones al bus.

Supongamos que en un momento dado el microcontrolador A actúa como MASTER :

1.- Envía información al B

a) A, emisor, direcciona a B b) A, emisor, envía el dato a B, receptor c) A termina la transferencia

2.- Recepción desde el B

a) A, emisor, direcciona a B b) A, receptor, recibe el dato desde el B, transmisor. c) A, termina la transferencia

Esta configuración puede no ser permanente. En otro momento puede ser el B quien actúe de MASTER. Todo depende de la dirección del dato a transferir en un momento dado. Dada la posibilidad de que existieran varios MASTER, podría ocurrir que más de uno inicie la transferencia en un mismo instante de tiempo. Para evitar el caos que pueda producir esta situación, se ha desarrollado un sistema de arbitraje del bus. El procedimiento consiste en una conexión tipo AND entre todos los dispositivos conectados al bus. Cuando uno o más MASTERs colocan información en la línea SDA, verifican si el bit que ellos sacan coincide con el nivel lógico de dicha línea. Si un MASTER saca un “1” pero la línea SDA está a “0” coincidiendo con un pulso de reloj, pierde la posesión del bus cancelando desde ese momento la transmisión. El nivel lógico “0” (bit dominante) presente en la línea SDA procederá de un MASTER distinto.

3 - 2

Trainer Plus ESPECIFICACIONES I2C

Las señales de reloj durante el arbitraje del bus son una combinación entre las señales de clock de los distintos MASTER’s conectadas entre sí a la línea SCL mediante una conexión tipo AND. 3.2.1Terminología del bus I2C

TRANSMISOR : Dispositivo que coloca información en la línea SDA.

RECEPTOR : Dispositivo que recibe información por la línea

SDA. MASTER : Dispositivo que inicia la transferencia, genera la

señal de reloj y finaliza la transferencia. SLAVE : Dispositivo seleccionado por el MASTER. MULTI-MASTER : Cuando más de un MASTER puede hacerse con

el control del bus sin corromper la información. ARBITRAJE : Procedimiento que garantiza que, si más de un

MASTER acceden simultáneamente al bus, únicamente uno de ellos se hace cargo del mismo con objeto de no alterar la información.

SINCRONIZACIÓN : Procedimiento para sincronizar la señal de reloj

en un sistema MULTI-MASTER.

3.3 CARACTERÍSTICAS GENERALES

Tanto las líneas SDA como SCL son líneas bidireccionales que se conectan a +Vdd mediante resistencias de carga pull-up tal y como se muestra en la figura 3-2.

Figura 3-2. Conexión de SDA y SCL al bus

Cuando el bus está libre ambas líneas están a nivel lógico “1”. Los transistores de salida conectados a las líneas del bus I2C deben ser de colector abierto para que todos ellos se puedan conectar entre sí formando una conexión tipo AND.

3 - 3

Trainer Plus ESPECIFICACIONES I2C

Los bits de datos sobre el bus pueden transferirse a una velocidad de 100 Kbits/s. La capacidad máxima en el bus es de 400 pF y el número de dispositivos conectados no debe superarla.

3.4 TRANSFERENCIA DEL BIT

Debido a la variedad de tecnología empleada en los dispositivos diseñados para conectarse al bus I2C (CMOS, NMOS, TTL, etc.) los niveles lógicos “0” y “1” de los bits transferidos, no tienen una tensión fija si no que dependen de la tensión Vdd de alimentación. Cada bit que se transfiere por la línea SDA debe ir acompañado de un pulso de reloj por la línea SCL.

3.4.1 Validez del bit

El bit de datos transferido por la línea SDA debe mantenerse estable durante el periodo en que la señal de reloj está a nivel “1”. La línea de datos SDA sólo puede cambiar de estado durante el periodo en que la señal de reloj esté a “0”, tal y como se muestra en la figura 3-3.

Figura 3-3. Validación del bit de datos

3.4.2 Condiciones de inicio (START) y parada (STOP)

Existen dos situaciones únicas que son definidas como las condiciones de inicio (START) y parada (STOP) que determinan el inicio y final de toda transferencia de datos entre el MASTER y el SLAVE. Ver la figura 3-4.

Figura 3-4. Condiciones de START y STOP

Una transición de “1” a “0” (flanco descendente) en la línea SDA al tiempo que SCL está a nivel lógico “1”, determina la condición de START. Una transición de “0” a “1” (flanco ascendente) sobre la línea SDA al tiempo que SCL permanece a nivel “1” determina la condición de STOP. Ambas condiciones son siempre generadas por el MASTER que, en todo momento, inicia y finaliza toda transferencia. El bus se considera ocupado (BUSY) tras la condición de START y, se considera libre, cierto tiempo después de la condición de STOP. 3.5 TRANSFIRIENDO DATOS

3 - 4

Trainer Plus ESPECIFICACIONES I2C

3.5.1 Formato del byte

Todos los bytes colocados sobre la línea SDA deben constar de 8 bits. Cada byte va seguido de un bit de reconocimiento, ACK, y comienza siempre por el bit de más peso (MSB) tal y como se muestra en la figura 3-5.

Figura 3-5. Formato del Byte.

Entre un byte y el siguiente puede haber un tiempo “t” de espera que se puede aprovechar para, por ejemplo, dar servicio a una interrupción. En este caso la línea SCL se mantiene a “0” para forzar al transmisor a un estado de espera. Un mensaje cualquiera puede finalizar mediante la generación de la condición de STOP durante la transferencia de un byte. En este caso no se generará el bit de reconocimiento ACK.

3.5.2 Reconocimiento

El bit de reconocimiento ACK es obligatorio en la transferencia de cada byte. El pulso de reloj asociado a este bit (9º) lo genera el MASTER. El transmisor pone la línea SDA a “1” durante dicho pulso de reloj. El receptor por su parte pone a “0” la línea SDA durante el pulso de reloj correspondiente al ACK y lo mantiene estable durante todo el periodo de dicho pulso. En la línea SDA prevalece por tanto el nivel “0” como se aprecia en la figura 5-6.

Figura 5-6. El reconocimiento

3 - 5

Trainer Plus ESPECIFICACIONES I2C

Normalmente el receptor que ha sido direccionado está obligado a generar el bit ACK después de recibir cada byte. Cuando un receptor slave no genera el bit ACK (NACK) al ser direccionado (por ejemplo cuando está realizando una función interna y no está dispuesto a recibir), debe mantener la línea SDA a nivel “1” durante el bit ACK (NACK). Esta situación es detectada por el MASTER que debe generar la condición de STOP y abortar así la transferencia. Igualmente si un SLAVE receptor reconoce ser direccionado pero no está dispuesto a recibir más bytes, el MASTER debe abortar la transferencia. Esta situación se identifica por que el SLAVE tampoco genera el ACK en el siguiente byte que recibe. En su lugar pone la línea SDA a “1” (NACK) y el MASTER genera la condición de STOP. Si un MASTER está recibiendo debe generar ACK tras cada byte enviado por el SLAVE excepto en el último, en el que el bit ACK lo mantiene a “1” (NACK) y genera la condición de STOP.

3.6 ARBITRAJE SINCRONIZACIÓN DEL RELOJ

Es la técnica necesaria por la cual, en un sistema donde existan varios MASTER, se eviten conflictos en el bus y pérdidas de información. 3.6.1 Sincronización

Todos los MASTER generan una señal de reloj sobre la línea SCL para transferir mensajes sobre el bus I2C. Los bits de información son válidos cuando dicha señal de reloj está a nivel lógico “1”. La sincronización del reloj se realiza mediante una conexión tipo AND de todos los MASTER existentes en el bus. Ver la figura 3-7.

Figura 3-7. Sincronización del reloj

Cuando un MASTER cualquiera, por ejemplo el 1, genera un flanco descendente en CLK1, la línea SCL pasa a “0”. Todos los dispositivos comienzan a temporizar sus respectivos periodos bajos de reloj. Sin embargo un flanco ascendente en CLK1 no cambia el estado de SCL ya que en ese instante CLK2 está a “0”. La línea SCL se mantiene a “0” durante el periodo de aquel dispositivo cuyo nivel “0” sea más largo. El resto de dispositivos entran en estado de espera.

3 - 6

Trainer Plus ESPECIFICACIONES I2C

Cuando todos los dispositivos finalizan su periodo bajo, SCL pasa a “1”. De esta forma todos

inician el periodo alto al mismo tiempo. El primer dispositivo en finalizar este periodo alto, pone SCL a “0” y el proceso se repite.

La señal de reloj presente en la línea SCL queda sincronizada y…

El periodo bajo : Se determina por aquel cuyo periodo bajo sea el de mayor duración. El periodo alto : Es determinado por aquel dispositivo cuyo periodo alto sea el de menor duración.

3.6.2 Arbitraje

El arbitraje consiste en determinar qué MASTER se hace cargo del bus en un sistema MULTI-MASTER. Cada MASTER debe comparar si el bit de datos que transmite junto con su pulso de reloj en un momento dado, coincide con el nivel lógico presente en la línea de datos SDA. De no ser así, pierde el acceso al bus. Si un MASTER saca un nivel lógico “1” al tiempo en que otro saca un “0”, en la línea SDA prevalece el segundo (bit “dominante”), por lo que el primero debe dejar el bus libre al menos hasta que se detecte la condición de STOP generada por el MASTER que se hizo cargo de dicho bus. La figura 3-8 muestra el caso de dos MASTER. En el momento en que hay diferencia entre el nivel lógico interno del MASTER que genera el DATO1 y el nivel actual presente en la línea SDA, este pierde el derecho a usar el bus y su nivel interno pasa a “1” liberando así la línea SDA.

Figura 3-8. Arbitraje del bus

La comparación para determinar el arbitraje puede continuar en varios bits hasta que haya una falta de coincidencia. El MASTER que pierde el arbitraje puede seguir generando pulsos de reloj hasta que finalice el byte en que lo perdió. Si un MASTER pierde el arbitraje en el momento en que está direccionando a un SLAVE, es posible que el MASTER “ganador” lo estuviera direccionando precisamente a él. Es por ello que el MASTER “perdedor” se debe poner inmediatamente en modo receptor y como SLAVE.

3 - 7

Trainer Plus ESPECIFICACIONES I2C

3 - 8

3.7 FORMATO

Los datos que se transfieren tienen el formato mostrado en la figura 3-9.

Figura 3-9. Formato de los datos transferidos

Tras la condición de START, el MASTER envía la dirección del SLAVE al que se quiere dirigir. Esta dirección es de 7 bits más el bit R/W que indica lectura (R/W=1) o escritura (R/W=0) del SLAVE. Toda transferencia de datos finaliza con la condición de STOP también generada por el MASTER. A pesar de todo, si un MASTER aún desea comunicar por el bus, puede generar otra condición de START y direccionar a otro SLAVE sin generar previamente la condición de STOP. En las figuras 3-10 a, b y c se muestran posibles formatos de transferencia. a) El MASTER transmite al SLAVE receptor. No cambia el byte de dirección.

Figura 3-10 a

b) El MASTER recibe desde el SLAVE después de enviarle a éste la dirección

Figura 3-10 b

Tras el primer ACK enviado por el SLAVE el MASTER transmisor se convierte en receptor y el SLAVE receptor en transmisor. c) El MASTER cambia el byte de dirección y selecciona un SLAVE distinto.

Figura 3-10 c

Trainer Plus ESPECIFICACIONES I2C

NOTAS : El formato combinado de la figura 3-10 c permite seleccionar un SLAVE para leerlo, por ejemplo, y luego para escribirlo. En el caso de un dispositivo I2C de tipo memoria RAM puede ser útil. El tipo de datos o comandos que se envían pueden servir para realizar distintos tipos de operaciones según el dispositivo I2C empleado. Habrá que consultar las características y posibilidades de cada cual.

3.8 DIRECCIONAMIENTO

El proceso de direccionamiento del bus I2C consiste en que el primer byte que envía el MASTER tras la condición de START es un código que determina y selecciona a un determinado SLAVE. Existe una excepción en el código denominado “llamada general”. Cuando un MASTER realiza una “llamada general” (código 0000 000) todos los SLAVES existentes deben responder con el bit ACK. Puede darse el caso de dispositivos que ignoren esta llamada. El siguiente byte tras la misma indicará la operación a realizar.

3.8.1 Definición del primer byte

Los 7 bits de más peso del primer byte se emplean para direccionar a un determinado SLAVE. El de menos peso, el octavo, determina si se realizará una operación de lectura o de escritura (R/W) sobre el SLAVE direccionado, tal y como se muestra en la figura 3-11.

Figura 3-11. El primer byte

Cuando el MASTER envía una dirección por el bus, todos los SLAVE conectados la comparan con la suya propia interna. Aquel que coincida se considerará seleccionado por el MASTER. De los 7 bits que forman una dirección hay una parte que son fijos y ya están definidos internamente por el propio dispositivo SLAVE y, otra parte, que son programables. De esta forma es posible conectar al mismo bus dispositivos idénticos cuya parte fija de dirección es la misma pero la programable es diferente. El número de dispositivos iguales que se pueden instalar a un mismo bus depende del número de bits programables disponibles. Por ejemplo, si un determinado modelo de dispositivo, recibe una dirección de 7 bits, 4 de los cuales son fijos y los 3 restantes programables, se podrán conectar al bus un máximo de 8 dispositivos de ese mismo modelo. El comité I2C creado al efecto coordina las direcciones asignadas a los diferentes dispositivos. La dirección 1111 111 está reservada como extensión de dirección en el que el proceso de direccionamiento de un dispositivo continua en los siguientes bytes transferidos por el MASTER. La dirección 1111 XXX está reservada también con propósitos de direccionamientos extendidos y la emplean ciertos dispositivos que tienen 10 bits de direccionado. La dirección 0000 XXX está reservada para un grupo especial de dispositivos :

3 - 9

Trainer Plus ESPECIFICACIONES I2C

DIRECCIÓN R/W FUNCIÓN 0000 000 0 Dirección de “llamada general” (1) 0000 000 1 Byte de inicio (2) 0000 001 X Dirección CBUS (3) 0000 010 X Reservada para un formato diferente (4) 0000 011 X No definida 0000 100 X No definida 0000 101 X No definida 0000 110 X No definida 0000 111 X No definida NOTAS : 1.- Para aquellos dispositivos que la admitan y/o necesiten 2.- No está permitido el bit ACK tras la recepción del byte. Empleado por ciertos

dispositivos. 3.- La dirección CBUS está reservada para permitir la combinación de

dispositivos I2C y CBUS en un mismo sistema. Los dispositivos I2C no responden a esta dirección.

4.- Esta dirección está reservada para combinar el formato I2C con otros

protocolos. Unicamente los dispositivos I2C que estén diseñados para trabajar con esos formatos y protocolos responden a esta dirección.

3.9 ESPECIFICACIONES ELÉCTRICAS El bus I2C permite la comunicación entre dispositivos fabricados con diferentes tecnologías y diferentes tensiones de alimentación. Para conexiones con niveles de entrada fijos y alimentación de +5V, se definen los siguientes valores :

VIL = 1.5V (máxima tensión de entrada a “0”) VIH = 3V (mínima tensión de entrada a “1”)

Dispositivos capaces de trabajar con un rango variado de tensiones de alimentación (p.e. CMOS), se definen los siguientes niveles :

VIL = 0.3 Vdd (máxima tensión de entrada a “0”) VIH = 0.7 Vdd (mínima tensión de entrada a “1”)

En ambos casos, la máxima tensión de salida a “0” es

VOL = 0.4 V a r mA

3 - 10

Trainer Plus ESPECIFICACIONES I2C

La corriente máxima de entrada a “0” en las líneas SDA y SCL de un dispositivo compatible

con el bus es de -10 µA. A nivel “1” la corriente de entrada es de 10 µA. La capacidad de dichas líneas es de 10 pF máximo. Los dispositivos con niveles fijos de entrada pueden alimentarse desde diferentes fuentes de alimentación de +5V como se muestra en la figura 3-12.

Figura 3-12. Los dispositivos I2C cuyos niveles lógicos de entrada están en relación a Vdd, deben alimentarse conjuntamente según figura 3-13.

Figura 3-13 Cuando se combinan ambos tipos de dispositivos, los de niveles fijos de entrada (NMOS, TTL) y los dependientes de Vdd (CMOS), estos últimos deben conectarse a una alimentación común de +5V como se muestra en la figura 3-14.

Figura 3-14.

La capacidad máxima del bus es de 400 pF que incluye la capacidad entre cables y la de los dispositivos conectados.

3.10 TIEMPOS

La señal de reloj en el bus I2C tiene un periodo a “0” de como mínimo 4.7 µS y a “1” de como mínimo 4 µS. De esta forma el MASTER puede generar una frecuencia de hasta 100 KHz. La figura 3-15 muestra el diagrama de tiempos así como el valor de cada uno.

3 - 11

Trainer Plus ESPECIFICACIONES I2C

3 - 12

Figura 3-15. Diagrama de tiempos

SÍMBOLO PARÁMETRO MÍNIMO MÁXIMO UNIDAD fSCL

tBUF

tHD ;STA

tLOW

tHIGH

tSU ;STA

tHD ;DAT

tSU ;DAT

tR

tF

tSU ;STO

Frecuencia del reloj SCL Tiempo en que el bus debe estar libre antes de iniciar una nueva transmisión Tiempo entre el START y primer pulso en SCL Duración del periodo bajo del reloj Duración del periodo alto del reloj Tiempo antes de una nueva condición de START Tiempo del mantenimiento del dato Tiempo de puesta del dato Tiempo del flanco ascendente para las líneas SDA y SCL Tiempo del flanco descendente para las líneas SDA y SCL Tiempo para la condición de STOP

4.7 4

4.7 4

4.7 0

250

4.7

100 1

300

µS

µS

µS

µS

µS

µS

nS

µS

nS

µS 3.11 Ejemplo3: Rutinas I2C

En el disco de demostración que se incluye en el sistema µPIC Trainer Plus existe un fichero llamado I2CLOW.ASM que contiene una serie de rutinas que se comentarán a continuación y, que permiten implementar por software, el protocolo de transmisión y recepción del bus I2C en el modo MASTER. El fichero debe estar incluido mediante Include en aquellos programas fuentes y aplicaciones que requieran este tipo de comunicación. Las rutinas incluidas en el fichero están pensadas para ejecutarse sobre un PIC 16C84 aunque pueden fácilmente adaptarse a cualquier otro dispositivo. Se emplean las señales RB6 y RB7 como señales SCL y SDA del bus I2C.

Trainer Plus ESPECIFICACIONES I2C

3 - 13

Inicia_Bus Esta rutina libera las líneas del bus I2C y las deja en estado de alta impedancia. Este estado es considerado como el estado de reposo del bus. Txt_Start_Bit Transmite la condición o bit de inicio. En este momento todos los dispositivos I2C SLAVE conectados al bus quedan en modo de recepción. Txt_Stop_Bit Transmite la condición o bit de stop. En este momento se dá por finalizada toda comunicación entre el PIC MASTER y todos los dispositivos SLAVE conectados al bus I2C. Txt_Abort Genera la condición de stop cancelando así la transmisión hacia un SLAVE. Txt_Byte Transmite el byte cargado previamente en la variable “DataByte”. Este byte puede corresponder a la dirección del SLAVE en el momento de su direccionamiento o al dato que se le quiere enviar. La rutina transmite los bits por la línea SDA al tiempo que genera los pulsos de reloj por la línea SCL. Transmitido todo el byte, espera a recibir por parte del SLAVE el bit ACK de reconocimiento. RcvByte Espera a recibir un byte de datos procedente del SLAVE. Este byte queda almacenado en la variable “DataByte” para su posterior procesamiento. Los bits van entrando al ritmo de los pulsos de reloj que la propia rutina genera. Mediante el bit “_Ultimo_Byte” de la variable “Bus_Control” se establece si el MASTER espera recibir o no más bytes procedentes del SLAVE. En caso afirmativo el MASTER genera la condición ACK al recibir el byte, en caso contrario genera la condición NACK.

Trainer Plus EL PCF 8583

4 - 1

TEMA 4: El PCF 8583 Reloj/Calendario + SRAM

4.1 DESCRIPCIÓN GENERAL

Se trata de un circuito CMOS de bajo consumo que contiene 2048 bits de SRAM organizados

en 256 x 8 bytes. Las direcciones y datos se transfieren en serie según el bus I2C. El registro interno de direcciones se incrementa automáticamente al leer o escribir un byte. Dispone de una línea externa de direccionamiento por hardware (A0) que permite la conexión de dos circuitos idénticos al mismo bus. Incluye un oscilador interno de 32.768 Hz que es empleado por un reloj/calendario en tiempo real. Los 8 primeros bytes de la RAM se emplean para controlar las distintas funciones de dicho reloj/calendario y las 8 siguientes se pueden usar para funciones de alarma.

4.2 CARACTERÍSTICAS

• Interface I2C, alimentación única de 2.5 a 6V • Tensión para la retención de datos de 1V hasta 6V • Reloj/calendario con formato de 12 o 24 h. • Base de tiempos de 50Hz o 32.768Hz. • Direccionamiento interno de la SRAM con autoincremento. • Funciones de alarma, temporización, contador de eventos e interrupción. En la figura 4-1 se muestra el esquema por bloques del dispositivo.

Figura 4-1. Diagrama por bloques del PCF8583

4.3 DIAGRAMA DE PINES

Es el mostrado en la figura 4-2.

Trainer Plus EL PCF 8583

4 - 2

Figura 4-2. Diagrama de pines

Nº Pin Señal Descripción 1 OSCI Entrada de oscilador de 50Hz o entrada de eventos 2 OSCO Salida del oscilador 3 A0 Entrada externa de dirección 4 Vss Negativo de alimentación 5 SDA Línea de datos del bus I2C 6 SCL Línea de reloj del bus I2C 7 INT Salida de interrupción en colector abierto 8 Vdd Positivo de alimentación

4.4 RANGOS DE TRABAJO

PARÁMETRO SÍMBOLO MÍNIMO MÁXIMO UNIDAD Tensión de alimentación Vdd -0.8 +7 V Consumo de alimentación Idd 50 mA Tensión de entrada Vi -0.8 a Vdd Vdd+0.8 V Corriente de entrada Ii 10 mA Corriente de salida Io 10 mA Disipación de potencia Ptot 300 mW Potencia de salida Po 50 mW

4.5 DESCRIPCIÓN FUNCIONAL

El PCF 8583 integra una memoria SRAM de 256 x 8 con un registro de direcciones de 8 bits y autoincremento, circuito oscilador de 32.768 Hz, divisor de frecuencia, interface para el bus I2C y un circuito detector de “Power On Reset” (POR). Las 8 primeras posiciones de la RAM (00-07) están diseñadas para actuar como registros específicos de 8 bits. El primero (00) se emplea como registro de control y estado. Los 7 siguientes (01-07) se emplean como contadores para la función horaria. Las posiciones 08-0F son posiciones libres de RAM o pueden emplearse como registros para el control de la alarma. Mediante el registro de control se puede seleccionar el tipo de oscilador para la cuenta horaria (32.768Hz o 50Hz) o trabajar como contador de eventos externos. Trabajando en modo horario las centésimas de segundo, segundos, minutos, horas, días, mes, etc. se almacenan en

Trainer Plus EL PCF 8583

formato BCD. En el modo de contador de eventos externos los pulsos a contar se introducen por el pin OSCI. El contador de eventos almacena hasta 6 dígitos. La alarma se activa mediante el correspondiente bit del registro de control/estado (00). Los registros de control de la misma quedan activados, puede entonces programarse la hora, día, mes, etc. de la alarma. Cuando el dispositivo trabaja en modo horario el registro Timer (07) puede programarse para contar centésimas, segundos, minutos, horas o días. Cuando se produce una situación de alarma se activa el flag correspondiente en el registro de control. La salida INT pasa a “0”. Los flags se mantienen hasta que se borren mediante una operación de escritura. En caso de no emplearse la función de alarma, los registros 09-0F pueden usarse como posiciones de memoria RAM. 4.5.1 Registro de control/estado

Está localizado en la posición 00 y se puede leer y escribir. Todas las funciones y opciones del dispositivo PCF8583 se controlan mediante el contenido de este registro. Este se pone a 00 tras el rest del dispositivo. Ver la figura 4-3 Tanto en el modo de trabajo horario como de contador de eventos , los registros contadores se programan según se muestra en la figura 4-4. En el modo horario se puede seleccionar el formato de 12 o 24 h. activando el bit de más peso del registro contador de horas. El contenido de este registro se muestra en la figura 4-5. El año y el día se sitúan en la posición 05 según se muestra en la figura 4-6. El día de la semana y el mes se colocan en la posición 06 y su contenido se muestra en la figura 4-7. Activando el bit de máscara del registro de estado/control se lee directamente, desde estas posiciones, el día y el mes directamente, el día de la semana y el año se leen a 0. Trabajando en el modo contador, el número de eventos se almacena en formato BCD. D5 es el dígito más significativo.

4 - 3

Trainer Plus EL PCF 8583

4 - 4

Figura 4-3. Registro de estado/control

Trainer Plus EL PCF 8583

4 - 5

Figura 4-4. Mapa de registros del PCF8583

Figura 4-5. Registro de horas

Trainer Plus EL PCF 8583

4 - 6

Figura 4-6. Registro de días y año

Figura 4-7. Registro de mes y día de la semana

4.5.2 Evolución de los contadores

CONTADOR RANGO MES Centésimas de segundo 00-99 Segundos 00-59 Minutos 00-59 Horas (24h) 00-23 Horas (12h) 01AM - 11 AM Horas (12h) 01PM - 11 PM Días 01-31 1,3,5,7,8,10,12 Días 01-30 4,6,9,11 Días 01-29 2, año 0 Días 01-28 2, años 1,2,3 Meses 01-12 Año 0-3 Día de la semana 0-6 Timer 00-99

4.5.3 Registro de control de alarma

Cuando se pone a “1” el bit de activación de alarma en el registro de estado/control, se activa también el registro de control de la alarma (posición 08). Todas las funciones del temporizador,

Trainer Plus EL PCF 8583

alarma y salida de interrupción se controlan desde este registro tanto en el modo horario como en el modo contador de eventos. Ver las figuras 4-8 y 4-9.

Figura 4-8. Registro de control de alarmas en modo horario

4 - 7

Trainer Plus EL PCF 8583

4 - 8

Figura 4-9. Registro de control de alarmas en el modo contador

4.5.4 Registros de alarma

Están situados a partir de la dirección 08. La alarma se activa cuando el contenido de los registros de alarma coinciden con sus correspondientes contadores. El año y el día de la semana se ignoran en la alarma basada en la fecha. La alarma de tipo diaria ignora los bits de mes y día. Cuando se selecciona la alarma en base al día de la semana (alarma semanal), el contenido del registro de alarma del día de la semana/mes (0E) deberá indicar en qué día se producirá la misma. Ver la figura 4-10.

4.5.5 Salida de interrupción

La salida de interrupción INT en colector abierto es programada o no según el registro de control de alarmas. Esta salida se activa (a nivel “0”) cuando se activan el flag de alarma o el flag del timer.

Trainer Plus EL PCF 8583

4 - 9

Figura 4-10. Registro de alarma por día de la semana

4.5.6 Oscilador y Divisor

Entre las patillas OSCI y OSCO se puede conectar un cristal de cuarzo de 32.768 Hz. De esta frecuencia se obtiene otra de 100Hz que se envía a los diferentes contadores. Si se emplea una frecuencia de 50Hz o se trabaja en el modo contador de eventos, el oscilador interno se desconecta. El usuario puede aplicar por la patilla OSCI una señal patrón de 50Hz o los pulsos de los eventos a contar.

4.5.7 Inicialización

Cuando se conecta el dispositivo (power-up) el registro de estado/control así como los registros contadores se borran. El dispositivo se inicia en el modo oscilador a 32.768Hz en formato de 24h, a las 0 :00 :00 :00 h, día 1, mes 1, año 0 y día de la semana 0. 4.5.8 Protocolo I2C

Las figuras 4-11, 4-12 y 4-13 muestran el protocolo necesario para las operaciones de lectura y escritura del dispositivo.

Figura 4-11. Escritura del MASTER sobre el SLAVE

Trainer Plus EL PCF 8583

Figura 4-12. El MASTER lee tras escribir la dirección de acceso

Figura 4-13. El MASTER lee a partir de la posición actual

4.5.9 Nota de aplicación

En la figura 4-14 se muestra la conexión de dos dispositivos PCF8583 y un PCF8570 al mismo bus. Los tres tienen asignada la misma dirección interna (1010) por lo que a través de las líneas de direccionamiento hardware habrá que diferenciar uno de otro. Así, el primer PCF 8583 tiene A0 a nivel “0” mientras que el otro PCF 8583 la tiene a “1”. Por su parte el PCF 8570 tiene las tres líneas de direcionado A0, A1 y A2 a nivel “1”. El primero de los dos PCF 8583 trabaja en el modo horario con reloj de cristal a 32.768 mientras que el segundo trabaja como contador de eventos aplicados por OSC1.

4 - 10

Trainer Plus EL PCF 8583

4 - 11

Figura 4-14. Nota de aplicación

4.6 Ejemplo 4: El reloj en tiempo real

A modo de ejemplo de cómo manejar el dispositivo I2C PCF 8583 (reloj/calendario en tiempo real) del sistema µPIC Trainer Plus, se incluye en el disco de demostración un fichero con el programa CRONO.ASM. Este programa hace uso de los siguientes ficheros ya comentados anteriormente: P16CXX.INC Definición de registros de los dispositivos PIC de gama media. I2CLOW.ASM Conjunto de rutinas de manejo del bus I2C. LCD_CXX.ASM Conjunto de rutinas de manejo del módulo LCD

Trainer Plus EL PCF 8583

TECLADO.ASM Conjunto de rutinas de manejo del teclado El programa en cuestión, CRONOS.ASM, realiza las funciones de un cronómetro clásico. El dispositivo I2C PCF 8583 se encarga del control y medida del tiempo transcurrido. Sobre el módulo LCD se va visualizando las horas, minutos, segundos y centésimas en el siguiente formato: hh:mm:ss:cc Al comenzar la ejecución del programa se visualiza la hora actual del reloj. Hay que tener en cuenta que éste se alimenta desde una batería auxiliar y se mantiene en hora aún sin la alimentación general del sistema. La tecla 0 del teclado sirve para poner el cronómetro a 00:00:00:00 y comenzar la medición. Mediante la tecla A el reloj queda en el modo de “Lapsus”, la visualización queda detenida aunque el reloj sigue andando internamente. Una nueva pulsación de A permite visualizar nuevamente el tiempo transcurrido, de esta forma se puede medir el lapsus entre ambas pulsaciones. Para poner a prueba el programa, basta seguir los siguientes pasos:

1.- Ensamblar el programa fuente CRONO.ASM. Para ello utilizar el ensamblador MPASM en versión MSDOS o bien el MPASMWIN en versión Windows.

2.- Mediante µPIC Trainer grabar el 16c84 con el programa

ejecutable CRONO.HEX. 3.- Conectar, mediante el bus de expansión, µPIC Trainer con µPIC

Trainer Plus. Alimentar el sistema y comprobar su funcionamiento.

4 - 12

Trainer Plus EL SAA 1064

5 - 1

TEMA 5: EL SAA1064. CONTROLADOR DE DISPLAY 5.1 DESCRIPCIÓN GENERAL

Está especialmente diseñado para el control de hasta 4 displays 7 segmentos tipo led y con punto decimal , mediante el multiplexado de dos pares de dígitos. Con interface I2C, el circuito puede trabajar junto con otros tres conectados al mismo bus gracias a las cuatro direcciones posibles diferentes, seleccionadas por hardware.

5.2 CARACTERÍSTICAS

• Flag indicador del “Power On Reset” (POR). • 16 salidas con corriente de hasta 21 mA controladas por software. • 2 salidas multiplexadas para controlar segmentos de ánodo común. • Oscilador integrado. • Bits de control para seleccionar visualización estática, dinámica, apagado y de test. En la figura 5-1 se muestra el diagrama de bloques.

Figura 5-1. Diagrama por bloques del SAA1064

Trainer Plus EL SAA 1064

5 - 2

5.3 DIAGRAMA DE PINES

Es el mostrado en la figura 5-2.

Figura 5-2. Diagrama de pines

Nº Pin Señal Descripción 1 ADR Línea de direccionado por hardware 2 CEXT Condensador externo (modo dinámico)

3-10 P8-P1 Salidas a segmentos de los dígitos 1 y 2 11 MX1 Activación dígitos 1 y 3 12 VEE Negativo de alimentación 13 VCC Positivo de alimentación 14 MX2 Activación de dígitos 2 y 4

15-22 P9-P16 Salidas a segmentos de los dígitos 3 y 4 23 SDA Línea de datos del bus I2C 24 SCL Línea de reloj del bus I2C

5.4 DESCRIPCIÓN FUNCIONAL

En la figura 5-3 se representa el protocolo necesario para la lectura y escritura del dispositivo por parte del MASTER.

Trainer Plus EL SAA 1064

5 - 3

Figura 5-3. Protocolo de lectura y escritura

5.4.1 Pin ADR

Esta patilla se controla con ayuda de una tensión continua que, comparada con unos umbrales internos de referencia, define, mediante un pequeño convertidor A/D interno, el valor de los dos bits de dirección A0 y A1 tal y como se muestra en la siguiente tabla.

Tensión en ADR Bits A0 y A1 Dirección en lectura Dirección en escritura Vee 0 0 71h 70h

3/8 de Vcc 0 1 73h 72h 5/8 de Vcc 1 0 75h 74h

Vcc 1 1 77h 76h

5.4.2 Byte de estado

Unicamente el bit de más peso de este byte (Power On Reset) tiene significado. Un “1” indica que hubo fallo de alimentación desde la última vez que se leyó. Tras la lectura de este byte, el bit vuelve a quedar a “0”.

5.4.3 Byte de instrucción

Mediante los tres bits de menos peso de este byte (SC, SB y SA), se selecciona a partir de

qué registro se van a escribir secuencialmente los siguientes bytes (ver la siguiente tabla). Esta característica permite una rápida inicialización por parte del MASTER.

Trainer Plus EL SAA 1064

5 - 4

SC SB SA Registro 0 0 0 Control 0 0 1 Dígito 1 0 1 0 Dígito 2 0 1 1 Dígito 3 1 0 0 Dígito 4 1 0 1 Reservado 1 1 0 Reservado 1 1 1 Reservado

5.4.3 Bits de control

Están situados en el byte de control. Se emplean los 6 de menos peso de la forma siguiente : • C0=0 Modo estático. Visualización continua sobre los dígitos 1 y 2. No hay multiplexación. • C0=1 Modo dinámico. Se visualiza de forma multiplexada sobre los displays 1+3 y 2+4. • C1=0/1 Los dígitos 1+3 se apagan/no se apagan. • C2=0/1 Los dígitos 2+4 se apagan/no se apagan. • C3=1 Se activan todos los segmentos. Función test. • C4=1 Añade 3 mA a la corriente de salida de los segmentos. • C5=1 Añade 6 mA a la corriente de salida de los segmentos. • C6=1 Añade 12 mA a la corriente de salida de los segmentos.

5.4.4 Datos

Un segmento queda activado si el correspondiente bit está a “1”. Los bits de datos D17 a D10 corresponden al dígito 1, D27-D20 al dígito 2, D37-D30 al dígito 3 y D47-D40 al dígito 4. El bit de más peso MSB de estos datos se corresponden con las salidas P8 y P16, los de menos peso LSB con las salidas P1 y P9.

5.4.5 Power On Reset

Esta señal se genera internamente y pone todos los bits a “0”, resultando una visualización en blanco para los 4 dígitos. Unicamente se activa el flag PR del byte de estado.

5.4.6 Salidas a los segmentos

La corriente de las líneas de salida P1 y P16 se ajusta mediante los bits C4, C5 y C6 del byte de control. Se activan o no según los bits de datos almacenados para cada dígito.

5.4.7 Salidas multiplexadas

Las líneas de salida MX1 y MX2 se activan alternativamente en el modo dinámico con una frecuencia que se obtiene desde el oscilador. Ver la figura 5-4. En el modo estático únicamente se activa MX1 con lo que sólo se visualiza sobre 2 dígitos, figura 5-5. Estas salidas se conectan a un amplificador que irá activando a los displays por parejas.

Trainer Plus EL SAA 1064

5 - 5

Figura 5-4. Modo dinámico

Figura 5-5 Modo estático

Trainer Plus EL SAA 1064

5.5 Ejemplo 5: Controlador de displays

El fichero DISP.ASM incluido en el disco de demostración adjunto a µPIC Trainer Plus es un ejemplo de manejo del dispositivo I2C controlador de displays SAA 1064 objeto de este tema. El programa hace uso, mediante Include, de los siguientes ficheros analizados en temas anteriores: P16CXX.INC Definición de registros de los dispositivos PIC de gama media. I2CLOW.ASM Conjunto de rutinas de manejo del bus I2C. TECLADO.ASM Conjunto de rutinas de manejo del teclado. El programa en cuestión, DISP.ASM, visualiza sobre los cuatro displays de µPIC Trainer Plus el valor de la tecla pulsada. Sobre los displays se produce el efecto “scroll” de forma que la última pulsación se refleje sobre el dígito de menos peso D4, lo que había en D4 pasa a D3, de D3 pasa a D2 y de éste a D1. Lo que había en D1 se pierde. Para poner a prueba este programa de ejemplo, basta seguir los siguientes pasos:

1.- Ensamblar el programa fuente DISP.ASM. Para ello utilizar el ensamblador MPAS en versión MSDOS o bien el MPASMWIN para Windows.

2.- Mediante µPIC Trainer grabar el 16C84 con el programa ejecutable

DISP.HEX 3.- Conectar, mediante el bus de expansión, µPIC Trainer con µPIC

Trainer Plus. Alimentar el sistema y comprobar su funcionamiento.

5 - 6

Trainer Plus EL PCF 8591

TEMA 6: PCF 8591 CONVERTIDOR A/D Y D/A

6.1 DESCRIPCIÓN GENERAL

Se trata de un circuito con cuatro canales analógicos de entrada, uno de salida, interface con el bus I2C y tensión de alimentación única. Dispone de tres líneas de direccionamiento por hardware, A0-A2, que permite conectar 8 chips idénticos sobre el mismo bus.

6.2 CARACTERÍSTICAS

• Tensión de alimentación única de 2.5 a 6V • Bajo consumo. • Interface para el bus I2C. • Tres líneas de direccionado por hardware. • Cuatro entradas analógicas programables como entradas individuales o diferenciales. • Una salida analógica. • El rango de la tensión analógica va desde 0V hasta Vdd. En la figura 6-1 se muestra el esquema por bloques del circuito.

Figura 6-1. Diagrama por bloques del PCF8591

6 - 1

Trainer Plus EL PCF 8591

6.3 DIAGRAMA DE PINES

Es el mostrado en la figura 6-2

Figura 6-2. Diagrama de pines

Nº Pin Señal Descripción 1-4 AIN0-AIN4 Entradas analógicas para el ADC 5-7 A0-A2 Líneas de direccionado por hardware 8 Vss Negativo de alimentación 9 SDA Línea de datos del bus I2C 10 SCL Línea de reloj del bus I2C 11 OSC E/S del oscilador 12 EXT Selección de oscilador :”0” interno ; “1” externo 13 AGND Tierra de la señal analógica 14 Vref Entrada de tensión de referencia 15 Aout Salida analógica del DAC 16 Vdd Positivo de alimentación

6.4 DESCRIPCIÓN FUNCIONAL

6.4.1 Direccionado

El dispositivo se activa cuando, a través del bus I2C, se le envía el byte de direccionamiento con la dirección válida. Dicha dirección consta de una parte fija y otra programable. La parte programable se establece mediante los pines A0-A2, poniéndolos al nivel lógico deseado. El byte de dirección se envía siempre tras la condición de inicio y, su último bit, indica si se realizará una operación de lectura o escritura. Ver la figura 6-3.

Figura 6-3. El byte de dirección

6 - 2

Trainer Plus EL PCF 8591

6.4.2 El byte de control

El 2º byte enviado al dispositivo se guarda en el registro de control del mismo y realiza diferentes funciones de control. Los cuatro bits de más peso se usan para activar la salida analógica y programar las entradas analógicas. Los cuatro bits de menos peso seleccionan uno de los cuatro canales analógicos de entrada y si el número de canal se autoincrementará al final de cada conversión. Durante el RESET del dispositivo, producido al conectar la tensión de alimentación (POR), todos los bits de este registro, mostrado en la figura 6-4, se ponen a “0”. La salida analógica queda en alta impedancia.

Figura 6-4. El registro de control

6.4.3 Conversión D/A

El tercer byte enviado al dispositivo por el MASTER se almacena en el circuito convertidor A/D y se convierte a su tensión analógica correspondiente. El convertidor consta de un divisor de tensión resistivo de 256 elementos al que se aplica una tensión externa de referencia. Un

6 - 3

Trainer Plus EL PCF 8591

decodificador selecciona uno de esos elementos en función del código binario, obteniéndose así una tensión analógica equivalente. Ver la figura 6-5

Figura 6-5. El convertidor D/A

Dicha tensión se aplica a un amplificador de ganancia que puede activarse o no según el bit 6 del byte de control y, finalmente, se obtiene por el pin Aout en el exterior. Esta tensión de salida se mantiene estable hasta una próxima conversión. El convertidor D/A se emplea también durante la conversión A/D mediante aproximaciones sucesivas. La tensión de salida presente en Aout se obtiene según la fórmula y gráfico mostrado en la figura 6-6.

6 - 4

Trainer Plus EL PCF 8591

6 - 5

Figura 6-6. Gráfico de conversión D/A

En la figura 6-7 se muestra la secuencia de conversión necesaria.

Figura 6-7. Secuencia de conversión D/A

6.4.4 Conversión A/D

El convertidor A/D emplea la técnica de conversión por aproximaciones sucesivas. El convertidor D/A así como el comparador de alta ganancia se emplean durante un ciclo de conversión. Este se inicia siempre poniendo la dirección del dispositivo y el bit de lectura. Tras recibirse el bit ACK enviado por el SLAVE este envía el byte de la conversión previa al tiempo que se toma una muestra del canal seleccionado para una nueva conversión. Finalizada esta se obtiene el código binario de 8 bits y se deposita en el registro ADC para su posterior envío. Esta secuencia se muestra en la figura 6-8.

Trainer Plus EL PCF 8591

6 - 6

Figura 6-8. Secuencia de conversión A/D

En caso de emplear entradas diferenciales el resultado se presenta en complemento a 2 y se transmite. Si esta activado el bit 2 del registro de control (autoincremento) se selecciona el siguiente canal automáticamente. El primer byte que transmite el dispositivo durante un ciclo de lectura contiene el resultado de la conversión previa. Tras la condición POR el primer byte leído corresponde al valor 80h. En la figura 6-9 se muestra las gráficas correspondientes a la conversión A/D de entradas independientes así como de entradas diferenciales.

6.4.5 Oscilador

El oscilador integrado sobre el propio chip genera la señal de reloj necesaria para la conversión A/D. Cuando se emplea este oscilador la patilla EXT debe conectarse a Vss. La frecuencia interna está disponible en el exterior a través del pin OSC. Si la patilla EXT se conecta a Vdd, la salida OSC del oscilador queda en alta impedancia, permitiendo al usuario emplear un reloj externo que se aplica por la patilla OSC que actuará como entrada.

Trainer Plus EL PCF 8591

6 - 7

Figura 6-9. Gráficas de conversión A/D para entradas independientes y diferenciales

6.4.6 Nota de Aplicación

En la figura 6-10 se presenta, a modo de ejemplo, una nota de aplicación en la que se puede apreciar dos dispositivos PCF8591 conectados al mismo bus. En el primero de ellos los canales AIN0 y AIN1 se emplean como entradas analógicas independientes y los canales AIN2 y AIN3 como entradas diferenciales. Las líneas de dirección hardware A2, A1 y A0 están a 0 0 0 respectivamente.

Trainer Plus EL PCF 8591

En el segundo de los dispositivos sólo se emplean los canales AIN0 y AIN1 como entradas analógicas independientes. Las líneas de dirección hardware A2, A1 y A0 están a 0 0 1 respectivamente.

Figura 6-10. Nota de aplicación

6.5 Ejemplo 6: El convertidor DAC

Con el nombre DAC.ASM se incluye en el disco de demostración el fichero correspondiente al programa fuente de un ejemplo de aplicación del dispositivo I2C PCF 8591, que contiene un convertidor digital/analógico (DAC) de 8 bits y un analógico/digital (ADC) con cuatro canales de entrada. El programa DAC.ASM hace uso del convertidor DAC y emplea, mediante Include, de los siguientes ficheros vistos anteriormente: P16CXX.INC Definición de registros de los dispositivos PIC de gama media

6 - 8

Trainer Plus EL PCF 8591

I2CLOW.ASM Conjunto de rutinas de manejo del bus I2C. TECLADO.ASM Conjunto de rutinas para el manejo del teclado y conversión El programa explora el teclado. Cada vez que se teclea un octeto en hexadecimal (2 dígitos), se envía vía I2C al dispositivo PCF 8574 que lo representa en los leds conectados a sus 8 líneas de salida. Posteriormente el mismo octeto es enviado al dispositivo PCF8591 para obtener una tensión analógica proporcional al valor de dicho octeto. La tensión analógica está comprendida entre 0V (00000000 en binario) y 5 V (11111111 en binario). Para poner a prueba este ejemplo basta seguir los siguientes pasos:

1.- Ensamblar el programa fuente DAC.ASM. Para ello utilizar el ensamblador MPASM en versión MSDOS o bien el MPASMWIN para Windows.

2.- Mediante µPIC Trainer grabar el 16C84 con el programa ejecutable

DAC.HEX. 3.- Conectar, mediante el bus de expansión, µPIC Trainer con µPIC

Trainer Plus. 4.- Mediante cable conectar entre sí las bornas GND con AGND y VCC

con VREF de µPIC Trainer Plus. De esta forma la tensión de referencia empleada por el DAC es la misma que la de alimentación del sistema.

5.- Colocar un voltímetro entre GND y AOUT. 6.- Alimentar todo el sistema y comprobar que al teclear un octeto (2

dígitos), su valor binario queda representado en los leds de µPIC Trainer Plus y que el voltímetro indica la tensión analógica equivalente.

6.6 Ejemplo 7: El convertidor ADC

Con el nombre ADC.ASM se incluye en el disco de demostración el fichero correspondiente al programa fuente de un ejemplo de aplicación del dispositivo I2C PCF 8591, que contiene un convertidor digital/analógico (DAC) de 8 bits y un analógico/digital (ADC) con cuatro canales de entrada. El programa ADC.ASM hace uso del convertidor DAC y emplea, mediante Include, de los siguientes ficheros vistos anteriormente: P16CXX.INC Definición de registros de los dispositivos PIC de gama media I2CLOW.ASM Conjunto de rutinas de manejo del bus I2C. TECLADO.ASM Conjunto de rutinas para el manejo del teclado y conversión El programa realiza la conversión de la tensión analógica presente en el canal 0 del convertidor ADC (borna AN0 de µPIC Trainer Plus). El resultado de la conversión se pasa a BCD para

6 - 9

Trainer Plus EL PCF 8591

su posterior representación sobre los displays 7 segmentos de µPIC Trainer Plus controlados mediante el dispositivo I2C SAA 1064. Para poner a prueba este ejemplo basta seguir los siguientes pasos:

1.- Ensamblar el programa fuente ADC.ASM. Para ello utilizar el ensamblador MPASM en versión MSDOS o bien el MPASMWIN para Windows.

2.- Mediante µPIC Trainer grabar el 16C84 con el programa ejecutable

ADC.HEX. 3.- Conectar, mediante el bus de expansión, µPIC Trainer con µPIC

Trainer Plus. 4.- Mediante cable conectar entre sí las bornas GND con AGND y VCC

con VREF de µPIC Trainer Plus. De esta forma la tensión de referencia empleada por el ADC es la misma que la de alimentación del sistema.

5.- Colocar un potenciómetro que genere la tensión analógica a medir.

Los extremos del mismo se conectaran a VCC y GND y el cursor a la borna de entrada AN0.

6.- Alimentar todo el sistema y comprobar que moviendo el eje del

potenciómetro se consigue visualiza sobre los displays el valor binario equivalente a la tensión analógica de entrada. Si la tensión de entrada es GND (potenciómetro en un extremo) se visualizará 0000, si la de entrada es VCC (potenciómetro en extremo opuesto) se visualizará 0255.

6 - 10

Trainer Plus EL PCF 8574A

7 - 1

TEMA 7:El PCF 8574A, E/S DIGITALES

7.1 DESCRIPCIÓN GENERAL

Se trata de un dispositivo diseñado para interface con el bus I2C que proporciona una ampliación de 8 líneas de E/S digitales y que se puede emplear en cualquier sistema microcontrolador dotado del hardware y/o software necesario para el protocolo I2C. El PCF 8574A es un dispositivo CMOS de bajo consumo que incluye salidas “latcheadas” con amplificadores de alta corriente para activar directamente cargas tipo LED. Es capaz de provocar interrupción al sistema cuando se produce un evento sobre sus líneas de entrada. Actúa como dispositivo SLAVE del bus. 7.2 CARACTERÍSTICAS

• Tensión de alimentación de 2.5 a 6V • Bajo consumo, en standby 10µA máximo. • 8 líneas bidireccionales de entrada o salidas digital. • Salida de interrupción en colector abierto. • 3 líneas de direccionamiento por hardware que permite conectar hasta 8 dispositivos iguales en el

mismo bus. En la figura 7-1 se muestra el esquema por bloques del dispositivo.

Figura 7-1. Esquema por bloques del PCF 8574A

Trainer Plus EL PCF 8574A

7 - 2

7.3 DIAGRAMA DE PINES

Es el mostrado en la figura 7-2

Figura 7-2. Diagrama de pines

Nº Pin Señal Descripción 1-3 A0-A2 Líneas de direccionamiento por hardware 4-7 P0-P3 4 líneas bidireccionales de E/S 8 Vss Negativo de alimentación

9-12 P4-P7 4 líneas bidireccionales de E/S 13 INT Salida de interrupción 14 SCL Entrada de reloj del bus I2C 15 SDA E/S de dato del bus I2C 16 Vdd Positivo de alimentación

7.4 DESCRIPCION FUNCIONAL

7.4.1 Direccionamiento

La parte fija de la dirección es la combinación binaria 0111 para el modelo 8574A, la parte programable la determina el nivel lógico de las señales A0-A2 que las define el usuario a voluntad. Ver la figura 7-3.

Figura 7-3. El byte de control

Cada línea de la puerta de E/S puede usarse como entrada o salida independientemente. Los datos de entrada se transfieren desde la puerta hasta el MASTER en modo de lectura. En modo de escritura se transfieren desde el MASTER hasta la puerta según se muestra en la figura 7-4.

Trainer Plus EL PCF 8574A

7 - 3

Figura 7-4. Ciclos de lectura/escritura

7.4.2 Interrupción

El circuito PCF 8574A genera una señal de interrupción (INT) que puede usarse como entrada de interrupción al sistema microcomputador. Al ser una señal de colector abierto es posible disponer de varios dispositivos conectados a la misma línea tal y como se muestra en la figura 7-5.

Figura 7-5. Conexión de la línea de interrupción

La interrupción se provoca cuando cualquier línea de entrada cambia de estado. En el caso de existir varios dispositivos, el software debe determinar en cual de ellos se produjo dicho cambio. La desactivación de la interrupción se produce por cualquiera de estas condiciones : • En modo de lectura, en el bit ACK, con el flanco ascendente de SCL.

Trainer Plus EL PCF 8574A

• En el modo de escritura, en el bit ACK, con el flanco descendente de SCL. En la figura 7-6 se muestra la activación de INT con el cambio de estado de la línea P5, tras un cierto tiempo (tiv). Se desactiva con la orden de leer la puerta tras un cierto retraso (tir).

Figura 7-6. Activación /desactivación de la interrupción

7.4.3 La puerta de E/S

Se trata de una puerta bidireccional cuyas líneas se pueden usar como entradas o salidas sin el empleo de señales adicionales de control. Al conectar la alimentación todas las líneas quedan a nivel lógico “1”. Se pueden poner a “1” o a “0” al escribir sobre el dispositivo según se muestra en la figura 7-7.

Figura 7-7. Escritura sobre la puerta

7 - 4

Trainer Plus EL PCF 8574A

7.4.4 Características

PARÁMETRO SÍMBOLO MÍNIMO MÁXIMO UNIDAD Tensión de alimentación Vdd -0.5 +7 V Rango de niveles de entrada Vi Vss-0.5 Vdd+0.5 V Corriente de entrada Ii 20 mA Corriente de salida Io 25 mA Consumo IDD 100 mA Disipación de potencia Ptot 400 mW Potencia por salida Po 100 mW

7.5 Ejemplo 8: E/S parelelo

Con el nombre ES.ASM se incluye en el disco de demostración el fichero correspondiente al programa fuente de un ejemplo de aplicación del dispositivo I2C PCF 8574, puerto de E/S paralela de 8 bits. El programa hace uso, mediante Include, de los siguientes ficheros vistos en temas anteriores: P16CXX.INC Definición de registros de los dispositivos PIC de gama media. I2CLOW.ASM Conjunto de rutinas de manejo del bus I2C TECLADO.ASM Conjunto de rutinas de manejo del teclado. El programa explora el teclado. Cada vez que se teclee un octeto en hexadecimal (2 dígitos), se envía vía I2C al dispositivo PCF 8574 que a su vez lo saca por sus 8 líneas de salida. Estas se visualizan sobre los 8 leds que, en µPIC Trainer Plus, pilotan el estado lógico de las mismas. Para poner a prueba este programa de ejemplo, basta seguir los siguientes pasos:

1.- Ensamblar el programa fuente ES.ASM. Para ello utilizar el ensamblador MPASM en versión MSDOS o bien el MPASMWIN para Windows.

2.- Mediante µPIC Trainer grabar el 16C84 con el programa ejecutable

ES.HEX. 3.- Conectar, mediante el bus de expansión, µPIC Trainer con µPIC

Trainer Plus. Alimentar el sistema y comprobar su funcionamiento.

7 - 5

Trainer Plus APENDICES

AP - 1

AP.1 EL SOFTWARE

Con el sistema µPIC Trainer Plus, Microsystems Engineering suministra un disco que contiene todos los programas fuentes empleados en los diferentes ejemplos y demostraciones. Los programas están diseñados exclusivamente con fines didácticos y se ha procurado que sean lo más claros posibles sin entrar en grandes complicaciones ni emplear depuradas técnicas de programación. Todo ello con objeto de facilitar al usuario de µPIC Trainer Plus las herramientas y conocimientos básicos para emplear los diferentes elementos de los que consta. Microsystems Engineering NO se hace responsable del uso que se pueda hacer de dichos programas aparte de los ya mencionados. Igualmente Microsystems Engineering se reserva el derecho de modificarlos y/o ampliarlos sin previo aviso. Los ficheros contenidos en el disco son los que se detallan a continuación: P16CXX.INC Se trata de un fichero proporcionado por Microchip que contiene la definición de

todos los registros de los diferentes dispositivos PIC de la gama media. Aunque el usuario puede hacer sus propias definiciones en sus fuentes, los ejemplos que aquí se exponen emplean las contenidas en este fichero. La directiva Include del ensamblador permite incluirlo en cualquier programa fuente.

LCD_CXX.ASM Contiene una serie de sencillas rutinas que permiten controlar el módulo LCD del

sistema de desarrollo µPIC Trainer Plus. Estas rutinas estaban explicadas en el manual de usuario del mismo. Algunos de los ejemplos expuestos en este manual hacen uso del LCD. Los programas fuentes de los mismos incluyen, mediante la directiva Include, este fichero. Las rutinas que contiene son:

UP_LCD: Configura los puertos A y B para el control del LCD. LCD_INI: Ejecuta la secuencia de inicialización del módulo LCD según las

especificaciones del fabricante. LCD_DATO: Envía el carácter ASCII contenido en el registro W al módulo LCD.

La rutina se encarga de verificar que el módulo no esté ocupado así como de generar las señales R/W, RS y E del mismo.

LCD_REG: Envía el código presente en W al módulo LCD. Este código es uno

de los diferentes códigos de control con los que se pueden conseguir diferentes efectos de visualización sobre el LCD. La rutina se encarga de verificar el estado interno del módulo así como de generar las señales R/D, RS y E.

TECLADO.ASM Este fichero contiene una serie de rutinas que permiten controlar el teclado de

µPIC Trainer Plus y de realizar diferentes tipos de conversiones. Se debe incluir mediante Include en aquellas aplicaciones que hagan uso del teclado.

Key_Scan: Explora el teclado. Devuelve en la variable “Tecla” el código de la

tecla pulsada o bien el código 0x80 en caso de que no hubiera habido ninguna pulsada.

Key_BCD: Convierte el código de tecla presente en la variable “Tecla” en su

correspondiente código BCD ( de 0 a F). El resultado de la conversión se devuelve en la misma variable “Tecla”.

Trainer Plus APENDICES

BCD_7seg: Convierte el código BCD presente en el registro W en su

correspondiente 7 segmentos. El resultado de la conversión se devuelve en el mismo registro W.

RS232LOW.ASM Este fichero contiene una serie de rutinas que permiten implementar, vía

software, una comunicación RS232. Se debe incluir mediante la directiva Include en aquellas aplicaciones que requieran este tipo de comunicación. Estas rutinas hacen uso de una serie de variables que deben estar cargadas desde el programa fuente que las emplee. Con estas variables se establecen los baudios, nº de bits por carácter, nº de bits de stop, etc..

RxD: Rutina de recepción de un carácter. Espera a recibir un carácter y lo

deposita en la variable “Rxdreg”. TxD: Rutina de transmisión. Transmite el carácter presente en la variable

“Txdreg”. I2CLOW.ASM Este fichero contiene una serie de rutinas que permiten que un PIC de gama

media gestione, mediante software, un bus I2C en el modo MASTER. Se debe incluir mediante Include en aquellas aplicaciones que necesiten este protocolo I2C. Con estas rutinas es posible controlar los 4 dispositivos I2C de que consta el sistema µPIC Trainer Plus: SAA1064 (controlador de display), PCF8583 (reloj/calendario), PCF8574 (E/S paralelo) y PCF8591 (ADC/DAC).

Inicia_Bus: Configura las líneas RB6 y RB7 como líneas SDA y SCL del bus I2C,

dejándolas en alta impedancia que es el estado del bus en reposo. Txt_Start_Bit: Transmite la secuencia de inicio según el protocolo I2C. Txt_Stop_Bit: Transmite la secuencia de stop según el protocolo I2C. Txt_Abort: Cancela la comunicación y envía la secuencia de stop. Txt_Byte: Transmite el byte previamente almacenado en la variable “DataByte”,

al tiempo que se van generando los pulsos de reloj. RcvByte: Espera a recibir un byte y lo almacena en la variable “DataByte”. Si el

bit _Ultimo_Byte de la variable “Bus_Control” está a “1” se considera que es el último byte a recibir y se genera por tanto el bit NACK. En caso contrario se genera ACK.

TECLA.ASM Se trata de un ejemplo de demostración de manejo del teclado. El programa

explora el teclado del sistema µPIC Trainer Plus y visualiza sobre el LCD el código hexadecimal de la tecla pulsada. Este ejemplo se trata en el apartado 1.3.1.1 del tema 1 de este manual.

COM.ASM Se trata de un ejemplo de demostración de funcionamiento del canal serie

RS232 de µPIC Trainer Plus. El programa recibe desde un terminal un carácter, este se reenvía y se visualiza sobre el módulo LCD. Cuando se en recibe RETURN o bien 32 caracteres, el LCD se borra y se repite el proceso. El ejemplo se trató en el apartado 1.3.2.1.

CRONO.ASM Este ejemplo hace uso del reloj/calendario en tiempo real PCF8583. El programa

realiza las funciones de un cronómetro y visualiza sobre el LCD las horas, minutos, segundos y centésimas (hh:mm:ss:cc). Al ejecutarlo se presenta la hora actual contenida en el PCF8583 alimentado con batería. Mediante la tecla 0 del teclado, el cronómetro se pone a 00:00:00:00 y comienza la cuenta. Con la tecla

AP - 2

Trainer Plus APENDICES

A se detiene el conteo hasta una nueva pulsación de A. De esta forma se mide el lapsus de tiempo transcurrido entre ambas pulsaciones. Ver apartado 4.6

DISP.ASM Es un ejemplo de demostración del dispositivo I2C SAA1064, el controlador de

displays. El programa explora el teclado de µPIC Trainer Plus y va visualizando sobre los displays el valor de la tecla pulsada. Ver apartado 5.5.

DAC.ASM Este ejemplo es una aplicación del convertidor digital/analógico del dispositivo

I2C PCF 8591. Mediante el teclado se introduce un octeto en hexadecimal. Este octeto se aplica al DAC que lo convierte en una tensión analógica entre 0 y 5V disponible en la borna AOUT de µPIC Trainer Plus para ser medida y/o utilizada. Ver apartado 6.5.

ADC.ASM Es un ejemplo de manejo del ADC incluido en el dispositivo I2C PCF8591. Por la

borna AN0 de µPIC Trainer Plus se aplica una tensión analógica entre 0 y 5V el programa lee el resultado binario de la conversión, lo pasa a BCD y a continuación lo visualiza sobre los displays. Ver apartado 6.6

ES.ASM Es un ejemplo de demostración del dispositivo I2C PCF8574. Este consta de una

puerta de E/S de 8 bits. El programa lee el teclado. Cuando se teclea un octeto hexadecimal, este se saca por la puerta de salida del dispositivo I2C. Los leds de µPIC Trainer Plus que pilotan el estado lógico de esas líneas reflejan el valor tecleado. Ver el apartado 7.5

AP.2 BIBLIOGRAFÍA

1.- “Microcontroladores PIC. Diseño Práctico de Aplicaciones” Angulo J.Mª. y Angulo Ignacio. McGrawHill 1997 2.- “Microcontroladores PIC. La solución en un chip” Angulo J.Mª., Martín E. Y Angulo I. ITP Paraninfo, 1997 3.- Microchip Website: http://www.microchip.com 4.- Manuales de usuario de Micro’PIC Trainer y de las tarjetas de prototipo PIC18,28-40 ME. Microsystems Engineering. Gral. Concha 39-8º Bilbao 48012 5.- “Presentador de mensajes en LCD gobernado por microcontrolador PIC” Angulo J.Mª, Etxebarria M. y Angulo I. RADIORAMA Noviembre de 1997 6.- “Micro’PIC Trainer” Angulo J.Mª y Angulo I. Revista Española de Electrónica Septiembre 1997 7.- “Diseños con PIC: Reloj digital en tarjeta de prototipos” Angulo J.M. y Angulo I. RADIORAMA Diciembre de 1997 8.- “I2C-Bus Compatible ICs” IC12a PHILIPS 1989 9.- “I2C-Bus Compatible ICs” IC12b PHILIPS 1989

AP - 3