Zusammenfassung der Ressource
Microcontroladores PIC18F4550
Anmerkungen:
- Un microcontrolador es la unidad de computación básica dentro de los dispositivos
electrónicos inteligentes, como las lavadoras y los termostatos. Es una computadora muy pequeña con sus propios sistemas de RAM, ROM, puertos de I/O, Timers, etc., todos integrados en un solo chip. Puede procesar señales digitales y responder a las entradas del usuario, pero su capacidad de computación es limitada.
- Arquitectura del microcontrolador
- Harvard
Anmerkungen:
- La arquitectura Harvard es empleada en el diseño de los microcontroladores ya que permite separar la memoria de instrucciones (o programa) del espacio de datos (periféricos).
- Bus de datos
Anmerkungen:
- Este bus conecta todos los periféricos del microcontrolador para la adquisición y envió de datos.
- Bus de instrucciones
Anmerkungen:
- Este bus conecta la CPU con la memoria de instrucciones y demás elementos asociados con el procesamiento de instrucciones del microcontrolador.
- Capacidad de los microcontroladoreas
Anmerkungen:
- Periferia embebida
Anmerkungen:
-
La periferia embebida se
refiere a los dispositivos que el microcontrolador contiene en el mismo chip en
el que se encuentra la CPU. Dependiendo del tipo y modelo de microcontrolador es el tipo de periféricos que trae embebido, siendo los más básicos los puertos de
entradas y salidas (E/S), timers (temporizadores), contadores y puertos de
comunicación serial.
- Microcontrolador PIC18F4550
- ¿Quién lo fabrica?
Anmerkungen:
- El PIC18F4550 es fabricado por Microchip y es parte de la familia PIC18, los cuales son microcontroladores de 8 bits.
- Herramienta de programación
Anmerkungen:
- MPLAB X IDE y el compilador XC8
- Configuración del reloj
Anmerkungen:
- El PIC18F4550 puede utilizar varias fuentes de reloj, incluido el oscilador interno (INTOSC), cristales externos y entradas de reloj externas. Para seleccionar una fuente de reloj, debe configurar los bits de configuración en
el microcontrolador.
- Configuración del reloj externo
Anmerkungen:
- Si se usa un reloj externo este pasa por un preescalador (PLL Prescaler)
con el fin de que entre una señal de 4 MHz al PLL (el PLL Prescaler puede dividir
la frecuencia de entrada entre diferentes valores, esto depende de cómo se configure el multiplexor). Posteriormente pasa a un postescalador (PLL Postscaler) donde
se vuelve a dividir el valor en un multiplexor configurable.
- Configuration Bits
Anmerkungen:
- Para llegar a donde se configuran los PLL es necesario ir a la barra de herramientas > “Window” > “Target Memory Views” > "Configuration Bits"
- Configurar PLL Prescaler and Postscaler
Anmerkungen:
- En 1 se configura el PLL Prescaler, en este caso como el reloj externo que se usa es de 4 MHz, se deja la opción 1, si fuera diferente se debe de seleccionar la opción que permita que a la salida la frecuencia sea de 4 MHz.
En 2 se configura el PLL Postscaler, en este caso igual se deja la opción OSC1_PLL2.
En 3 es para seleccionar el tipo de reloj a usar.
- Configurar el tipo de reloj a usar
Anmerkungen:
- Se selecciona 1 y se despliega una lista con las posibles opciones, y en
este caso al ser un reloj externo se selecciona la opción marcada en 2.
Vemos que al hacer la selección se nos cambia la descripción del tipo de reloj que se está usando.
- Generar código
Anmerkungen:
- Una vez que este configurado el reloj, se presiona en “Generate Source
Code to Output” y se genera el código de la configuración del reloj, tal como
se aprecia en la imagen. Este código se puede pegar directamente en el programa
principal o puede ser guardado como una librería para tener una programación
más ordenada.
- Crear librería ".h"
Anmerkungen:
- Para
crear la librería hay que ir a la opción de “Header Files” > “New” > “C
Header File” y crear el archivo con el nombre que se requiera, en este caso es “Configuración_reloj.h”
- Insertar librería en programa principal
Anmerkungen:
-
Una vez creada la librería hay que ir al programa principal, en este caso
se llama “Configuración.c” y hay que llamar la librería con el comando #include,
tal como se aprecia en 3.
- Configuración de puertos E/S
Anmerkungen:
- La configuración de los puertos es una de las tareas más importantes a realizar, ya que estos se deben de configurar antes de que puedan ejecutar alguna función.
Los puertos E/S deben de configurarse para poder definirlos como entradas o salidas digitales, o como entradas analógicas. Cabe mencionar que en cada puerto se pueden combinar entradas y salidas digitales, así como entradas analógicas.
- ADCON
Anmerkungen:
- Empleado para configurar el puerto como E/S digitales o entradas analógicas. El valor debe de escribirse en hexadecimal o binario.
- TRIS
Anmerkungen:
- Configura los puertos como entradas o salidas.
Salidas = 0x00
Entradas = 0x01
Se puede configurar todo un puerto (TRISA por ejemplo), o cada una de los pines de manera individual (TRISAbits.XX)
- PORT
Anmerkungen:
- Se emplea para escribir el estado deseado en algunos de los pines de los puertos de salida.
- Lectura de datos
Anmerkungen:
- Para la lectura de datos solo es necesario configurar el puerto o pines del puerto como entradas digitales y posteriormente condicionar que se quiere hacer en el programa cuando ese puerto obtiene un cierto valor.
- Perifericos
- Puertos de entradas y salidas (E/S)
Anmerkungen:
- Cuenta con 5 puertos de E/S, los cuales son Puerto A, Puerto B, Puerto C, Puerto D y Puerto E.
- Comparador
Anmerkungen:
- Cuenta con 2 comparadores, los cuales son del tipo analógicos duales con multiplexación de entradas.
- Timers
Anmerkungen:
- Cuenta con 4 timers, del Timer0 al Timer3
- Convertidor analógico a digital (ADC)
Anmerkungen:
- Capture / Compare / PWM (CCP)
Anmerkungen:
- Cuenta con un puerto CCP y con un puerto mejorado CCP (ECCP).
- Comunicación
- USB
Anmerkungen:
- Módulos de comunicación serial
- EUSART
Anmerkungen:
- Cuenta con 1 Universal Synchronous and Asynchronous serial Receiver and Transmitter (adaptador de comunicación serie síncrona y asíncrona)
- MSSP
Anmerkungen:
- Cuenta con 1 Master Synchronous Serial Port (Puerto serie síncrono maestro) el cual puede ser configurado de dos maneras.
- SPI
Anmerkungen:
- Serial Peripheral Interface (Interfaz Periférica Serial)
- I2C
Anmerkungen:
- Inter-Integrated Circuit (interfaz serie de dos hilos)
- Memoria EEPROM
Anmerkungen:
- Cuenta con una EEPROM de 256 bytes, con 100,000 ciclos de escritura / lectura.
- BOR
Anmerkungen:
- Brown Out Reset, es un reset que se activa cuando el voltaje Vdd cae por debajo de un valor preestablecido.
- HLVD
Anmerkungen:
- High / Low-Voltage Detect, es un módulo programable que monitorea el voltaje Vdd y detecta cuando hay una caída de voltaje o sobre voltaje en base a los límites programados. Se emplea en aplicaciones donde se requiere monitorear la batería del microcontrolador.
- Diagrama de bloques de la construcción del microcontrolador
- Diseños del microcontrolador
Anmerkungen:
- Normalmente los microcontroladores presentan diferentes diseños, esto con la finalidad de darle al diseñador de aplicaciones una versatilidad en el diseño y tamaño del equipo o sistema en donde los empleará.
- Elementos
- Memoria de datos
Anmerkungen:
- La memoria de datos, o RAM, Es una memoria volátil en la cual se guardan las variables y datos que el microcontrolador recibe y produce durante la ejecución del programa.
- RAM
- EEPROM
- Perifericos
Anmerkungen:
- Los periféricos más comunes se mencionan a continuación.
- Puertos de entradas y salidas (E/S)
Anmerkungen:
- La principal utilidad de los puertos de E/S es lograr comunicar al computador
interno (CPU) del microcontrolador con los dispositivos exteriores para lograr
el control de la aplicación en la cual se está empleando.
- Timers (Temporizadores)
Anmerkungen:
- Se emplean para controlar periodos de tiempo y para llevar la cuenta de acontecimientos que suceden en el interior.
- Módulos Capture / Compare / PWM
Anmerkungen:
- Es un periférico que le permite medir y controlar diferentes eventos. El modo de captura (Capture) proporciona el acceso al estado actual de un registro que cambia su valor constantemente, por ejemplo, el registro del temporizador Timer. El modo de comparación (Compare) compara constantemente valores de dos registros. Uno de ellos es el registro del temporizador Timer. Este circuito también le permite al usuario activar un evento externo después de que haya
expirado una cantidad de tiempo predeterminada. Por último, el modo modulación
por ancho de pulsos (PWM - Pulse Width Modulation) puede generar señales de
frecuencia y de ciclo de trabajo variados por uno o más pines de salida.
- Puertos de comunicación serial
Anmerkungen:
- La comunicación sería son puertos que puede tener el microcontrolador para dotarlo
con la posibilidad de comunicarse con otros dispositivos externos a través de un protocolo serie, o con otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos.
- Buses de comunicación USB
Anmerkungen:
- Universal Serial Bus, por sus siglas en inglés, es moderno bus serie que permite la comunicación directa con otro dispositivo que posea una conexión USB.
- Módulos ADC
Anmerkungen:
- Los convertidores analógico-digital procesan señales analógicas convirtiéndolas en señales digitales.
- Comparadores
Anmerkungen:
- Algunos modelos de microcontroladores disponen internamente de un amplificador operacional que actúa como comparador entre una señal fija de referencia y otra variable que se aplica por uno de los pines del microcontrolador. La salida del
comparador proporciona un nivel lógico 1 o 0 según una señal sea mayor o menor que la otra.
- Herramientas de programación
- Memoria de programa (instrucciones)
Anmerkungen:
- La memoria de programa, o ROM, Es una memoria no volátil de sólo lectura y se destina a contener el programa de instrucciones que gobierna la aplicación.
- EEPROM
- OTP
- EPROM
- Flash