unidad 1: arquitectura interna del microcontrolador · 2019. 3. 28. · picpic10:...
TRANSCRIPT
Unidad 1: Arquitectura interna del Microcontrolador
Ing. Raúl Alberto Rojas Reátegui
Capitulo 2: Arquitectura del Microcontrolador PIC18F4550
Ing. Raúl Alberto Rojas Reátegui
4© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Comprende los principios fundamentales de la arquitectura de los
microcontroladores de 8 bits, PIC 18F4550.
Logro del capitulo
5© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Microcontrolador PIC18F4550
6© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Familias de microcontroladores
PICPIC10: microcontroladores de 8 bits, de bajo coste, de 6 pines y bajas
prestaciones
PIC12: microcontroladores de 8 bits, de bajo coste, de 8 pines y bajas
prestaciones.
Características Básicas
7© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
PIC16: microcontroladores de 8 bits, con gran variedad de número de pines
y prestaciones medias.
PIC18: microcontroladores de 8 bits, con gran variedad de número de pines
y prestaciones medias/altas.
PIC24: microcontroladores de 16 bits dsPIC’s
8© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Memoria de programa y de datos separadas, con buses distintos
Mayor ancho de banda que en la arquitectura Von Neuman donde el bus
para datos e instrucciones es único.
Gracias a un bus exclusivo para la memoria de programa se optimizan las
instrucciones a la arquitectura.
Todos los códigos de operación son de 14 bits, con un único acceso a
memoria para cada instrucción, frente a la estructura multi-byte de algunas
instrucciones en arquitectura Von Neuman.
PIC de gama básica (16C5XX):
9© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Código de protección
El contenido de la memoria de programase puede proteger contra lectura.
Existen posiciones de memoria reservadas para incluir números de serie o
códigos de identificación.
Power-on Reset (POR)
Autoreset al conectarles la alimentación.
Lógica Brown-out (BOR)
Características Especiales
10© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Reset del µC si la alimentación desciende por debajo de un determinado
valor.
Watchdog Timer (perro guardián)
Temporizador que resetea la MCU si no se actualiza en un tiempo
determinado. Evita ‘cuelgues’.
Modo de bajo consumo
Mediante la instrucción SLEEP se para el funcionamiento de la CPU
reduciendo drásticamente el consumo.
11© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Oscilador RC interno.
In-Circuit Serial Programming (ICSP)
Posibilidad de programación del circuito en la aplicación final utilizando un
protocolo serie sobre dos líneas de E/S del µC.
12© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
13© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Datos de 8 bits.
Instrucciones de 16 bits.
77 instrucciones (multiplicación de 8x8 en un ciclo).
Alta velocidad (hasta 40 MHz) y alto rendimiento (10 MIPS)
Arquitectura orientada al lenguaje C.
Potentes herramientas de emulación.
PIC de gama mejorada (18C(F)XXX):
14© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
15© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Ejecución segmentada:
Pipeline de dos estados: solapamiento de la fase de búsqueda y
ejecución de la instrucción.
Mientras de ejecuta una instrucción se busca el código de operación de la
siguiente.
Ortogonalidad
Las instrucciones pueden realizar cualquier operación sobre cualquier
registro, usando cualquier modo de direccionamiento
16© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Juego de instrucciones reducido:
35 instrucciones que se ejecutan en un solo ciclo, salvo las de salto.
Arquitectura en banco de registros:
Todos los registros especiales incluido el contador de programa, los
puertos, temporizadores, etc. están mapeados en memoria.
A los registros/memoria se puede acceder con direccionamiento directo o
indirecto
17© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Arquitecturas Microcontrolador
PIC18F4550
18© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Componentes internos
19© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Distribución de pines
20© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Diagrama de bloques
21© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Organización de la memoria
Memoria de programa:
Memoria flash interna de 32.768 bytes
Almacena instrucciones y constantes/datos
Puede ser escrita/leída mediante un programador externo o
durante la ejecución del programa mediante unos punteros.
Memoria RAM de datos:
Memoria SRAM interna de 2048 bytes en la que están incluidos los
registros de función especial.
Almacena datos de forma temporal durante la ejecución del
programa
Puede ser escrita/leída en tiempo de ejecución mediante diversas
instrucciones
22© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Memoria EEPROM de datos:
Memoria no volátil de 256 bytes.
Almacena datos que se deben conservar aun en ausencia de tensión
de alimentación
Puede ser escrita/leída en tiempo de ejecución a través de registros
Pila:
Bloque de 31 palabras de 21 bits
Almacena la dirección de la instrucción que debe ser ejecutada
después de una interrupción o subrutina
Memoria de configuración:
memoria en la que se incluyen los bits de configuración (12 bytes de
memoria flash) y los registros de identificación (2 bytes de memoria
de solo lectura).
23© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
24© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
- EEPGD: Bit de selección de acceso a memoria Flash/EERPOM:
EEPGD=‘0’: Acceso a memoria de datos EEPROM
EEPGD=‘1’: Acceso a memoria Flash de programa
– CFGS: Bit de selección de acceso a memoria (Flash programa-EEPROM datos)/Configuración:
CFGS=‘0’: Acceso a memoria de Flash de programa o a memoria de datos EEPROM
CFGS=‘1’: Acceso a los registros de configuración de la memoria Flash
– FREE: Bit de habilitación del borrado de una fila en memoria Flash:
REE=‘0’: Activada únicamente la opción de lectura
FREE=‘1’: Borrado de la fila de la memoria Flash de programa apuntada por TBLPTR en el
siguiente comando de escritura (el bit se pondrá a ‘0’ cuando la operación de borrado se
haya completado)
25© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
– WRERR: Bit de error de escritura en memoria Flash/EEPROM:
WRERR=‘0’: La operación de escritura en la memoria Flash/EEPROM se ha llevado a cabocorrectamente
WRERR=‘1’: Se ha producido un error en la operación de escritura en la memoria Flash/EEPROM
– WREN: Bit de habilitación de la operación de escritura en memoria Flash/EEPROM:
WREN=‘0’: Operación de escritura en la memoria Flash/EEPROM deshabilitada
WREN=‘1’: Operación de escritura en la memoria Flash/EEPROM habilitada
26© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
– RD: Bit de control de lectura en memoria EEPROM:
RD=‘0’: La operación de lectura en la memoria EEPROM se ha completado
RD=‘1’: Inicio de una operación de lectura en memoria EEPROM (cuando la operación termina
el bit se pone automáticamente a ‘0’; por programa solo puede ponerse a ‘1’)
27© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
REGISTROS DE FUNCION ESPECIAL:
La memoria RAM de datos se compone de registros de propósito general (GPR) y de registros de función
especial (SFR). Los SFR son los registros mediante los cuales se pueden monitorizar/controlar el
funcionamiento de la CPU y de las unidades funcionales del uC.
SFR’s asociados con el núcleo del uC
CPU: WREG, STATUS, BSR, etc...
Interrupciones: INTCON, PIE1, PIR1, IPR1, etc...
Reset: RCON
SFR’s asociados con las unidades funcionales:
Timers: T0CON, TMR1H, TMR1L, T1CON, etc...
Convertidor A/D: ADRESH,ADRESL, ADCON0, ADCON1, etc...
EUSART: TXREG, TXSTA, RCSTA, etc...
CCP: CCPR1H, CCPR1L, CCP1CON, etc...
MSSP: SSPSTAT, SSPDATA, SSPCFG, etc...
Puertos de E/S: TRISA, PORTA, TRISB, PORTB, etc...
28© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
REGISTRO STATUS
– N: Bit de de valor negativo. Bit utilizado para operaciones con signo (complemento a 2):
N=‘0’: Resultado de la última operación positivo (MSB a ‘0’)
N=‘1’: Resultado de la última operación negativo (MSB a ‘1’)
– OV: Bit de desbordamiento. Bit utilizado para operaciones con signo (complemento a 2).
Indica si se ha producido desbordamiento del 7º bit (bit 6), es decir si se ha producido algún
cambio en el bit 7 del resultado:
OV=‘0’: No se ha producido desbordamiento en la operación aritmética
OV=‘1’: Se ha producido desbordamiento en la operación aritmética
– Z: Bit de cero:
Z=‘0’: El resultado de la operación aritmética o lógica ha sido diferente de 0
Z=‘1’: El resultado de la operación aritmética o lógica ha sido 0
29© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
– DC: Bit de acarreo de dígito (para las instrucciones ADDWF, ADDLW, SUBLW y SUBWF):
DC=‘0’: No se ha producido acarreo del 4º bit
DC=‘1’: Se ha producido acarreo del 4º bit
– C: Bit de acarreo (para las instrucciones ADDWF, ADDLW, SUBLW y SUBWF):
DC=‘0’: No se ha producido acarreo del 8º bit
DC=‘1’: Se ha producido acarreo del 8º bit
30© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
PUERTOS DE E/S
El uC PIC18F4550 dispone 5 puertos de E/S que incluyen un total de 35 líneas digitales de E/S:
Todas las líneas digitales de E/S disponen de al menos una función alternativa asociada a alguna
circuitería especifica del uC. Cuando una línea trabaja en el modo alternativo no puede ser utilizada
como línea digital de E/S estándar.
31© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Cada puerto de E/S tiene asociado 3 registros:
Registro TRIS: mediante este registro se configuran cada una de las líneas de E/S del puerto
como ENTRADA(bit correspondiente a ‘1’) o como SALIDA (bit correspondiente a ‘0’) .
Registro PORT: mediante este registro se puede leer el nivel de pin de E/S y se puede establecer
el valor del latch de salida.
Registro LAT: mediante este registro se puede leer o establecer el valor del latch de salida.
PUERTOS DE E/S
32© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
33© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
PUERTO A:
Dispone de 7 líneas de E/S. Las funciones alternativas son:
RA0: entrada analógica (AN0)/ entrada de comparación (C1IN-)
RA1: entrada analógica (AN1)/ entrada de comparación (C2IN-)
RA2: entrada analógica (AN2)/ entrada de comparación (C2IN+)
RA3: entrada analógica (AN3)/ entrada de comparación (C1IN+)
RA4: entrada de reloj del Temporizador 0 (T0CKI)/salida de comparación (C1OUT)
RA5: entrada analógica (AN4)/ salida de comparación (C2OUT)/HLVDIN entrada de detección de
tensión alta/baja
RA6: entrada del oscilador principal (OSC2)/salida de señal de reloj (CLK0)
En el reset las líneas RA0, RA1, RA2, RA3 y RA5 se configuran como líneas de entrada analógicas. Para poder utilizarlas como
líneas digitales de E/S hay que desactivar la función analógica:
34© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
REGISTRO ADCON1
– VCFG1: Bit de configuración de la tensión de referencia VREF-:
* VCFG1=‘0’: VREF- se conecta a VSS
* VCFG1=‘1’: VREF- se conecta a la línea física RA2
– VCFG0: Bit de configuración de la tensión de referencia VREF+:
* VCFG1=‘0’: VREF+ se conecta a VDD
* VCFG1=‘1’: VREF+ se conecta a la línea física RA2
– PCFG3..PCFG0: Bits configuración de los puertos de conversión A/D. Mediante estos bits se establecen que líneas físicas (RA5..RA0,RB4..RB0, RE1 y RE0) van a trabajar como entradas del convertidor A/D (Ver Tabla de configuración de líneas de conversión A/D).
35© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Tabla de configuración de líneas de conversión A/D:
36© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
REGISTRO CMCOM
37© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
38© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
TIPOS DE OSCILADORES
HS: (High Speed Crystall Resonador): Alta velocidad de 20 MHz a 40 MHz.
XT: (Crystall//Resonador): Estándar de 4 MHZ máximo.
LP: (Low Power Crystall): Bajo consumo, 200 KHz a 30 KHz.
RC: (Resistence/Capacitor): Baja precisión, Tiene una tabla asociada a los valores de R y C. Muy
poco uso. 200 Hz a 32 KHz.
39© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential