viernes, 15 de febrero de 2013

PIC 18F4550


Principales características del Pic 18F4550

  • Microcontrolador con módulo USB  2.0. Soporta Low speed 1.5Mb/s y full speed 12Mb/s. 
  • 1kB de memoria de doble acceso vía USB
  • 35 pines I/O disponibles
  • Memoria de programa flash de 32 kB
  • RAM de 2048 Bytes
  • EEPROM de datos de 256 Bytes
  • Velocidad de la CPU 12 MIPS
  • Oscilador externo de dos modos hasta 48 MHz
  • Oscilador interno selecionable entre 8 frecuencias desde 31kHz hasta 8MHz
  • Oscilador secundario con Timer 1 de hasta 32kHz
  • Opciones de oscilador dual permiten que la velocidad de la CPU y del módulo USB sean diferentes
  • ADC de 10 bits y 13 canales
  • Tecnología nanoWatt que brinda características y funciones de bajo consumo y ahorro de energía
  • Voltaje de operación 4.2V a 5.5V
  • 4 Timer(desde Timer0 a Timer3). Uno de 8 bits y 3 de 16 bits
  • 2 módulos de captura/comparación/PWM
  • EUSART, SPP, SPI, I²C.
  • 20 fuentes de interrupciones (3 externas)
  • Resistencias de pull-ups en el puerto B programables
  • Función del pin MCLR opcional
  • Brown-out Reset de valor programable
  • Power-on Reset
  • Power-up Timer y Oscillator Start-up Timer
  • Soporta 100,000 ciclos de borrado/escritura en memoria flash
  • Soporta 1,000,000 ciclos de borrado/escritura en memoria EEPROM
  • Retención de datos mayor a 40 años
  • Protección de código y datos programable
  • Encapsulado DIP de 40 pines

Después de analizar las principales características del dispositivo , nos introduciremos mas a fondo en él, tal y como hicimos en la entrada del PIC 16F877.
En la siguiente captura podemos ver una tabla comparativa entre varios dispositivos de la familia, así como sus principales características.



Detallado de Pines

Como se puede apreciar en la imagen tiene cierta similitud a la disposición de pines del Pic 16F877.



Arquitectura del Pic

Como expliqué en la entrada del Pic 16F877 existen dos tipos de arquitecturas la de Von Newman y la tipo Hardvard. 
El Pic 18F4550 posee una arquitectura tipo Hardvard, ya que dispone de diferentes buses para acceder a la memoria de programa o a la memoria de datos. Esto nos da la opción de acceder a la memoria de datos para ejecutar una instrucción, mientras se lee de la memoria de programa la siguiente instrucción. Es decir, podemos acceder de forma simultánea a ambas memorias.

El Bus de memoria de programa: Está formado por 21 líneas de dirección,16 lineas para instrucciones  y 8 lineas para datos.

El Bus de memoria de datos: Compuesto por 12 líneas de dirección y 8 líneas de datos.

Estructura Interna del Pic

Dentro del datasheet del dispositivo podemos encontrar un diagrama de bloques que nos explica la arquitectura interna que tiene el Pic 18F4550.


Como podemos ver en la imagen este modelo de Pic es bastante completo, cuenta con una serie de elementos como: la memoria de programa, memoria de datos,contadores, puertos I/O, latch de dirección, datos...


Organización de la memoria

La memoria del Pic se divide en: Memoria RAM de datos, memoria de programa, memoria EEprom de datos, la pila y memoria de configuración

Memoria de datos

Cuenta con una memoria de RAM de datos de 2048 bytes, (8 de los bancos de 256 bytes).
También cuenta con 160 bytes dedicados a los SFR's(Registros de función especial) los cuales se encuentran en la parte alta del banco 15.
Como se puede ver en la imagen la memoria RAM de datos se compone por GPR's o registros de propósito general y SFR's o registros de función especial.
Es la encargada de almacenar datos de forma temporal durante la ejecución del programa.


Para acceder a un Byte de la memoria de datos en primer lugar seleccionaremos el banco mediante el BSR(Bank Selector Register) y a continuación se disecciona el byte dentro del banco.


Memoria de programa

El Pic 18F4550 cuenta con una memoria de programa de 32K (32768 bytes). Es una memoria tipo Flash. 
Esta memoria es la que se encarga de almacenar las instrucciones, constantes y datos.
La podemos escribir o leer con un programador externo o en ejecución.


Memoria EEprom de datos
Es una memoria no volatil en la que se almacenan los datos en ausencia de tensión.
Cuatro SFR son usados para la escritura y lectura de la EEPROM:
EECON1 y EECON2(controlan el acceso a los datos de la memoria EEPROM).
EEDATA y EEADR(ordenan la escritura/lectura y la dirección).


La pila o Stack
Es un bloque de memoria RAM independiente de 31 palabras de 21 bits en la cual se almacena de una forma temporal el valor del Contador de Programa(Program Counter) cuando se produce una llamada a subrutina o interrupción.


Memoria de configuración
Es un bloque de memoria situado a partir de la posición 30000H en la memoria de programa donde se almacenan:
  • Bits de configuración. Contenidos en 12 bytes de memoria flash donde se almacenan varias opciones de configuración: opciones del oscilador, reset, watchdog, circuiteria de depuración y programación... Estos bits pueden ser modificados.
  • Registros de identificación. Contienen información del modelo y revisión del dispositivo. Son registros de lectura


Ciclo máquina y ciclo de instrucción

Al igual que explique en el Pic 16F877, en el Pic 18F4550 la mayoría de las instrucciones también se ejecutan en un solo ciclo máquina.



El ciclo de instrucción
Un ciclo de instrucción comprende cuatro ciclos Q(desde Q1 hasta Q4), tal y como se puede apreciar en la imagen.
En la captura también se puede observar el esquemático del proceso Pipeline el cual es un sistema que nos permite ejecutar una instrucción(acceso a la memoria de datos), mientras se lee de la memoria de programa la siguiente instrucción.





No hay comentarios:

Publicar un comentario en la entrada