ProgMicroControladores_clase3

39
Programación de micro- controladores INTRODUCCION AL C8051F020 Clase 3 Huber Paúl Gilt López M. Sc. Ing. Electrónico

Transcript of ProgMicroControladores_clase3

Page 1: ProgMicroControladores_clase3

Programación de micro-controladores

INTRODUCCION AL C8051F020Clase 3

Huber Paúl Gilt López M. Sc. Ing. Electrónico

Page 2: ProgMicroControladores_clase3

INTRODUCCION Es una introducción hacia los perifericos del

microcontrolador Silabs C8051F020 Perifericos como ADC y DAC, y otras

caracteristicas como el bus crossbar y generador del voltaje de referencia

Usar lenguaje C no se ve algunas de las funciones internas es beneficioso tener conocimiento de la organización de la memoria y de los registros de funciones especiales

Page 3: ProgMicroControladores_clase3

CIP-51 Los chips SiLab de sistemas de señales

mixtas utilizan como nucleo el CIP-51 El CIP-51 implementa un estandar para la

organización del 8051 y para personalizar sus perifericos

El CIP-51 utiliza la arquitectura pipelined (incrementa el rendimiento) y es completamente compatible con el conjunto de instrucciones del MCS-51

Con el 8051, todas las instrucciones excepto para MUL y DIV toman 12 o 24 ciclos del reloj del sistema para su ejecución

Page 4: ProgMicroControladores_clase3

CIP-51 Con el 8051, el máximo de reloj del sistema es

de 12MHz El contraste el nucleo CIP-51 ejecuta el 70% de

las instrucciones en uno o dos ciclos de reloj Con el CIP-51 el máximo reloj del sistema es de

25MHz Su pico de rendimiento es de 25 millones de

instruccion por segundo MIPS

Page 5: ProgMicroControladores_clase3

Diagrama de bloques del CIP-51

Page 6: ProgMicroControladores_clase3

INTRODUCCIÓN SISTEMA C8051F20

100 pinTQFP

package

Page 7: ProgMicroControladores_clase3

INTRODUCCIÓN SISTEMA C8051F20

Page 8: ProgMicroControladores_clase3

Organización de la memoriaEn el 8051, hay dos espacios de memoria: la

memoria del programa y la memoria de datos

En el CIP-51, la memoria del programa y la memoria de datos comparten el mismo espacio de memoria pero son accedidos vía diferentes tipos de instrucciones

Page 9: ProgMicroControladores_clase3

Organización de la memoria

Page 10: ProgMicroControladores_clase3

Memoria del programa En C8051F020, contiene 65536 bytes de

FLASH de los cuales 512 (desde 0xFE00 hasta 0xFFFF) son reservados para el uso de fabrica

Hay también 128 bytes desde 0x10000 hasta 0x1007F (memoria scratchpad), el cual es útil como una tabla pequeña para las constantes del programa

Page 11: ProgMicroControladores_clase3

Memoria de datosLa memoria del C8051F020 tiene espacios de

direcciones internas y externas

La memoria interna RAM de datos es 256 bytes

Los registros de funciones especiales SFRs son accedidos por el modo de direccionamiento directo. Desde 0x80 hasta 0xFF (128 bytes)

La RAM de propósito general usa direccionamiento indirecto

Los primeros 32 bytes de la memoria de datos tiene 4 bancos de 8 registros y los siguientes 16 bytes son direccionables a nivel de bit y byte

Page 12: ProgMicroControladores_clase3

Memoria de datosLa memoria externa tiene un tamaño de 64K

bytes de espacios de direcciones incluido un bloque de 4K bytes de memoria RAM

Una interface de memoria externa EMIF es usada para acceder a la memoria externa

La EMIF es usada para programada usando los SRFs: EMI0CN y EMI0CF

Page 13: ProgMicroControladores_clase3

Pila - StackLa pila del programador puede ser localizada

en cualquier ubicación de los 256 bytes de la memoria interna de datos

El reinicio inicializa el puntero del la pila (SP) hacia 0x07, luego el primer valor es puesto en la pila es colocado en la dirección 0x08, el cual es el primer registro R0 del banco 1

Aunque mas de un banco de registro es usado, la pila debería inicializar en una localización en de memoria no usada para guardar los datos

La pila puede extenderse hasta 256 bytes

Page 14: ProgMicroControladores_clase3

Registro de funciones especiales

Page 15: ProgMicroControladores_clase3

Registro de funciones especialesLos registos SFRs proveen control y

intercambio de datos con los recursos del C8051F020 y perifericos

Los registros SRFs pueden ser accedidos con direccionamiento directo y usados para acceder a las localizaciones de memoria desde 0x80 hacia 0xFF

Los registros con direcciones terminadas en 0x0 ó 0x8 (Por ejemplo: P0, TCON, P1, SCON, IE, etc.) son direccionables a nivel de bit

Algunas ocupaciones de los SRFs están reservadas para un futuro uso

Page 16: ProgMicroControladores_clase3

Puertos de I/O y el CrossbarEl estándar del 8051 son los puertos 0, 1, 2 y

3; ahora en C8051F020, trae 4 puertos adicionales (4, 5, 6 y 7) para un total de 64 puertos de I/O

Todos lo pines tiene una tolerancia de 5v, y soportan modos de configuraciones Push-Pull, Open-Drain y weak pull-ups.

Adicionalmente el puerto 1 puede ser usado como entradas analógicas para el ADC1

Page 17: ProgMicroControladores_clase3

Puertos de I/O y el Crossbar

Page 18: ProgMicroControladores_clase3

Puertos de I/O y el CrossbarLos cuatro puertos bajos (P0-P3) pueden ser

usados como pines de propósito general (GPIO) pueden ser asignadas como entradas salidas digitales para perifericos programadas por el Crossbar

Los puertos bajos (P0-P3) son direccionados a nivel de bit y byte. Los cuatros puertos altos (P4-P7) son direccionados a nivel de byte

Page 19: ProgMicroControladores_clase3

Puertos de I/O y el Crossbar

Page 20: ProgMicroControladores_clase3

Puertos de I/O y el CrossbarEl Crossbar es esencialmente una red de

switch digital que permite el mapedo de los periféricos interno hacia los pines del puerto 0 al 5

Los registros de control crossbar son XBR0, XBR1 y XBRO2

Configuran contadores/temporizadores, buses seriales, interrupciones de HW, Entrada del inicio de la conversión ADC, salidas del comparador y otras señales digitales que pueden ser controladas para aparecer en los pines de entrada salida I/O

Page 21: ProgMicroControladores_clase3

Puertos de I/O y el CrossbarLos periféricos digitales son asignados pines

de puertos en orden de prioridad, empezando con P0.0 y continuando a hasta P3.7

Por ejemplo Si es necesario que el UART0 tenga la prioridad más alta y CNVSTR tenga la prioridad mas baja

Page 22: ProgMicroControladores_clase3

Convertidor analogico a digital de 12-bitEl C8051F020 tiene un registro de

aproximación sucesiva (SAR) de 12 bits que se usa para convertir la señal analógica a digital

Tiene 9 canales de entrada y un amplificador de ganancia programable. Un voltaje de referencia es requerido para ADC0 para operar y es seleccionado entre la salida DAC0 y el pin externo VREF

Un canal interno conectado al sensor de temperatura

Cada par de puertos puede funcionar como una sola entrada o entrada diferencias

Page 23: ProgMicroControladores_clase3

Convertidor analogico a digital de 12-bit

Page 24: ProgMicroControladores_clase3

Convertidor analogico a digital de 12-bitEl amplificador de ganancia programable sigue

al multiplexor analogico

La ganacia puede ser configurada desde 0.5 a 16 en potencias de dos

La conversión puede empezar en cuatro formas

1.Comando de software

2.Desbordamiento del temporizador 2

3.Desbordamiento del temporizador 3

4.Señal de entrada externa (CNVSTR)

Page 25: ProgMicroControladores_clase3

Convertidor analogico a digital de 12-bitLa conversión completa es indicada por medio

del bit de estado y de interrupción habilitada

El resultado de la conversión es guarda en dos registros SFR los datos pueden ser justificados a la izquierda o a la derecha de 12 bits

La ventana del registro de comparación puede configurase de tal forma que el control del la conversión se produzca si esta dentro o fuera de un rango.

El ADC puede estar monitorizando este valor continuamente si esta en el rango para empezar la conversión

Page 26: ProgMicroControladores_clase3

Convertidor analogico a digital de 8-bitEl C8051F020 tiene un registro de

aproximación sucesiva (SAR) de 8 bits que se usa para convertir la señal analógica a digital

Ocho bits son disponibles para la medida

El ADC es configurable via SFR y el voltaje de referencia del ADC1 es seleccionado entre el la tensión de alimentación AV+ y un pin externo VREF

El amplificador de ganancia programable sigue al multiplexor analógico y la ganancia puede ser configurada desde 0.5,1, 2 ó 4.

Page 27: ProgMicroControladores_clase3

Convertidor analogico a digital de 8-bit

Page 28: ProgMicroControladores_clase3

Comparador y convertidor digital a analogico

El C8051F020 tiene dos registros de 12 bits convertidor de digital a analogico DAC0 y DAC1

Hay también dos comparadores analógicos CP0 Y CP1

El voltaje de referencia es dado mediante la entrada del pin VREFD

La salida del DAC se actualiza cada vez que el sofware escribe (DACxH) o cuando hay un desbordamiento del temporizador 2, 3, o 4

Page 29: ProgMicroControladores_clase3

Comparador y convertidor digital a analogico

El DACs son especialmente utiles como referencia para la comparación o offset para la entrada diferencial de un ADC.

Los comparadores tienen un software programable hysteresis y pueden generar interrupciones en su flanco de subida, bajada y ambos.

El estado de salida de los comparadores puede ser llenado por software y programado para aparecer sobre los pines de puertos bajos de I/O via el crossbar.

Page 30: ProgMicroControladores_clase3

Comparador y convertidor digital a analogico

El DACs son especialmente utiles como referencia para la comparación o offset para la entrada diferencial de un ADC.

Los comparadores tienen un software programable hysteresis y pueden generar interrupciones en su flanco de subida, bajada y ambos.

El estado de salida de los comparadores puede ser llenado por software y programado para aparecer sobre los pines de puertos bajos de I/O via el crossbar.

Page 31: ProgMicroControladores_clase3

Voltaje de referencia

Page 32: ProgMicroControladores_clase3

Voltaje de referenciaEl voltaje de referencia tiene que ser usado

cuando operamos con el ADC y DAC

En el C8051F020 hay tres pines entradas de voltaje de referencia para el ADC y dos para el voltaje de referencia del DAC

El voltaje de referencia del ADC0 puede ser referenciado por con el DAC0 como el voltaje de referencia del chip

El voltaje de referencia del ADC1 puede ser referenciado por el voltaje de alimentación (AV+) via el VREF multiplexado

Page 33: ProgMicroControladores_clase3

Voltaje de referenciaEl voltaje de referencia tiene que ser usado

cuando operamos con el ADC y DAC

En el C8051F020 hay tres pines entradas de voltaje de referencia para el ADC y dos para el voltaje de referencia del DAC

El voltaje de referencia del ADC0 puede ser referenciado por con el DAC0 como el voltaje de referencia del chip

El voltaje de referencia del ADC1 puede ser referenciado por el voltaje de alimentación (AV+) via el VREF multiplexado

Page 34: ProgMicroControladores_clase3

Voltaje de referencia El voltaje de referencia interna es de 1.2V y la

ganancia de dos para el amplificador. Por ejemplo VREF=2.4v.

La referencia interna puede ser enrutada via desde el pin VREF hacia componentes externos al sistema o hacia los pines de entrada de referencia del voltaje.

Capacitores de bypass 0.1uF y 4.7uF son recomendados desde el pin VREF hacia AGND.

Page 35: ProgMicroControladores_clase3

Voltaje de referencia El registro de control de referencia, REF0CN,

habilita/deshabilita el generador de referencia interno y selecciona la entrada de referencia para el ADC0 y ADC1.

La referencia interna puede ser enrutada via desde el pin VREF hacia componentes externos al sistema o hacia los pines de entrada de referencia del voltaje.

Capacitores de bypass 0.1uF y 4.7uF sonrecomendados desde el pin VREF hacia AGND.

Page 36: ProgMicroControladores_clase3

Voltaje de referencia El registro de control de referencia, REF0CN,

habilita/deshabilita el generador de referencia interno y selecciona la entrada de referencia para el ADC0 y ADC1.

Ejemplo:

MOV REF0CN, #00000011B Esto habilita el uso del ADC o DAC, y la referencia de

voltaje interno. Los beneficios incluyen:

1.Implementación del circuito mas eficiente y reduce el espacio.

2.Alto sistema de confiabilidad.

3.Costo efectivo.

Page 37: ProgMicroControladores_clase3

Registro de control del voltaje de referencia

Page 38: ProgMicroControladores_clase3

Tutorial de preguntas1.¿Porque el chip SiLab de señal mixta que usa el

sistema CIP-51 tiene un rendimiento mas rápido que el MCS-51?

2.De ejemplos de componentes analogicos y digitales los cuales están incorporados en el SiLab C8051F020

3.La tarjeta de objetivo SiLab permite a un programa ser escrito y probado en el ambiente integrado de desarrollo IDE. Una vez probado exitosamente, el programa puede ser descargado dentro de la memoria y ejecutarse desde ahi. Nombra la memoria envuelta cuando el procedimiento de descarga toma lugar

Page 39: ProgMicroControladores_clase3

Tutorial de preguntas1.¿Cuales de los 4 puertos en la tarjeta de objetivo de la

tarjeta de objetivo SiLab puede ser usado para generar el GPI/O o entradas/salidas para algún periferico digital?

2.Un voltaje de referencia es necesario para conectar el DAC (DAC0 o DAC1) antes para su operación completa. Si un generador de voltaje de referencia interno es usado en este caso, muestra los pasos necesarios (esto en hardware y software) envuelto para habilitar la conexión de arriba.