INSTITUTO TECNOLÓGICO DE MÉRIDA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
CARRERA: Ing. Biomédica
MATERIA: Microcontroladores GRUPO: 6D1
NOMBRE MAESTRO: Freddy Ix Andrade
NÚM. PRÁCTICA: 2 FECHA DE ENTREGA:
NOMBRE DE LA PRÁCTICA: PWM
INTEGRANTES DEL EQUIPO MATRÍCULA
Henry Alfonso Canul Benitez E15080361
1
INSTITUTO TECNOLÓGICO DE MÉRIDA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
REPORTE DE LA PRÁCTICA
INTRODUCCIÓN
En este trabajo se expondrán un uso más de los microcontroladores en el
ámbito laboral, debido a que en estos tiempos todo se maneja por medio de
aplicaciones ya que todos los equipos poseen un hardware y un software que
es lo se busca en este presente trabajo exponer el hardware y el software
utilizado el pc18f4550.
De esta manera se extenderá el conocmiento del PWM para estudiar sus
señales.
OBJETIVOS DE LA PRÁCTICA
Exponer el funcionamiento del PWM asi como su programación mediante el
hardware y el software y demostrar el funcionamiento de los códigos de manera
práctica en el osciloscopio.
MARCO TEÓRICO
PIC COMPILER
PIC C Compiler es un inteligente y muy optimizado compilador C que contienen
operadores estándar del lenguaje C y funciones incorporados en bibliotecas que
son específicas a los registros de PIC, proporcionando a los desarrolladores una
herramienta poderosa para el acceso al hardware las funciones del dispositivo
desde el nivel de lenguaje C.
El compilador CCS contiene más de 307 funciones integradas que simplifiquen
el acceso al hardware, mientras que la producción eficiente y altamente
optimizado código. Se incluyen funciones de hardware del dispositivo de
características tales como:
Temporizadores y módulos PWM
Convertidores A / D de datos on-chip
EEPROM.
Controladores LCD
Memoria externa buses
2
INSTITUTO TECNOLÓGICO DE MÉRIDA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Entre otras...
PIC C es una herramienta que permite programar un microcontrolador por medio
de lenguaje C, a diferencia del lenguaje máquina o ensamblador (ASM) que se
maneja por defecto, este hace los programas más fáciles de escribir, analizar y
comprender. PIC C ha sido desarrollado por PIC CMU, y cuenta con una gran
cantidad de librerías o drivers que permiten optimizar los programas en el
momento de manejar dispositivos externos, tales como pantallas LCD,
memorias, conversores, etc.
Estructura de un programa en C
Un programa en PIC C se puede hacer de dos formas distintas, ya sea creando
un proyecto o simplemente escribiendo el código completo directamente en un
archivo con extensión ".C" (más adelante se tratará este tema), cualquiera que
sea el caso que se vaya a usar, la estructura es prácticamente la misma:
3
INSTITUTO TECNOLÓGICO DE MÉRIDA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Las directivas dan los parámetros de control que le indican al compilador
las herramientas que el programa va a necesitar para ejecutarse
adecuadamente.
Las funciones son las rutinas que el microcontrolador ejecutará según se
programe. La función principal es la columna vertebral del programa y es
la primera en ejecutarse según su diseño, hará las llamadas
correspondientes tanto a las librerías como a las funciones secundarias.
Las funciones secundarias, son aquellas subrutinas en las que se apoya
la función principal para su correcto funcionamiento, principalmente se
usa para no repetir la escritura de un código una y otra vez o por simple
orden.
Las instrucciones son el código a escribir y a compilar.
Los comentarios se usan para aclarar ciertos aspectos de las
instrucciones, es bastante útil para recordar la estructurar y el
funcionamiento de un programa hecho anteriormente o por un tercero.
El compilador PCW dispone de 7 tipos básicos de directivas:
Directivas derivadas del estándar de C, que permiten, entre otras funciones, un
control básico del código y del flujo en el proceso de compilación:
#DEFINE #ELIF #ELSE #ENDIF #ERROR #IF #IFDEF #IFNDEF #INCLUDE
#LIST #NOLIST
#PRAGMA #UNDEF
Directivas asociadas a las bibliotecas precompiladas, que proporcionan al
compilador información relacionada con estas bibliotecas:
#USE DELAY #USE FAST_IO #USE FIXED_IO #USE I2C
#USE RS232
#USE STANDARD_IO
Directivas relacionadas con la especificación del dispositivo, por un lado, para
definir los mapas de memoria y el juego de instrucciones, y por otro, incluir
información necesaria para la programación del dispositivo en los ficheros de
salida de la compilación:
#DEVICE #ID #FUSES #TYPE
Directivas de cualificación de funciones, para identificar características
especiales de una función:
#INLINE #INT_DEFAULT #INT_GLOBAL
#INT_xxxxx #SEPARATE
Directivas de control del compilador, para definir opciones referidas a la
compilación del código del programa:
4
INSTITUTO TECNOLÓGICO DE MÉRIDA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
#CASE #OPT #ORG #PRIORITY
Directivas de control de la memoria del microcontrolador, para gestionar y
reservar el uso de determinadas zonas de memoria para variables:
#ASM
#BIT #BYTE
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
5
INSTITUTO TECNOLÓGICO DE MÉRIDA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
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.
6
INSTITUTO TECNOLÓGICO DE MÉRIDA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
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.
PWM
La modulación por ancho de pulsos (también conocida como PWM, siglas en
inglés de pulse-width modulation) de una señal o fuente de energía es una
técnica en la que se modifica el ciclo de trabajo de una señal periódica
(una senoidal o una cuadrada, por ejemplo), ya sea para transmitir información a
través de un canal de comunicaciones o para controlar la cantidad de energía
que se envía a una carga.
El ciclo de trabajo de una señal periódica es el ancho relativo de su parte
positiva en relación con el período. Expresado matemáticamente:
{\displaystyle D={\frac {\tau }{T}}}
D es el ciclo de trabajo
{\displaystyle \tau } es el tiempo en que la función es positiva (ancho del
pulso)
7
INSTITUTO TECNOLÓGICO DE MÉRIDA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
T es el período de la función
La construcción típica de un circuito PWM se lleva a cabo mediante un
comparador con dos entradas y una salida. Una de las entradas se conecta a un
oscilador de onda dientes de sierra, mientras que la otra queda disponible para
la señal moduladora. En la salida la frecuencia es generalmente igual a la de la
señal dientes de sierra y el ciclo de trabajo está en función de la portadora.
La principal desventaja que presentan los circuitos PWM es la posibilidad de que
haya interferencias generadas por radiofrecuencia. Estas pueden minimizarse
ubicando el controlador cerca de la carga y realizando un filtrado de la fuente de
alimentación.
La función PWM requiere de un circuito en el cual hay distintas partes bien
diferenciadas entre sí. El comparador es lo que se convierte en el nexo,
contando con una salida y un total de dos entradas distintas. A la hora de
configurarlo tenemos que tener en cuenta que una de las dos entradas se centra
en dar espacio a la señal del modulador. Por su lado, la segunda entrada tiene
que estar vinculada con un oscilador de tipo de dientes de sierra para que la
función se pueda llevar a cabo con éxito. La señal que proporciona el oscilador
con dientes es lo que determina la salida de la frecuencia. Es un sistema que ha
dado buenas demostraciones de funcionar, convirtiéndose en un recurso muy
utilizado en cuanto a la disponibilidad de recursos energéticos.
Para qué sirve PWM
Tenemos que tener en cuenta distintos factores a la hora de hablar de los usos
prácticos de la función PWM. Con el paso de los años y desde que la PWM
entrara en vigor, las placas madre contaron con sensores de temperatura,
consultables desde la bios del equipo. A partir de ese momento se impuso
reducir el ruido de la CPU, haciendo que el ordenador reaccionara de distintas
maneras en base al contexto. Si por ejemplo, estamos utilizando el equipo con
el objetivo de descargar archivos, como demos de videojuegos, realmente el
ordenador no necesita una potencia superior a la mínima. En estos casos la
CPU no se calienta, no necesita el ventilador y se debe evitar gastar energía de
forma innecesaria.
Cuando montamos un ordenador que deba poder ofrecer un rendimiento de
primer nivel, pensamos en incluir la mayor potencia de ventilación, para que en
situaciones críticas estos ventiladores puedan funcionar a toda máquina con el
objetivo de evitar problemas en el equipo. Pero esta configuración se
desaprovecha en momentos como en el ejemplo citado de la descarga de
archivos. En estas situaciones no es necesario que el ventilador gire a toda
velocidad, sino que se puede mantener en los niveles mínimos. La función PWM
es una manera de regularlo. Para perfeccionar esto se le añadió un cable
adicional que manda una señal de la velocidad a la que está funcionando el
8
INSTITUTO TECNOLÓGICO DE MÉRIDA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ventilador. La placa base se encarga de regular la velocidad a la que debe ir el
ventilador en cada momento. Si el equipo se calienta mucho, le dice con una
señal que debe trabajar más. Para ello hay que configurar el ordenador desde la
bios siempre pensando en obtener los menores índices de ruido.
Para que la función PWM tenga más sentido y sea más completa, existen
accesorios que se encargan de llevar esa señal a otros ventiladores que
también se puedan beneficiar de ella. El objetivo común es mejorar lo máximo
posible el rendimiento de estos equipos.
MATERIAL UTILIZADO
Cable
Protoboard
Pic 18F4550
Fuente 5v
DESARROLLO EXPERIMENTAL
hardware
#include <ejemplo.h> void main()
{
setup_timer_2(T2_DIV_BY_16,255,1); //819 us overflow, 819 us interrupt
setup_ccp1(CCP_PWM|CCP_SHUTDOWN_AC_L|CCP_SHUTDOWN_BD_L);
set_pwm1_duty((int16)61);
while(TRUE)
//TODO: User Code
Esta es la señal producida por el Pic en el pin B0, hecha por software.
#include <18F4550.h>
#fuses INTRC, NOWDT, NOMCLR, NOPROTECT
9
INSTITUTO TECNOLÓGICO DE MÉRIDA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
#use delay (internal=8000000) void main()
{
char step, pwm1;
pwm1=128;
while(True)
{
if(pwm1>=step) output_high(pin_b0); else output_low(pin_b0);
step++;
if(!step) step++;
}
}
RESULTADOS
10
INSTITUTO TECNOLÓGICO DE MÉRIDA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
11
INSTITUTO TECNOLÓGICO DE MÉRIDA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
En la imágenes anteriores se puden se puede observar el funcionamiento en
el osciloscopio de una señal por hardware (primera imagen) una de
software(segunda imagen) y el armado en esta ocasión no contaba con la
tarjeta pingüino jacss debido a que en ese dia no tenia a disposición la
tarejta pero pude conseguir un pic18f4550
CONCLUSIONES Y OBSERVACIONES
En esta práctica de señal PWM tiene muchos usos mediante su Hardware o
Software ya que con el se podría generar una señal de anchos de pulso para
ser usado como un controlador o mediante el software para generar señales
de anchos de pulsos para más de un controlador.
REFERENCIAS BIBLIOGRÁFICAS
12
INSTITUTO TECNOLÓGICO DE MÉRIDA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
PIC18f4550,[Link],[Link]
pdf,2012.
VALORACION DEL PROFESOR
En esta sección se debe incluir la valoración de los diferentes aspectos que el
profesor evalúa para cada práctica y que indicó al inicio del semestre.
13