progmicrocontroladores_clase3
TRANSCRIPT
Programación de micro-controladores
INTRODUCCION AL C8051F020Clase 3
Huber Paúl Gilt López M. Sc. Ing. Electrónico
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
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
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
Diagrama de bloques del CIP-51
INTRODUCCIÓN SISTEMA C8051F20
100 pinTQFP
package
INTRODUCCIÓN SISTEMA C8051F20
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
Organización de la memoria
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
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
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
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
Registro de funciones especiales
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
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
Puertos de I/O y el Crossbar
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
Puertos de I/O y el Crossbar
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
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
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
Convertidor analogico a digital de 12-bit
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)
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
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.
Convertidor analogico a digital de 8-bit
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
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.
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.
Voltaje de referencia
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
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
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.
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.
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.
Registro de control del voltaje de referencia
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
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.