dsPIC Microcontrolador Avanzado
dsPIC Microcontrolador Avanzado
Autores:
Rodrguez Vega, Juan Jos
Del Campo Garca, Mariano
Tutor:
Plaza Prez, Francisco
Tecnologa Electrnica
JUNIO 2013
NDICE GENERAL:
1. MEMORIA: 82 PGINAS.
2. PLANOS: 3 PGINAS.
4. ANEXOS: 5 PGINAS.
Pg. 1 de 1
MEMORIA
05
1.1. ENUNCIADO
05
1.2. OBJETIVO
05
1.3. JUSTIFICACIN
05
06
2.1. INTRODUCCION
06
07
09
10
11
11
14
14
15
2.8.2.
Verificacin de enlaces
15
2.8.3.
16
2.8.4.
17
17
18
2.10.1 Dreamweaver
18
20
2.10.3 FileZilla
21
21
22
2.11.1 HTML
22
2.11.2 CSS
23
2.11.3 JavaScript
24
24
24
3.1.1.
Memoria de Datos
25
3.1.2.
Memoria de Programa
25
3.1.3.
Camino de Datos
26
3.1.4.
26
3.1.5.
Perifricos diversos
27
3.1.6.
28
3.1.7.
28
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 2 de 82
29
30
Hotpotatoes
30
5. APLICACIONES
30
30
5.1.1.
Descripcin
30
5.1.2.
Desarrollo
31
33
5.2.1.
Descripcin
33
5.2.2.
Desarrollo
33
36
5.3.1.
Descripcin
36
5.3.2.
Desarrollo
36
38
5.4.1.
Descripcin
39
5.4.2.
Desarrollo
40
43
5.5.1.
Descripcin
43
5.5.2.
Desarrollo
44
47
5.6.1.
Descripcin
47
5.6.2.
Desarrollo
48
51
5.7.1.
Descripcin
52
5.7.2.
Desarrollo
52
57
5.8.1.
Descripcin
57
5.8.2.
Desarrollo
58
Descripcin
5.9.2.
Desarrollo
61
61
62
66
5.10.1. Descripcin
66
5.10.2. Desarrollo
67
75
5.11.1. Descripcin
75
5.11.2. Desarrollo
75
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 3 de 82
76
77
6. MANUAL DE USUARIO
78
6.1. REQUERIMIENTOS
78
78
6.3. ACCESO
81
81
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 4 de 82
1.1. ENUNCIADO.
Se redacta el siguiente proyecto de ESTUDIO DEL MICROCONTROLADOR
AVANZADO DSPIC, atendiendo a la solicitud formulada por D. Francisco Plaza, por los
Ingenieros Tcnicos Industriales D. Mariano Del Campo Garca y D. Juan Jos Rodrguez
Vega.
El proyecto consta de varias partes:
- Realizacin de una pgina web en la que ira el estudio del dsPIC.
- Estudio terico del microcontrolador avanzado dsPIC.
- Cuestionario, que va incluido en la web, con auto corrector y seleccin de temas para
la evaluacin de los conocimientos tericos del estudio.
- Ejemplos prcticos sencillos de simulacin con Proteus de la familia dspic33f, para la
comprensin y estudio de los conocimientos tericos adquiridos en el proyecto.
1.2. OBJETIVO.
La finalidad de este proyecto, es que esta pgina web con su estudio del
microcontrolador avanzado dsPIC, sirva como mdulo formativo para estudiantes de ingeniera,
y en especial a los de la rama de electrnica industrial; estudiantes que quieran introducirse en
el mundo de los controladores digitales de seal (DSC), como apoyo para impartir una
asignatura libre/optativa o para algn curso especializado; en la que el estudiante, con esta
web pueda autnomamente aprender a programar y conocer ms o menos en profundidad
estos microcontroladores especiales.
Este proyecto, que se ve materializado en una web, es el conjunto de muchos
manuales, tutoriales, libros, pginas web, trabajo y dedicacin de dos estudiantes de Ingeniera
Tcnica con especialidad en electrnica industrial.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 5 de 82
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 6 de 82
Index
-
Mundo dsPIC
Familia dsPIC30F
Familia dsPIC33F/E
Arquitectura interna
Memorias
Memoria de Datos
Direccionamiento modular
Inversin de acarreo
Memoria de Programa
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 7 de 82
Camino de Datos
ALU de 16 bits
Motor DSP
Sumador/Restador de 40 bits
Acumuladores de 40 bits (A y B)
Lgica de redondeo
Lgica de saturacin
Unidad de divisin
Puertas E/S
Perifricos integrados
Temporizadores
Mdulo Timer 1
Mdulo de Captura
Mdulo de Comparacin/PWM
Mdulos de Comunicacin
Mdulo UART
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 8 de 82
Mdulo SPI
Mdulo IC
Mdulo CAN
Mdulo DCI
Mdulo QEI
El sistema Oscilador
El sistema de Reset
Interrupciones y excepciones
Descargas
Una cabecera (header) en la que incluimos el ttulo Estudio del dsPIC y una imagen que
describe grficamente que el dsPIC es un dispositivo hbrido formado por un MCU de 16
bits y un DSP de gama media/baja.
Posteriormente creamos una regin editable (tambin dentro del body), que ser la parte
de la plantilla que podr ser editada cuando creemos las correspondientes pginas (HTML)
de la WEB basndonos en la plantilla, y adems, tambin creamos unas regiones
opcionales en las que incluimos los botones de:
-
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 9 de 82
Ir Arriba.
Cuestionario.
Los botones, dotados de imgenes decorativas, sern incluidos en las pginas en las que
sea necesario.
Por ltimo, y no menos importante, hemos creado un pie de pgina (footer) en el que
incluimos las imgenes corporativas de la Universidad de Valladolid (UVA) y de la Escuela
de ingenieras Industriales (EII), en las cuales insertamos un Link para acceder de manera
rpida a las paginas oficiales de ambos estamentos. Tambin incluimos los nombres de los
dos diseadores de la WEB, un validador CSS y la licencia de la WEB (Creative
Commons).
Una vez descrito el contenido de la WEB pasamos a comentar el desarrollo de las
mltiples pginas incluidas en la WEB, para ello nos sobra con hacer una descripcin general
de ellas, pues funcionan todas de la misma manera, excepto que poseen diferentes contenidos
de texto, imgenes, tablas, enlaces y en algn caso videos en formato FLASH.
Todas las pginas estn basadas en HTML 1.0 transicional, creadas a travs de la plantilla
que hemos descrito anteriormente, en las que incluimos bsicamente texto e imgenes
para describir cada apartado correctamente.
Nos hemos limitado a trabajar con tablas para centrar las imgenes y los videos con mayor
sencillez y comodidad (no incluimos etiquetas DIV para el posicionamiento).
Por ltimo y como pilar central del diseo, hemos trabajado con estilos CSS especficos,
creados para cada tipo de objeto insertado en la WEB (texto, imgenes, videos,
linksetc.).
Con todo esto tenemos una WEB sencilla, fcil de manejar y modificar, en la que
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 10 de 82
Estilos.css: Incluye los estilos creados para el diseo general de la WEB (textos,
imgenes, vdeos, tablasetc.).
Servidor Local lanzado desde Dreamweaver: Se trata de un servidor llamado Apache con
licencia GNU (gratuito y de cdigo abierto), incluido en el paquete de aplicaciones del
programa XAMPP, utilizado para trabajar con nuestro sitio de manera local. Ver Img. 2.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 11 de 82
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 12 de 82
Para conectar con el sitio remoto, es necesario introducir los siguientes campos dentro
del cliente FTP FileZilla (proporcionados por nuestro proveedor de almacenamiento WEB, en
nuestro caso Hostinger):
Contrasea: dsPIC2012
Por ltimo cabe decir que nuestra pgina WEB ha sido probada en los siguientes
navegadores WEB: Internet Explorer, Google Chrome y Firefox. El nico navegador que nos
respeta la pgina tal cual la hemos creado es el Google Chrome, los dems navegadores crean
pequeos errores en la reproduccin de los videos FLASH y en la ejecucin de los
cuestionarios.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 13 de 82
ms
recurridas
(evitar
enlaces
rotos,
cumplimiento
de
estndares,
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 14 de 82
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 15 de 82
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 16 de 82
de los
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 17 de 82
2.10.1. DREAMWEAVER.
Adobe Dreamweaver CS5.5 es una aplicacin en forma de estudio (basada en la
forma de estudio de Adobe Flash) que est destinada a la construccin, diseo y edicin de
sitios, videos y aplicaciones Web basados en estndares. Creado inicialmente por Macromedia
(actualmente producido por Adobe Systems) es el programa ms utilizado en el sector del
diseo y la programacin web, por sus funcionalidades, su integracin con otras herramientas
como Adobe Flash y, recientemente, por su soporte de los estndares del World Wide Web
Consortium.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 18 de 82
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 19 de 82
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 20 de 82
2.10.3. FILEZILLA.
FileZilla es un cliente FTP multiplataforma de cdigo abierto y software libre, licenciado
bajo la Licencia Pblica General de GNU. Soporta los protocolos FTP, SFTP y FTP sobre
SSL/TLS (FTPS).
Inicialmente fue diseado para funcionar en Microsoft Windows, pero desde la versin
3.0.0, gracias al uso de wxWidgets, es multiplataforma, estando disponible adems para otros
sistemas operativos, entre ellos GNU/Linux, FreeBSD y Mac OS X.
Caractersticas:
Administrador de sitios: permite a un usuario crear una lista de sitios FTP con sus datos
de conexin, como el nmero de puerto a usar, o si se utiliza inicio de sesin normal o
annima. Para el inicio normal, se guarda el usuario y, opcionalmente, la contrasea.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 21 de 82
se
actualiza
regularmente
para
incorporar
las
ltimas
versiones
de
Este lenguaje se escribe a base de etiquetas delimitadas por corchetes angulares (< ,
>). Cuando se utiliza una etiqueta, habitualmente debe utilizarse otra de cierre, la cual
antepondr el smbolo de barra ( / ). Sirva un ejemplo:
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 22 de 82
El diseo en HTML debe respetar unos criterios de accesibilidad web, siguiendo unas
pautas o normativas. Se encuentra disponible y desarrollado por el W3C a travs de las Pautas
de Accesibilidad al Contenido Web 1.0 WCAG (actualizadas recientemente con la
especificacin 2.0).
2.11.2. CSS.
El lenguaje HTML est algo limitado si queremos emplearlo para definir la forma de un
documento, ya que no fue concebido precisamente para este fin. Aun as, durante mucho
tiempo los diseadores han debido recurrir a trucos para salvar esta dificultad, causando a
menudo problemas en las pginas a la hora de su visualizacin en distintas plataformas.
CSS u hojas de estilo en cascada (Cascading Style Sheets), es un lenguaje usado para
definir la presentacin de un documento estructurado escrito en HTML. Lo que se pretende con
esta tecnologa es separar la estructura de una pgina web de su presentacin, esto es, el
contenido en s a mostrar de la forma con que se desea que aparezca.
CSS puede incorporarse en el mismo documento HTML o bien adjuntarse como un
documento por separado (obviamente el documento HTML deber entonces referenciarle).
Enumeraremos algunas de las ventajas de CSS:
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 23 de 82
Una misma pgina Web puede ser mostrada de forma correcta en diversos
dispositivos de salida: un mvil, una impresora, una PDA. Para ello bastar con
sustituir la hoja de estilo empleada.
2.11.3. JAVASCRIPT.
JavaScript es un lenguaje de scripting, esto es, un archivo de rdenes, generalmente
almacenado en formato de texto plano, que representa a un programa habitualmente de
complejidad sencilla que puede efectuar diversas tareas como combinar componentes o bien
interactuar con el sistema operativo o con el usuario, motivo por el que es frecuentemente
recurrido para disear interfaces de usuario.
JavaScript es interpretado por la amplia totalidad de navegadores web modernos.
Puede incluirse en cualquier documento y es compatible con HTML en el navegador del cliente.
La W3C define que el mtodo ptimo para utilizar JavaScript es incluirlo en un archivo externo,
por razones de accesibilidad y rendimiento.
Fue desarrollado por Brendan Eich de Netscape con el nombre de Mocha, el cual fue
renombrado posteriormente a LiveScript, para finalmente quedar como JavaScript coincidiendo
con el anuncio de que Netscape soportara oficialmente Java en su, por aquel tiempo, popular
navegador web, estrategia que no estuvo exenta de algunas polmicas. Para el portal objeto de
estudio, JavaScript ser utilizado principalmente para hacer emerger una sub-ventana o
ventana-hija, por ejemplo, para mostrar la calificacin obtenida en los cuestionarios.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 24 de 82
Memoria de Datos.
3.1.2.
Memoria de Programa.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 25 de 82
Camino de Datos.
3.1.4.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 26 de 82
Perifricos diversos.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 27 de 82
3.1.6.
3.1.7.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 28 de 82
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 29 de 82
4.1.1. HOTPOTATOES.
Hot Potatoes es un sistema para crear ejercicios educativos que pueden realizar
posteriormente a travs de la web. Los ejercicios que crea son del tipo respuesta corta,
seleccin mltiple, rellenar los huecos, crucigramas, emparejamiento y variados.
Su licencia no es libre, pero a partir del 1 de septiembre de 2009 se distribuye la
versin sin limitaciones a travs de la seccin descargas de su sitio web.
Hot Potatoes est creado por el centro de humanidades y computacin de la
Universidad de Victoria, en Canad. Para asuntos comerciales se ha creado la empresa HalfBaked Software Inc.
Se han observado ciertas incompatibilidades con algunos navegadores como Firefox.
5. APLICACIONES.
Un desarrollo de estas caractersticas, el estudio del microcontrolador dsPIC, donde
toda la explicacin del dispositivo est basada en nombres de registros, modos de
funcionamiento y distintas maneras de configurar los terminales, se hace muy complicado de
entender y asimilar sin un ejemplo prctico que muestre la manera de programar y porque no,
de funcionar.
A travs de unos ejercicios sencillos vamos explicar por separado cada perifrico y
cada mdulo del microcontrolador dsPIC, para conocer su funcionamiento, la forma de
programarlo e inicializarlo y las posibles aplicaciones reales en las que puede ser utilizado.
5.1.1 DESCRIPCIN.
La aplicacin consta de un interruptor conectado a una entrada y un LED conectado a
una salida del dispositivo. Cada vez que se accione el interruptor, el LED se iluminar (ver Fig.
1).
Este es un ejemplo que aunque sencillo y obvio es necesario para comenzar, puesto
que lo primero que se utiliza en un cualquier montaje digital son las entradas y salidas, porque
para cualquier programacin o configuracin del microcontrolador necesitaremos conectar
tanto seales analgicas (Ej.: sensor de temperatura) como digitales (Ej.: seal de reloj) a una
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 30 de 82
5.1.2 DESARROLLO.
La aplicacin la hemos desarrollado con el microcontrolador dsPIC33FJ12MC202,
puesto que en PROTEUS la familia del dsPIC30F no existe. En este dispositivo, solo tenemos
dos puertas (A y B), pero para la aplicacin que vamos a desarrollar nos vale.
Como hemos explicado antes, el programa va a constar de una entrada (con un
interruptor) y una salida (con un LED), pues lo primero que necesitamos saber es como se
configura el dispositivo para que un determinado terminal de puerta se comporte como entrada
o salida de datos. Todo esto se realiza configurando el registro de control TRISx: la x
determina la puerta con la que estamos trabajando (A, B, , G) y con los bits asociados al
registro elegimos si el terminal de puerta es de entrada o salida. El registro de control TRISx es
de 16 bits, cada bit corresponde a un terminal de la puerta x respetando el peso. El bit 0 ser
corresponde con el terminal Rx0 y el bit 15 corresponde con el terminal Rx15 (No todas las
puertas estn dotadas de 16 terminales). Si el bit es 1 el terminal de puerta estar
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 31 de 82
Cdigo generado:
#include<33FJ12MC202.h>
#fuses XT // Oscilador de cristal para frecuencias entre 4Mhz y 10Mhz.
#fuses NOWDT // Sin Perro Guardin (WDT).
#use delay( clock = 4000000 ) // Reloj de 4 MHz.
void main() // Funcin principal.
{
set_pullup(TRUE); // Habilitacin resistencias Pull-up.
set_tris_b(0x01); // RB0 como entrada y RB1 como salida.
output_low(PIN_B1); //Establecer RB1 a nivel bajo (LED apagado).
while(1) //Bucle infinito.
{
if (input(PIN_B0)== 1) // Si RB0 est a nivel alto.
output_low(PIN_B1); // Ponemos RB1 a nivel bajo (LED apagado).
else output_high(PIN_B1); // En caso contrario RB1 a nivel alto (LED encendido).
}
}
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 32 de 82
5.2.1 DESCRIPCIN.
El Timer1 es un temporizador de 16 bits que puede servir como contador de tiempo
real, o como un temporizador libre de intervalos/contador. En esta prctica vamos a utilizar el
timer1 en modo temporizador de 16bits, el temporizador (registro TMR1) se incrementa en cada
ciclo de instruccin hasta el valor precargado en el registro de periodo PR1, luego se pone a
0y sigue contando. Se pueden provocar una interrupcin cuando hay una coincidencia entre
el valor del temporizador (registro TMR1) y el registro de perodo PR1 de 16 bits, si adems el
respectivo bit de indicacin de interrupcin T1IF del registro IFS0 est activado.
Ahora bien, por defecto el registro de periodo PR1 = FFFFh = 65536d, por lo que
debemos precargar un valor en el registro temporizador TMR1 para que podamos temporizar
un segundo. Emplearemos el dsPIC33fj12MC202 para la simulacin en PROTEUS y
mostraremos como resultado, mediante un reloj/cronometro, el tiempo temporizado para
comprobar el resultado (Ver FIG.2).
5.2.2. DESARROLLO.
Para empezar el desarrollo del cdigo, debemos tener en cuenta las posibilidades del
temporizador y a partir de ah estudiar las posibilidades para llevarlo a cabo. Lo primero que
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 33 de 82
El timer1 se desborda cuando los valores de los registros TMR1 y PR1 coinciden, es
decir cuando pasamos del valor precargado en TMR1 a FFFFh=65536d (valor por
defecto del registro PR1).
Reloj interno de 4 MHz (elegido por nosotros) Tcy = 250ns = 1/4 MHz (Tiempo de
Ciclo de instruccin).
El timer1 dispone de los siguientes Prescaler: 1, 8, 64, 256. Con los cuales podemos
calcular las mximas temporizaciones de interrupcin para reloj interno de 4 MHz,
atendiendo a la siguiente ecuacin:
El nmero total de incrementos del temporizador (registro TMR1) necesarios para llegar
a la temporizacin deseada se calcula con la siguiente ecuacin:
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 34 de 82
Para que el programa repita dos veces la temporizacin de 0,5s y completar as una
temporizacin de un segundo, solamente necesitaremos un bucle if que repita dos veces la
temporizacin de 0,5s dentro de la rutina de atencin a la interrupcin (ISR) del Timer1.
Cdigo generado:
#include<33FJ12MC202.h>
#fuses XT // Oscilador de cristal para frecuencias entre 4Mhz y 10Mhz.
#fuses NOWDT // Sin Perro Guardin (WDT).
#use delay( clock = 4000000 ) // Reloj de 4 MHz.
#use standard_io(b) // Hace que un terminal de E/S sea entrada o salida cada vez que se utiliza.
int1 cont=0;
#int_TIMER1 // Rutina de atencin a la interrupcin del Timer1 (ISR).
void TIMER1_isr(void) // Funcin de la interrupcin por desbordamiento del timer1.
{
if (cont==1) output_toggle(PIN_B1); // Cada 2 interrupciones de 0.5s (1s) se conmuta la salida RB1.
set_timer1 (34286); // Recarga del TMR1.
cont++; // Incremento del contador.
}
void main() // Funcin principal.
{
setup_timer1 (TMR_INTERNAL | TMR_DIV_BY_64); // Reloj interno y preescaler de 64.
set_timer1 (34286); // Recarga del TMR1.
enable_interrupts(INT_TIMER1); // Habilita la interrupcin del timer1.
enable_interrupts (INTR_GLOBAL); // Habilita la interrupcin general.
while(1); // Bucle infinito.
}
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 35 de 82
5.3.1. DESCRIPCIN:
En el modo de temporizador de 32 bits, que es el modo que vamos a utilizar en esta
prctica, el temporizador se incrementa en cada ciclo de instruccin hasta el valor cargado
previamente en el registro de periodo combinado PR3/PR2 de 32 bits, posteriormente se
reinicia a 0y continua contando.
Vamos a realizar una temporizacin de 2,5s, el circuito dispone de un diodo LED que
se iluminara durante dicha temporizacin, mediante la ISR (rutina de atencin a la interrupcin)
de la interrupcin por desbordamiento del timer3, en la que cambiamos el estado del terminal
RB8 que est conectado al LED. Emplearemos el dsPIC33FJ12MC202 para la simulacin en
PROTEUS y mostraremos como resultado, mediante un reloj/cronometro, el tiempo
temporizado para comprobar el resultado (Ver FIG.3).
5.3.2 DESARROLLO:
Como en el ejemplo anterior de la temporizacin de un segundo, para afrontar el
cdigo, necesitaremos estudiar las formulas y posibilidades del temporizador 32 para hacer una
seleccin del valor precarga que nosotros en este ejemplo llamaremos period.
El registro del temporizador timer aumenta su cuenta en uno cada Tcy (tiempo de
ciclo de instruccin) desde 0hasta el valor precargado en el registro period de 32 bits.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 36 de 82
Cdigo generado:
#include <p33FJ12MC202.h>
#include <timer.h> // Librera para poder usar los temporizadores.
_FGS(GCP_OFF & GWRP_OFF); // Configuracin para proteccin de RAM.
//GCP_OFF --> Memoria de usuario de programa no est como cdigo protegido.
//GWRP_OFF --> Memoria de usuario de programa no est protegida contra escritura.
_FWDT(FWDTEN_OFF); // Configuracin para seleccin de Watchdog.
//FWDTEN_OFF --> Temporizador Watchdog activado/desactivado por el usuario mediante software.
_FOSCSEL(FNOSC_PRI); // Configuracin para seleccin de oscilador.
//FNOSC_PRI --> Oscilador Primario (XT, HS, EC).
_FOSC(FCKSM_CSDCMD & POSCMD_XT); // Configuracin para seleccin de oscilador.
//FCKSM_CSDCMD --> Conmutacin de fuente de reloj y monitorizacin de fallo de reloj deshabilitadas.
//POSCMD_HS --> Modo de Oscilador XT.
/****************************************************************** */
void __attribute__((interrupt,auto_psv)) _T3Interrupt(void)
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 37 de 82
// Esta funcin escribe un valor de 32 bits dentro del registro "Timer" del temporizador
while(1){};
}
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 38 de 82
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 39 de 82
Cdigo generado:
#include <p33FJ12MC202.h>
#define FCY 4000000UL // Definimos el ciclo de trabajo para poder utilizar los Delays (retardos).
#include <libpic30.h> // Librera para los Delays (retardos).
_FOSCSEL(FNOSC_PRIPLL); // Oscilador Primario (XT, HS, EC) con circuito PLL.
_FOSC(FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMD_XT);
// FCKSM_CSDCMD --> Cambio de reloj y monitorizacin de reloj deshabilitados.
// OSCIOFNC_OFF --> La funcin del terminal OC2 es la de reloj.
// POSCMD_XT --> Oscilador XT.
_FWDT(FWDTEN_OFF); // Perro Guardin deshabilitado.
void init_clock(void)
{
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 40 de 82
void init_leds(void)
{
unsigned int i;
TRISB = 0xFF00; // Terminales RB0...RB7 configurados como salidas.
LATB = 0xFF00; // Terminales RB0...RB7 puestos a '0'.
for(i=0; i<3; i++) // Bucle que enciende y apaga 3 veces todos los LEDs para comprobar que funcionan.
{
LATB = 0xFFFF; // Encendemos todos los LEDs.
__delay_ms(500); //Retardo de 0.5 segundos.
LATB = 0xFF00; // Apagamos todos los LEDs.
__delay_ms(500); //Retardo de 0.5 segundos.
}
}
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 41 de 82
void volts_value_to_leds(void)
{
unsigned int scala,leds;
scala = (unsigned int) volts_value * 0x0007 / 0x0C00; // Conversin del valor muestreado a un valor decimal
comprendido entre 0 y 8.
leds = scala; // Actualizacin del valor de la variable 'leds'.
LATB = 0xFF00; // Apagamos todos los LEDs.
// Dependiendo del valor de la variable 'leds' encendemos mayor o menor nmero de LEDs.
if(leds>0) LATB += 0b00000001; // RB0 =1;
if(leds>1) LATB += 0b00000010; // RB1 =1;
if(leds>2) LATB += 0b00000100; // RB2 =1;
if(leds>3) LATB += 0b00001000; // RB3 =1;
if(leds>4) LATB += 0b00010000; // RB4 =1;
if(leds>5) LATB += 0b00100000; // RB5 =1;
if(leds>6) LATB += 0b01000000; // RB6 =1;
if(leds>7) LATB += 0b10000000; // RB7 =1;
}
int main(void)
{
RCONbits.SWDTEN = 0; // Desactivar el temporizador del perro guardin WDT.
init_clock(); // Funcin que inicializa el reloj del sistema.
init_leds(); // Funcin que inicializa el PUERTO B conectado a los LEDs.
init_ADC(); // Funcin que inicializa el Mdulo ADC.
// Bucle infinito
while(1)
{
if(flag_volts_value == 1)
{
flag_volts_value = 0;
volts_value_to_leds(); // Funcin que enciende los LEDs dependiendo del valor digital obtenido del
conversor A/D.
}
}
}
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 42 de 82
5.5.1 DESCRIPCIN.
Para esta prctica vamos a utilizar el mdulo de captura en modo de captura simple en
cada flanco de bajada de la seal introducida por el terminal IC1.
Se generara una interrupcin cada vez que se produce un flanco de bajada, y se
activara o desactivara un LED que est conectado al terminal de salida RB3 (alarma) si el valor
acumulado en el registro de temporizacin del timer3 es mayor al que nosotros programemos.
Para la seal de entrada por el terminal IC1, hemos elegido un generador de seales
digitales de un nico flanco, en el que podemos elegir el periodo del flanco y elegir si queremos
flanco descendente o ascendente, a parte de otras muchas funcionalidades de este dispositivo
que para esta prctica no usaremos. El montaje del circuito en PROTEUS sera: Ver fig.5
5.5.2 DESARROLLO:
Como en el resto de programas empezamos configurando los puertos: con el bit
ICTMR que est dentro del registro IC1CONbits elegiremos el TIMER a usar para medir la
temporizacin, en este caso elegimos el TIMER3. Dentro de ese mismo registro, configuramos
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 43 de 82
Hemos comprobado que esos 550us a la hora de simular se nos convierten en 638us
debido a retardos de inicializacin tanto del TIMER3 como del mdulo de captura, los tiempos
de retardo producidos en la simulacin y en la propia ejecucin de las secuencias del
programa. La seal resultante sera la siguiente:
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 44 de 82
Cdigo generado:
#include <p33FJ12MC202.h>
/*****************PROTOTIPADO DE FUNCIONES****************
**************************************************************************/
void ConfigPort (void);
void ConfigTMR3 (void);
void ConfigOSC (void);
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 45 de 82
// Apagamos el Timer3.
// Fuente interna de reloj (FOSC/2)--> 8.20 MHz/2= 4.10 MHz.
// Acumulacin de tiempo en puerta deshabilitado.
// Valor del preescaler igual a 0.
// Encendemos el Timer3.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 46 de 82
5.6.1 DESCRIPCIN:
Vamos a desarrollar en esta prctica el mdulo de comparacin de salida en Modo de
Pulso Continuo para generar una onda cuadrada del 50% del ciclo de trabajo, 5 Voltios de pico
a pico y con una frecuencia de 40Khz f = 1/(PR3*TCY) = 1/(200*125ns) = 1/25s= 40Khz.
Para configurar el mdulo de comparacin para la generacin de una corriente continua de
pulsos en su salida, es necesario seguir los siguientes pasos:
Calcular el valor deseado del ancho de pulso basado en TCY (Ancho = 100 TCY).
Asignar el ancho del pulso de inicio y fin en los registros de comparacin (OCxR y
OCxRS respectivamente, donde x denota el canal 1,2,, N).
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 47 de 82
5.6.2 DESARROLLO:
Dentro del programa principal (main) configuramos el oscilador y el circuito PLL, para
16 MHz. En el datasheet encontramos:
PLLPRE<4:0>(CLKDIV<4:0>)=01000 N1=ENTRADA/10
PLLPOST<1:0>(CLKDIV<7:6>)=01N2=SALIDA/4
PLLDIV<8:0>=0X0A0160 EN DECIMAL
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 48 de 82
Inicializamos el valor del registro de periodo PR3 con el valor en decimal 200 (0xC8 h)
y configuramos el valor del temporizador 3 a 0 (TMR3=0x0000). A continuacin encendemos
el temporizador 3 (TON=1).
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 49 de 82
Cdigo generado:
#include <p33FJ12MC202.h>
#include <outcompare.h>
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 50 de 82
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 51 de 82
5.7.1 DESCRIPCIN:
Vamos a configurar el mdulo PWM para generar una onda cuadrada del 50% del ciclo
de trabajo, 1,22 Khz de frecuencia, 5 voltios de pico a pico (5 Vpp) y 13 bits de resolucin.
La salida complementaria PWM1H y PWM1L va a ir conectada a un motor de corriente
continua y a su vez conectaremos el terminal PWM1H a un osciloscopio digital para comprobar
la forma de onda generada. El circuito en PROTEUS es el siguiente. Ver Fig.7.
5.7.2 DESARROLLO:
En esta prctica incluimos la librera <pwm12.h> en la que estn todas las funciones
configuradas del mdulo PWM tanto para el dspic30fxxx como para el dspic33fxxx.
Incluimos oscilador primario sin PLL, conmutacin de reloj y monitorizacin de fallo de
reloj deshabilitados y deshabilitamos el perro guardin (WDT).
Lo primero es declarar y configurar las variables que vamos a utilizar dentro de las
funciones del mdulo PWM (<pwm12.h>):
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 52 de 82
period: Contiene el valor del tiempo base del periodo de la seal PWM
(Registro PTPER).
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 53 de 82
Donde:
Luego:
Resolucin:
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 54 de 82
Donde:
Luego:
Cdigo generado:
#include <p33FJ12MC202.h>
#include <pwm12.h>
_FOSCSEL(FNOSC_PRI); // Oscilador Primario (XT, HS, EC) sin PLL.
_FOSC(FCKSM_CSDCMD & POSCMD_XT);
// FCKSM_CSDCMD --> Conmutacin de reloj y Monitorizacin de fallo de reloj deshabilitados.
// POSCMD_XT --> Oscilador XT (10MHz).
_FWDT(FWDTEN_OFF); // Watchdog deshabilitado.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 55 de 82
&
PWM1_FLTA_INT_PR0
&
ConfigIntMCPWM1(config); // Esta funcin configura las interrupciones y el nivel de prioridad para el mdulo
PWM.
// PWM1_INT_EN --> Interrupciones PWM habilitadas.
// PWM1_FLTA_DIS_INT --> Interrupcin por fallo en el terminal A deshabilitada.
// PWM1_INT_PR1 --> Prioridad '0' de interrupcin PWM.
// PWM1_FLTA_INT_PR0 --> Prioridad '0' de interrupcin por fallo en el terminal A.
// PWM1_FLTB_DIS_INT --> Interrupcin por fallo en el terminal B deshabilitada.
// PWM1_FLTB_INT_PR0 --> Prioridad '0' de interrupcin por fallo en el terminal B.
//Configuracin del mdulo PWM para generar una onda cuadrada del 50% del ciclo de trabajo.
dutycyclereg = 1; // Puntero al Registro de ciclo de trabajo.
dutycycle = 0x7FE; // Valor del ciclo de trabajo PWM (Registro PDC1)--> 2046 d.
updatedisable = 1; // Actualizacin del ciclo de trabajo habilitada.
SetDCMCPWM1(dutycyclereg,dutycycle,updatedisable); //Esta funcin configura los registros del ciclo de
trabajo y el bit de actualizacin "PWM Update" del registro PWMCON2.
period = 0x7FE; // Valor del tiempo base del periodo de la seal PWM (Registro PTPER) --> 2046 d.
sptime = 0x0; // Valor de los bits de la comparacin de eventos especiales (Registro SEVTCMP).
config1 = (PWM1_EN & PWM1_IDLE_STOP & PWM1_OP_SCALE1 & PWM1_IPCLK_SCALE1
PWM1_MOD_UPDN); //Registro PTCON
// PWM1_EN --> Habilitacin del Mdulo PWM.
// PWM1_IDLE_STOP --> Modo Idle deshabilitado.
// PWM1_OP_SCALE1 --> Postscaler de salida igual a 1:1.
// PWM1_IPCLK_SCALE1--> Preescaler de entrada igual a 1:1.
// PWM1_MOD_UPDN --> Modo de operacin PWM: Modo continuo Ascendente/Descendente.
&
config2 = (PWM1_MOD1_COMP & PWM1_PDIS3H & PWM1_PDIS2H & PWM1_PEN1H & PWM1_PDIS3L &
PWM1_PDIS2L & PWM1_PEN1L);// Registro PWMCON1.
// PWM1_MOD1_COMP --> Primer canal en modo de salida complementario.
// PWM1_PDIS3H y PWM1_PDIS2H --> Terminales que trabajan como E/S de propsito general.
// PWM1_PDIS3L y PWM1_PDIS2L --> Terminales que trabajan como E/S de propsito general.
// PWM1_PEN1H --> Terminal que trabaja como salida a nivel alto del mdulo PWM.
// PWM1_PEN1L --> Terminal que trabaja como salida a nivel bajo del mdulo PWM.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 56 de 82
Las velocidades de transmisin varan desde 38 bps hasta 2.5Mbps a una velocidad de
instruccin de 30 MHz.
5.8.1 DESCRIPCIN:
En esta prctica utilizamos el mdulo UART para leer y escribir por el canal serie,
incorporamos al dsPIC33FJ12MC202 un terminal virtual que nos mostrara los siguientes
mensajes:
Transmisin UART va dsPIC33FJ12MC202.
"Pulsa un carcter para provocar la interrupcin UART: ".
Al pulsar cualquier carcter del teclado, el dsPIC devolver ese carcter (con el que hemos
provocado la interrupcin) al terminal virtual con el mensaje:
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 57 de 82
5.8.2 DESARROLLO:
Se aade al fichero la librera uart.h en la que se incluyen unas estructuras de
funciones predefinidas en memoria para la configuracin y manejo del mdulo UART, adems
de la manera de programar dichas funciones.
Declaramos el oscilador FRC interno con PLL, deshabilitamos el Oscilador primario y el
cambio de reloj, y configuramos la velocidad de la transmisin serie (baudios).
Declaramos tres funciones incluidas en la librera uart.h, para la escritura y
configuracin del mdulo UART:
void putUART1(char c) Para escribir un nico carcter en el registro U1TXREG.
void putsUART1(char *s) Para escribir una cadena de caracteres en el registro
U1TXREG.
void InitUART1() Para configurar el mdulo UART de la siguiente manera: 1 bit de
parada (stop), sin paridad, 8 bits de datos, interrupcin despus de transmitir un
carcter, adems de la propia configuracin de los terminales de entrada y salida as
como la configuracin de las interrupciones.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 58 de 82
Cdigo generado:
#include <p33FJ12MC202.h>
#include <uart.h>
_FOSCSEL(1);
_FOSC (195);
#define FCY
#define BAUDRATE
#define BRGVAL
unsigned char CHAR_RECUART; // Variable para guarda los caracteres recibidos por el terminal U1TX.
/***************************Funciones para la transmisin de Caracteres******************************/
void putUART1(char c){
while ( U1STAbits.UTXBF); // Espera mientras el buffer de transmisin est lleno.
U1TXREG = c;
}
void putsUART1(char *s){
unsigned int i=0;
while(s[i]) // Se repite hasta el final de la cadena (*s == \0).
putUART1(s[i++]); // Enva un carcter y se posiciona para enviar el siguiente.
}
/**********************Interrupcin Por Recepcin (Rx)*****************************/
void __attribute__ ((interrupt, no_auto_psv)) _U1RXInterrupt(void){
CHAR_RECUART = U1RXREG;
char frase[] = {'I','N','T','E','R','R','U','P','C','I','O','N',' ','>','>',' ','C','A','R','A','C','T','E','R',' ','\0'};
char salto[] = {'\n','\r','\0'};
putsUART1(frase); // Escribimos la frase.
putUART1(CHAR_RECUART); // Devuelvo como eco el valor pulsado.
putsUART1(salto); //Salto de lnea.
IFS0bits.U1RXIF = 0; // Borramos el flag de interrupcin.
if(U1STAbits.OERR) U1STAbits.OERR=0; // Para que nunca haya desbordamiento.
}
/*****************Inicializar UART********************************/
void InitUART1(){
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 59 de 82
// 1 bit de parada .
// Sin paridad, 8 bits de datos .
// Auto-Baud Deshabilitado .
// Modo de baja velocidad .
// Configuracin del BAUD Rate .
// Interrupcin despus de que un carcter es transmitido.
// Interrupcin en la transmisin deshabilitada.
// Flag de Interrupcin en la recepcin borrado.
// Interrupcin en la recepcin habilitada.
// Mdulo UART habilitado.
// Terminal Tx habilitado.
// Terminal Rx habilitado.
// Interrupt Rx Mayor prioridad.
}
/*****************************Main********************************/
int main (void){
CLKDIVbits.PLLPRE = 4;
// Divisor PLL_1 por 6.
CLKDIVbits.PLLPOST = 0;
// Divisor PLL_2 por 2.
PLLFBD = 128;
// Multiplicador PLL por 130.
OSCTUN = 0;
// Frecuencia del FRC 7.37 MHz.
// Desbloqueo el remapeo de terminales.
__builtin_write_OSCCONL(OSCCON & 0xbf);
// Mapeo el terminal de salida U1TX al terminal RP14.
RPOR7bits.RP14R = 3;
// Mapeo el terminal de entrada U1RX al terminal RP15.
RPINR18bits.U1RXR = 15;
// Bloqueo el mapeo de terminales.
__builtin_write_OSCCONL(OSCCON | 0x40);
InitUART1();
unsigned char mytext1[] = "Transmisin UART va dsPIC33FJ12MC202";
unsigned char mytext2[] = "Pulsa un caracter para provocar la interrupcin UART: ";
// Cabecera que se muestra con el encendido del terminal virtual.
putsUART1(mytext1);
putsUART1("\r\n");
putsUART1("\r\n");
putsUART1(mytext2);
putsUART1("\r\n");
putsUART1("\r\n");
while(1){
// Esperando la interrupcin de Rx
}
}
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 60 de 82
5.9.1 DESCRIPCIN:
En este ejemplo vamos a realizar una comunicacin serie mediante el mdulo SPI
(interfaz de perifricos serie) del dsPIC33FJ12MC202, y el depurador SPI de PROTEUS.
El programa enva por el terminal SDO1 del mdulo SPI los nmeros del 0 al 255 (00 al
FE) repetidamente y el depurador SPI les recibe (mediante una transmisin de 8 bits). En esta
comunicacin el dispositivo maestro es el propio dsPIC y el dispositivo esclavo es el depurador
SPI de PROTEUS.
El circuito en PROTEUS es el siguiente. Ver Fig.9.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 61 de 82
5.9.2 DESARROLLO:
Aadimos al proyecto el oscilador primario FRC, conmutacin de reloj habilitada,
monitorizacin de fallo de reloj deshabilitada, modo del oscilador primario con Cristal XT y perro
guardin habilitado/deshabilitado por el usuario mediante software.
Creamos tres funciones auxiliares para el control del mdulo SPI:
Dentro del programa principal (main), configuramos el PLL del oscilador y el PUERTO
B a nuestras necesidades, adems de hacer un remapeo de terminales como en prcticas
anteriores:
o
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 62 de 82
Escribe el dato fuera del mdulo SPI (A travs del terminal SDO1).
El valor 255 se lo programamos manualmente dentro del bucle for, para que cuente
hasta ese valor.
El retado es de 12,75us, un valor suficiente para permitir al mdulo SPI poder escribir
un dato en el registro SPI1BUF sin tener problemas con la transmisin del siguiente
dato.
Cdigo generado:
#include <p33FJ12MC202.h>
_FOSCSEL(FNOSC_FRC); // Oscilador Primario FRC.
_FOSC(FCKSM_CSECMD & POSCMD_XT);
// FCKSM_CSECMD --> Conmutacin de reloj habilitada, y monitorizacin de fallo de reloj deshabilitada.
// POSCMD_XT --> Modo del oscilador primario: Cristal XT.
_FWDT(FWDTEN_OFF); // Perro Guardin habilitado/deshabilitado por el usuario mediante software.
void write_SPI(short command) // Funcin que escribe en el registro SPI1BUF del mdulo SPI.
{
short temp;
PORTBbits.RB15 = 0;
// Lnea de seleccin esclavo (terminal SS1#) a nivel bajo (activada).
temp = SPI1BUF;
// Lectura del registro SPI1BUF para borrar la bandera SPIRBF.
SPI1BUF = command;
// Escribe el dato fuera del mdulo SPI (A travs del terminal SDO1).
while (!SPI1STATbits.SPIRBF); // Espera a que el dato sea enviado.
PORTBbits.RB15 = 1;
// Lnea de seleccin esclavo (terminal SS1#) a nivel alto (desactivada).
}
void delay(void) // Retardo equivalente a 255*Tcy = 12,75 us; donde Tcy = 1/(Fosc/2) = 1/ 20MHz = 50 ns.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 63 de 82
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 64 de 82
NOTA: Las interrogaciones (??) se deben a que el depurador SPI de PROTEUS nicamente
est recibiendo datos (no est enviando datos al dsPIC).
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 65 de 82
5.10.1. DESCRIPCION:
Vamos a emplear el mdulo de comunicacin I2C en modo maestro para grabar datos
en una memoria EEPROM.
En el modo transmisor Maestro, los datos serie son emitidos a travs del terminal
SDA1, mientras que el terminal SCL1 emite el reloj serie. El primer byte recibido es el byte de
comienzo de la transmisin (en este caso `A0) y nos sirve para comprobar que se ha iniciado
la transmisin. El segundo byte recibido es el byte de direccin ID de seleccin de dispositivo
(en este caso `11). Este contiene la direccin de esclavo del dispositivo de recepcin (7 bits) y
el bit de direccin de datos. En este caso el bit de direccin de datos (R_W) es de lgica
negativa.
Los datos serie son transmitidos en grupos de 8 bits (1 byte). Despus de la
transmisin de cada byte, un bit ACK es recibido. Las condiciones de Inicio y Parada se emiten
para indicar el principio y el fin de la transferencia serie.
La transmisin de un byte de datos o la transmisin de la direccin de 7 bits, se logra
simplemente escribiendo un valor en el registro de transmisin I2CTRN (en este caso escribe la
secuencia de datos: 00 01 02 03 04 05 06 07 08 09 en la memoria EEPROM 24LC256).
El usuario solo debe escribir en el registro de transmisin I2CTRN cuando el mdulo se
encuentra en un estado de inactividad (Idle). Esta accin activa el indicador de bfer completo
(TBF), y permite que el Generador de Baudios empiece a contar de forma decreciente (en este
caso desde 300 hasta 0) y que comience la siguiente transmisin.
Cada bit de direccin/datos se desplaza hacia afuera a travs del terminal SDA1
despus de que se haya producido el flanco de bajada de reloj (terminal SCL1). El resultado de
la transmisin lo podemos visualizar a travs del depurador I2C que PROTEUS nos ofrece. El
montaje del circuito en PROTEUS sera el siguiente. Fig.10.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 66 de 82
5.10.2. DESARROLLO
Incluimos un fichero de cabecera llamado i2cEmem.h en el que estn incluidas las
estructuras: I2CEMEM_DRV y I2CEMEM_DATA.
Como es necesario en cualquier prctica, configuramos el dispositivo con los FUSES
de configuracin de la siguiente manera:
Esclavo dentro de las cuales borramos sus respectivas banderas de interrupcin para que se
puedan seguir produciendo interrupciones cuando sea necesario.
Adems declaramos y programamos las dos funciones siguientes:
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 67 de 82
estados para el proceso de comunicacin serie del mdulo I2C con la EEPROM mediante una
estructura switch(case) y la variable de control state para saltar entre los diferentes estados
como se muestra a continuacin:
Inicializacin de comando:
o
Case 6: Buscar el final de los datos o la falta de la seal Ack, Si Ack no recibido
ir a bandera de error y salir. Si el contador llega al nmero de datos (7), parar
secuencia.
Parar secuencia:
o
Reintentar:
o
Por ltimo, dentro del programa principal, seguimos la siguiente secuencia de comandos:
Configuramos el oscilador para que el dispositivo opere a 40MHz.
Deshabilitamos el perro guardin.
Realizamos el cambio de reloj para incorporar el circuito PLL.
Inicializamos el mdulo I C y el accionamiento (Driver).
2
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 68 de 82
Cdigo generado:
#include "p33FJ12MC202.h"
#include "i2cEmem.h"
_FOSCSEL(FNOSC_FRC);
// Oscilador Primario: Oscilador Rpido RC.
_FOSC(FCKSM_CSECMD & POSCMD_XT);
// FCKSM_CSECMD --> Cambio de reloj habilitado.
// POSCMD_XT --> Oscilador XT.
_FWDT(FWDTEN_OFF);
// Perro Guardin habilitado/deshabilitado por el usuario mediante software.
_FPOR(FPWRT_PWR1);
// Temporizadores de encendido apagados.
_FGS(GCP_OFF);
// Proteccin de cdigo deshabilitada.
// Instancias de estructuras de accionamiento y Datos.
I2CEMEM_DRV i2cmem = I2CSEMEM_DRV_DEFAULTS; // Accionamiento --> Variable i2cmem de tipo
estructura I2CEMEM_DRV.
// I2CSEMEM_DRV_DEFAULTS { 0,\(I2CEMEM_DATA *)0,\(void (*)(void *))I2CEMEMinit,\(void (*)(void
*))I2CEMEMdrv}
I2CEMEM_DATA wData; // Datos --> Variable wData de tipo estructura I2CEMEM_DATA.
// Las dos estructuras de datos anteriormente mencionadas estn incluidas dentro del fichero de cabecera
"i2cEmem.h"
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 69 de 82
/*=============================================================================
Rutina de atencin a la interrupcin del Mdulo I2C Maestro
=============================================================================*/
void __attribute__((interrupt, no_auto_psv)) _MI2C1Interrupt(void)
{
jDone=1;
IFS1bits.MI2C1IF = 0;
// Bandera de la Interrupcin del mdulo I2C Maestro borrada.
}
/*=============================================================================
Rutina de atencin a la interrupcin del Mdulo I2C Esclavo
=============================================================================*/
void __attribute__((interrupt, no_auto_psv)) _SI2C1Interrupt(void)
{
IFS1bits.SI2C1IF = 0; // Bandera de la Interrupcin del mdulo I2C Esclavo borrada.
}
/*=============================================================================
Inicializacin del mdulo I2C
=============================================================================*/
void I2CEMEMinit(I2CEMEM_DRV *i2cMem)
{
i2cMem->cmd = 0; // Inicializo la variable cmd (comando).
i2cMem->oData = 0; // Inicializo la variable oData (datos de salida).
I2C1CONbits.A10M = 0; // El registro I2C1ADD contiene una direccin esclavo de 7 bits.
I2C1CONbits.SCLREL = 1; // Actualizar (Release) el reloj SCL1.
I2C1BRG = 300; // Registro del generador de Baudios --> BRG cuenta hacia atrs y se detiene cuando llega a
0, hasta que se produzca una nueva recarga.
I2C1ADD = 0; // Registro de direccin.
I2C1MSK = 0; // Registro de la mscara de la direccin.
I2C1CONbits.I2CEN = 1; // Habilitacin del mdulo I2C y configuracin de los terminales SDA1 y SCL1 como
terminales de puerto serie.
IEC1bits.MI2C1IE = 1; // Interrupcin del mdulo I2C Maestro habilitada.
IFS1bits.MI2C1IF = 0; // Bandera de la Interrupcin del mdulo I2C Maestro borrada.
}
/*=====================================================================================
Comunicacin serie Mdulo I2C --> EEPROM. Mquina de estados base del accionamiento.
=====================================================================================*/
void I2CEMEMdrv(I2CEMEM_DRV *i2cMem)
{
static int state = 0, cntr = 0, rtrycntr = 0;
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 70 de 82
case 2:
if(jDone == 1)
{
jDone = 0;
state = state+1; // Valor de state para pasar al siguiente case (case 3).
I2C1TRN = (0xA0)|(((i2cMem->oData->csel)&0x7)<<1); // Byte de comienzo igual a 'A0'(Cargado en el
Registro de transmisin).
}
break;
case 3:
if(jDone == 1)
{
jDone = 0;
if(I2C1STATbits.ACKSTAT == 1)
{
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 71 de 82
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 72 de 82
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 73 de 82
// Habilitacin de la escritura de datos serie desde el mdulo I2C hacia la memoria EEPROM.
enable = 1;
while(1)
{
if(enable == 1)
{
enable = 0;
// Escritura de datos
i2cmem.oData = &wData; // La salida de datos es cargada con el buffer de datos.
i2cmem.cmd = I2C_WRITE; // Comando de escritura I2C.
while(i2cmem.cmd!=I2C_IDLE ) // Mientras el dispositivo no se encuentre en el modo de inactividad...
{
i2cmem.tick(&i2cmem); // Envo de la seal ACK.
}
}
}
}
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 74 de 82
5.11.1. DESCRIPCIN:
Para explicar este mecanismo que tiene el dsPIC para desviar el flujo de control en la
ejecucin de instrucciones, mediante las interrupciones, vamos a hacer un ejemplo muy
sencillo y didctico. Vamos a provocar una interrupcin externa por medio de un interruptor (la
seal externa que provoca la interrupcin puede venir de cualquier dispositivo fsico o una
seal realimentada del propio microcontrolador) conectado al terminal RB0/INT dispuesto para
este tipo de interrupciones, que controle el apagado/encendido de un LED conectado al
terminal RB0. El montaje del circuito en PROTEUS sera el siguiente. Fig.x.
5.11.2 DESARROLLO:
El cdigo de este programa es muy sencillo, como todos los dems. En este caso es
suficiente con activar la seal que entra en el terminal RB7/INT0 mediante un conmutador de
estado, para que la rutina de atencin a la interrupcin (ISR) enve una llamada a la funcin de
interrupcin void EXT0_isr(void) , la cual realiza el cambio de estado en el terminal RB0
(conectado al LED), cada vez que se produzca una interrupcin externa, para apagar y
encender un LED. Tendremos tambin que habilitar la interrupcin externa por el terminal INT0,
declarar la interrupcin externa por flanco de subida (de 0 a 1 lgico) y las interrupciones
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 75 de 82
Cdigo generado:
#include<33FJ12MC202.h>
#fuses XT // Oscilador de cristal para frecuencias entre 4Mhz y 10Mhz.
#fuses NOWDT // Sin Perro Guardin (WDT).
#use delay( clock = 4000000 ) // Reloj de 4 MHz.
#use fast_io(B) // Ocasiona que el compilador realice E/S sin programar el registro de direccin.
#INT_EXT0 // Rutina de atencin a la interrupcin por cambio en RB0 (ISR)
void EXT0_isr(void) // Funcin de la interrupcin externa.
{
output_toggle(pin_B0); // Se conmuta la salida RB0.
}
void main() // Funcin principal.
{
set_tris_B(0x80); // RB7 como entrada, RB0 como salida.
output_low(PIN_B0); // Apaga LED (RB0 a nivel bajo)
set_pullup(PIN_B7); // Pull-up para el terminal RB7
enable_interrupts(INT_EXT0); // Habilita la interrupcin externa
ext_int_edge(L_TO_H); // Interrupcin externa por flanco de subida
enable_interrupts (INTR_GLOBAL); // Habilita la interrupcin general.
while(1); // Bucle infinito.
}
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 76 de 82
muy
variados,
desde
una
simple
resistencia
hasta
algn
que
otro
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 77 de 82
6.1. REQUERIMIENTOS.
Requerimientos de Software:
1) El sitio est diseado para poderse visualizar en cualquiera de los navegadores existentes
en el mercado.
2) La resolucin de la WEB esta optimizada para resoluciones de pantalla de 1280 x 800 ppp
o superiores, en la que hemos tenido en cuenta, los diferentes modelos de porttiles,
notebooks y ordenadores de sobremesa, fijndonos en el ranking mundial de utilizacin de
resoluciones.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 78 de 82
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 79 de 82
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 80 de 82
Al final de cada apartado, en los apartados que corresponde, hay una simulacin
explicativa del funcionamiento, y un botn de descargas, en el que el usuario se puede
descargar la aplicacin programada y su correspondiente esquema, para si quiere realizar
cambios en la programacin u otros cambios en el programa.
Tambin al final de cada apartado, existe un botn llamado cuestionario, en el que el
usuario al pinchar, accede a otro sitio web en el que realiza una prueba de sus conocimientos
tericos adquiridos en el estudio de cada apartado. Este cuestionario pone las respuestas y las
preguntas de forma aleatoria cada vez que se entra. Y te devuelve un porcentaje de acierto
para comprobar los conocimientos. Ver Cap.3.
6.3. ACCESO.
En nuestro diseo principal, la pgina es de acceso libre para cualquier usuario, tan
solo hace falta introducir la direccin web para poder disfrutar de toda la informacin en ella
contenida sin ninguna restriccin. Cuando el proyecto este presentado y este pase a ser
propiedad de la Universidad, puede que las condiciones cambien y se necesite ser alumno
para poder entrar en la pgina web.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 81 de 82
Los submens de cada parte del estudio se despliegan del men de navegacin, con
ttulos claros e intuitivos.
MEMORIA
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 82 de 82
PLANOS
UNIVERSIDAD DE VALLADOLID
ESCUELA DE INGENIERAS INDUSTRIALES
PROYECTO FIN DE CARRERA
ESTUDIO DEL MICROCONTROLADOR AVANZADO dsPIC
MAPA WEB
LOS INGENIEROS TCNICOS:
RODRGUEZ VEGA, JUAN JOS
DEL CAMPO GARCA, MARIANO
PLANO N: 01-A
ESCALA: S/E
FECHA: 23/05/2013
UNIVERSIDAD DE VALLADOLID
ESCUELA DE INGENIERAS INDUSTRIALES
PROYECTO FIN DE CARRERA
ESTUDIO DEL MICROCONTROLADOR AVANZADO dsPIC
MAPA WEB
LOS INGENIEROS TCNICOS:
RODRGUEZ VEGA, JUAN JOS
DEL CAMPO GARCA, MARIANO
PLANO N: 01-B
ESCALA: S/E
FECHA: 23/05/2013
PLIEGO DE
CONDICIONES
04
1.1. PREAMBULO
04
06
1.2.1.
Definiciones
06
1.2.2.
Cdigo fuente
07
1.2.3.
Permisos bsicos
08
1.2.4.
anti-evasin
08
1.2.5.
09
1.2.6.
09
1.2.7.
10
1.2.8.
Trminos adicionales
12
1.2.9.
Cancelacin
14
14
15
1.2.12. Patentes
15
17
18
18
19
19
19
1.3. APLICACIN
19
21
21
21
22
2.4. LA LICENCIA
23
24
25
25
2.7.1.
Definiciones
25
2.7.2.
28
2.7.3.
Concesin de la licencia
28
2.7.4.
Restricciones
29
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 2 de 34
Exoneracin de responsabilidad
31
2.7.6.
Limitacin de responsabilidad
32
2.7.7.
Finalizacin de la licencia
32
2.7.8.
Miscelnea
32
2.7.9.
33
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 3 de 34
1.1. PREMBULO
La Licencia Pblica General de GNU (GNU GPL, por sus siglas en ingls) es una
licencia libre y gratuita con derecho de copia para software y otros tipos de obras.
Las licencias para la mayora del software y otras obras de ndole prctica estn
diseadas para privarle de la libertad para distribuir y modificar las obras. Por el contrario, la
Licencia Pblica General de GNU garantiza la libre distribucin y modificacin de todas las
versiones de un programa, a fin de asegurarle dicha libertad a todos los usuarios. En la
Fundacin para el Software Libre utilizamos la Licencia Pblica General de GNU para la
mayora de nuestro software; tambin se aplica a cualquier otra obra publicada de esta manera
por sus autores. Usted tambin puede aplicarla a sus programas.
Cuando hablamos de software libre, nos referimos a la libertad, no al precio. Nuestras
Licencias Pblicas Generales estn diseadas para garantizarle a usted la libertad de distribuir
copias de software libre (y cobrar por ellas, si as lo desea), obtener el cdigo fuente, o tener la
posibilidad de obtenerlo, modificar el software o utilizar partes del mismo en nuevos programas
libres, y saber que puede hacer estas cosas.
Para proteger sus derechos, necesitamos evitar que otros le nieguen estos derechos o
le pidan que renuncie a los mismos. Por lo tanto, en el caso de que usted distribuya o
modifique este software, tendr ciertas responsabilidades a fin de garantizar la libertad de los
dems.
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 4 de 34
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 5 de 34
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 6 de 34
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 7 de 34
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 8 de 34
b) La obra debe conservar avisos llamativos que establezcan que la misma se realiza
conforme a esta Licencia y a todas las condiciones que se agreguen bajo la seccin 7.
Este requerimiento modifica el requerimiento de la seccin 4 que establece que se
deben mantener intactos todos los avisos.
c) Usted debe otorgar una licencia por la obra completa, en forma ntegra, conforme a
esta Licencia, a cualquier tercero que adquiera una copia. Por lo tanto, esta Licencia,
junto con cualquier trmino adicional aplicable de la seccin 7, se aplica a la obra en su
totalidad y a todas sus partes, independientemente del modo en que se las empaquete.
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 9 de 34
a) Transmisin del cdigo objeto dentro de un producto fsico (incluidos medios fsicos
de distribucin) o incorporado a ste, acompaado de la Fuente Correspondiente en un
medio fsico duradero habitual para el intercambio de software.
b) Transmisin del cdigo objeto dentro de un producto fsico (incluidos medios fsicos
de distribucin) o incorporado a ste, acompaado de una oferta escrita, que sea vlida
por un plazo mnimo de tres aos y por el tiempo que usted ofrezca repuestos o
soporte tcnico para ese modelo del producto, para proporcionarle a cualquier persona
que posea el cdigo objeto (1) una copia de la Fuente Correspondiente para todo el
software del producto que est amparado por esta Licencia, en un medio fsico
duradero habitual para el intercambio de software, a cambio de un precio que no
exceda el costo razonable de la accin fsica de transmitir esta fuente, o (2) acceso
para la copia de la Fuente Correspondiente desde un servidor de red sin costo alguno.
c) Transmisin de copias individuales del cdigo objeto junto con una copia de la oferta
escrita para proporcionar la Fuente Correspondiente. Esta opcin se permite
nicamente en ocasiones y para fines no comerciales, y slo en la medida en que
usted haya recibido el cdigo objeto con una oferta de esta naturaleza, conforme a la
subseccin 6b.
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 10 de 34
d) Transmisin del cdigo objeto ofreciendo acceso desde un lugar determinado (en
forma gratuita u onerosa) y ofreciendo un acceso equivalente a la Fuente
Correspondiente del mismo modo y desde el mismo lugar sin costo adicional. No es
necesario que les exija a los destinatarios que copien la Fuente Correspondiente junto
con el cdigo objeto. Si el lugar ofrecido para copiar el cdigo objeto fuera un servidor
de red, la Fuente Correspondiente podr estar en un servidor diferente (operado por
usted o un tercero) que ofrezca posibilidades de reproduccin equivalentes, siempre y
cuando se incluyan, junto al cdigo objeto, instrucciones claras para localizar la Fuente
Correspondiente.
Independientemente
de
qu
servidor
albergue
la
Fuente
e) Transmisin del cdigo objeto mediante transferencia entre usuarios (peer to peer),
siempre y cuando les informe a los usuarios la ubicacin del cdigo objeto y la Fuente
Correspondiente de la obra para el pblico en general sin costo alguno conforme a la
subseccin 6d.
No se necesita incluir una parte separable del cdigo objeto, cuyo cdigo fuente se
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 11 de 34
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 12 de 34
d) Limitacin del uso de los nombres de los licenciantes o autores del material para
fines publicitarios; o
responsabilidad
que
dichas
presunciones
contractuales
impongan
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 13 de 34
1.2.9. CANCELACIN.
Usted no est autorizado a propagar o modificar una obra amparada de ningn otro
modo que no se estipule en esta Licencia. Cualquier intento no autorizado por propagarla o
modificarla se considerar nulo y conllevar la cancelacin automtica de los derechos que le
haya otorgado esta Licencia (incluida cualquier licencia de patente otorgada conforme al
prrafo tercero de la seccin 11).
No obstante, en el caso de que deje de violar las clusulas de esta Licencia, un titular
de derechos de copyright particular podr restituirle la licencia (a) en forma provisoria, hasta
tanto dicho titular d por finalizada su licencia en forma expresa y definitiva, y (b) en forma
permanente, si dicho titular no lo notificara de la infraccin por algn medio razonable antes de
los 60 das posteriores a la cancelacin.
Asimismo, la licencia que le otorgue un titular de derechos de copyright particular se le
restituir en forma permanente si dicho titular lo notificara de la infraccin por algn medio
razonable, sta fuera la primera vez que usted hubiese recibido una notificacin de violacin de
esta Licencia (por cualquier obra) emitida por dicho titular, y usted subsanara la infraccin en
un plazo de 30 das a partir de la recepcin de la notificacin.
La extincin de sus derechos conforme a esta seccin no cancela las licencias de
aquellos terceros a los que usted les haya otorgado copias o derechos conforme a esta
Licencia. En el caso de que sus derechos se cancelen y no se le restituyan en forma
permanente, usted no estar capacitado para recibir nuevas licencias para el mismo material
conforme a la seccin 10.
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 14 de 34
1.2.11.
TRASPASO
AUTOMTICO
DE
LICENCIA
DESTINATARIOS
SUBSIGUIENTES.
Cada vez que usted transmite una obra amparada, el destinatario recibe
automticamente de los licenciantes originales una licencia para ejecutar, modificar y propagar
la obra conforme a esta Licencia. Usted no es responsable de asegurar el cumplimiento de esta
Licencia por parte de terceros.
Una transaccin entre entidades es una transaccin mediante la cual se transfiere el
control de una organizacin o de todo el patrimonio de una organizacin, se subdivide una
organizacin o se fusionan dos o ms organizaciones. En el caso de que la propagacin de
una obra amparada se deba a una transaccin entre entidades, cada parte de la transaccin
que reciba una copia de la obra tambin recibir todas las licencias para la obra que el
predecesor de la parte tuviera o pudiera otorgar conforme al prrafo anterior, ms el derecho
de recibir de su predecesor la Fuente Correspondiente de la obra, si el predecesor la tuviera en
su poder o pudiera obtenerla con un esfuerzo razonable.
Usted no puede imponer restricciones adicionales para el ejercicio de los derechos que
se otorgan o consolidan conforme a esta Licencia. Por ejemplo, usted no puede imponer
tarifas, regalas u otros cargos a cambio del ejercicio de los derechos que se otorgan conforme
a esta Licencia, as como tampoco puede iniciar acciones legales (incluidas demandas y
contrademandas en un pleito) sobre la base de una infraccin de patentes por crear, usar,
comercializar, ofrecer para la venta o importar el Programa o cualquier parte del mismo.
1.2.12. PATENTES.
Un colaborador es un titular de derechos de copyright que autoriza el uso conforme a
esta Licencia del Programa o de una obra sobre la cual se base el Programa. La obra cuya
licencia se otorgue de esta manera se denomina versin en colaboracin del colaborador.
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 15 de 34
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 16 de 34
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 17 de 34
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 18 de 34
1.3. APLICACIN
Si usted desarrolla un programa nuevo y desea que el pblico le encuentre la mayor
utilidad posible, la mejor manera de lograrlo es hacer de ste un software libre para que todos
lo puedan redistribuir y modificar conforme a estos trminos.
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 19 de 34
Este programa es software libre: usted puede redistribuirlo y/o modificarlo conforme a
los trminos de la Licencia Pblica General de GNU publicada por la Fundacin para el
Software Libre, ya sea la versin 3 de esta Licencia o (a su eleccin) cualquier versin
posterior.
Este programa se distribuye con el deseo de que le resulte til, pero SIN
GARANTAS
DE
NINGN
TIPO;
ni
siquiera
con
las
garantas
implcitas
de
Para ms
Junto con este programa, se debera incluir una copia de la Licencia Pblica General
de GNU. De no ser as, ingrese en <http://www.gnu.org/licenses/>.
Tambin incluya informacin de contacto que les permita a los destinatarios comunicarse con
usted, ya sea por correo electrnico o convencional.
Si el programa admite la interaccin entre terminales, asegrese de que muestre un breve
aviso como el que se incluye a continuacin cuando se inicie en modo interactivo:
<programa> Copyright <ao> <nombre del autor>
Este programa se proporciona SIN GARANTAS DE NINGN TIPO; para ms
informacin escriba 'show w'.
Este programa es software libre y usted puede redistribuirlo conforme a ciertas
condiciones; para ms informacin, escriba 'show c'.
Los comandos hipotticos 'show w' y 'show c' deberan mostrar las partes
correspondientes de la Licencia Pblica General. De ms est decir que los comandos de su
programa pueden ser diferentes; para una interfaz grfica de usuario, debera utilizar un cuadro
de dilogo de tipo acerca de.
En el caso de que trabaje como programador para un empleador o establecimiento
educativo, tambin asegrese de que ste firme una renuncia de copyright para el programa,
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 20 de 34
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 21 de 34
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 22 de 34
2.4. LA LICENCIA
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 23 de 34
Compartir bajo la misma licencia Si altera o transforma esta obra, o genera una
obra derivada, slo puede distribuir la obra generada bajo una licencia idntica a sta.
Entendiendo que:
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 24 de 34
Derechos que pueden ostentar otras personas sobre la propia obra o su uso,
como por ejemplo derechos de imagen o de privacidad.
Aviso Al reutilizar o distribuir la obra, tiene que dejar bien claro los trminos de la
licencia de esta obra.
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 25 de 34
ii.
iii.
iv.
v.
vi.
vii.
viii.
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 26 de 34
j.
k.
Se entiende por distribucin la puesta a disposicin del pblico del original o de las
copias de la obra o la prestacin, en un soporte tangible, mediante su venta, alquiler,
prstamo o de cualquier otra forma.
l.
Se entiende por comunicacin pblica todo acto por el cual una pluralidad de
personas, que no pertenezcan al mbito domstico de quien la lleva a cabo, pueda
tener acceso a la obra o la prestacin sin previa distribucin de ejemplares a cada una
de ellas. Se considera comunicacin pblica la puesta a disposicin del pblico de
obras o prestaciones por procedimientos almbricos o inalmbricos, de tal forma que
cualquier persona pueda acceder a ellas desde el lugar y en el momento que elija.
Una versin posterior de esta licencia de Creative Commons con los mismos
elementos de licencia.
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 27 de 34
iii.
iv.
Una
de
las
licencias
compatibles
que
aparece
en
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 28 de 34
d. Derecho de transformacin de la obra para crear una obra derivada siempre y cuando
se incluya en sta una indicacin de la transformacin o modificacin efectuada.
e. Derecho de reproduccin, distribucin y comunicacin pblica de obras derivadas
creadas a partir de la obra licenciada.
f.
ii.
2.7.4. RESTRICCIONES.
La concesin de derechos que supone esta licencia se encuentra sujeta y limitada a las
restricciones siguientes:
a. Usted puede reproducir, distribuir o comunicar pblicamente la obra o prestacin
solamente bajo los trminos de esta licencia y debe incluir una copia de la misma, o su
Identificador Uniforme de Recurso (URI). Usted no puede ofrecer o imponer ninguna
condicin sobre la obra o prestacin que altere o restrinja los trminos de esta licencia
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 29 de 34
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 30 de 34
iii.
iv.
v.
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 31 de 34
2.7.8. MISCELNEA
a. Cada vez que usted realice cualquier tipo de explotacin de la obra o la prestacin, o
de una coleccin que la incorpore, el licenciador ofrece a los terceros y sucesivos
licenciatarios la concesin de derechos sobre la obra o la prestacin en las mismas
condiciones y trminos que la licencia concedida a usted.
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 32 de 34
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 33 de 34
PLIEGO DE CONDICIONES
Del campo Garca, Mariano
Rodrguez Vega, Juan Jos
- Pg. 34 de 34
ANEXOS
NDICE:
1. ANEXO I
03
03
2. ANEXO II
04
2.1. BIBLIOGRAFA
04
2.2. WEBGRAFA
04
ANEXOS
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
Pg. 2 de 5
1. ANEXO I
Este trabajo nos ha servido para interiorizarnos y aprender de una manera adecuada
como se realiza un proyecto de investigacin para en un futuro tener una mejor nocin a la
hora de realizar una investigacin, los pasos que se llevan a cabo y la forma correcta de para
realizarlo, de esta manera tenemos un idea ms formada del trabajo al cual se enfrenta un
verdadero investigador.
La eleccin del tema expuesto tuvo origen en el inters que se nos present a los dos
integrantes de este grupo cuando reflexionbamos sobre los avances tecnolgicos y como
consiguiente sobre el avance de la electrnica. Hace no mucho tiempo, no se requera tanta
precisin en clculos, ni de tanta calidad de imagen en las televisiones, por poner un ejemplo;
antes con la calidad y almacenaje que nos proporcionaba el DVD, no necesitbamos de una
TV de alta de definicin, despus evoluciona y aparece el blue-ray con mucha ms capacidad y
calidad, por lo que asociado a esto, necesitamos de una TV ms potente y que nos rinda esta
mejora, Qu quiero decir con esto?, pues quiero decir que el dsPIC nace como una
necesidad de evolucin de los microcontroladores anteriores ante el prspero avance
tecnolgico que estamos viviendo.
A raz de esto nos empezamos a informar sobre el tema en libros sobre estos
dispositivos, adems de realizar un amplio escaneo por la WEB.
ANEXOS
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
Pg. 3 de 5
Por ltimo realizamos un extenso estudio, para averiguar cmo poder simular el
funcionamiento de estos dispositivos mediante diversos programas software, llegando a la
conclusin de que una vez comprendida la informacin de la WEB (cmo funciona el
dispositivo) y eligiendo correctamente el software, es relativamente fcil realizar la simulacin
del funcionamiento de los dsPIC.
2. ANEXO II
2.1. BIBLIOGRAFA
ANGULO USATEGUI, Jos Mara; ANGULO MARTNEZ, Ignacio; GARCA ZAPIRAIN, Begoa
... [et al.], (aut.). MICROCONTROLADORES AVANZADOS dsPIC. Controladores digitales de
seales. Arquitectura, programacin y aplicaciones. Ediciones Paraninfo. S.A, 2005. ISBN:
8497323858.
ANGULO USATEGUI, Jos Mara; ETXEBARRA RUIZ, Aritza; ANGULO MARTNEZ, Ignacio...
[et al.], (aut.). Microcontroladores dsPIC. Diseo prctico de aplicaciones. MC Graw Hill, 2006.
ISBN: 84-481-5159-9.
2.1.1.1. WEBGRAFA
[Licencia de la WEB]
http://creativecommons.org
ANEXOS
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
Pg. 4 de 5
[Curso de Dreamweaver]
http://www.aulaclic.es/dreamweaver-cs5/index.htm
[Aplicaciones dsPIC33F]
http://nexp.tistory.com/715
ANEXOS
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
Pg. 5 de 5
2. FAMILIAS dsPIC
Comienzan a producirse a gran escala a finales de 2004, pero en la actualidad ya se
comercializan ms de 100 modelos de este tipo de dispositivo, utilizados para aplicaciones
avanzadas MCU y de audio (propsito general), y para el control de sensores, motores y
sistemas de alimentacin, reunidos en las dos familias siguientes:
RESUMEN
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
Pg. 2 de 6
dsPIC33F/E
21 modelos disponibles
5 temporizadores
9 temporizadores
1. IDLE
1. IDLE
2. SLEEP
2. SLEEP
3. DOZE (frecuencia ms baja)
Alimentacin de 2 a 5,5 V
Alimentacin de 2 a 3,6 V
Memoria EEPROM
Abundantes perifricos
Ms perifricos
Arquitectura de 16 bits.
Memorias:
o
RESUMEN
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
Pg. 3 de 6
Perifricos integrados:
o
Perifricos de Captura/Comparacin/PWM.
Una cabecera (header) en la que incluimos el ttulo Estudio del dsPIC y una imagen que
describe grficamente a los dsPIC.
Dentro del cuerpo de la pgina (body) incluimos un men desplegable SPRY (gil),
gobernado por funciones JavaScript en el que incluimos la distribucin del Mapa WEB,
mediante vnculos a los correspondientes HTML.
Creamos una regin editable (dentro del body), que ser la parte de la plantilla que podr
ser editada cuando creemos las diferentes pginas (HTML) de la WEB basndonos en
dicha plantilla, y adems, tambin creamos unas regiones opcionales en las que incluimos
los botones de descarga (de aplicaciones), ir arriba y cuestionario, los cuales han sido
dotados de imgenes decorativas e integrados en las pginas en las que son necesarios.
RESUMEN
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
Pg. 4 de 6
Por ltimo, y no menos importante, hemos creado un pie de pgina (footer) en el que
incluimos las imgenes corporativas de la Universidad de Valladolid (UVA) y de la Escuela
de ingenieras Industriales (EII), en las cuales insertamos un Link para acceder de
manera rpida a las paginas oficiales de ambos estamentos. Tambin incluimos los
nombres de los dos diseadores de la WEB, un validador CSS y la licencia de la WEB
(Creative Commons).
Una vez descrito el contenido pasamos a comentar el desarrollo de las mltiples
pginas incluidas en la WEB, para ello nos sobra con hacer una descripcin general de ellas,
pues funcionan todas de la misma manera, excepto que poseen diferentes contenidos de texto,
imgenes, tablas, enlaces y en algn caso videos en formato FLASH.
Todas las pginas estn basadas en HTML 1.0 transicional, creadas a travs de la plantilla
que hemos descrito anteriormente, en las que incluimos bsicamente texto e imgenes
para describir cada apartado correctamente.
Nos hemos limitado a trabajar con tablas para centrar las imgenes y los videos con
mayor sencillez y comodidad (no incluimos etiquetas DIV para el posicionamiento).
Todas las imgenes estn optimizadas con Photoshop CS5.1, la mayora de ellas han sido
obtenidas de la propia WEB del fabricante (www.microchip.com) y posteriormente
traducidas a nuestro idioma (Espaol) y retocadas para obtener la mayor calidad posible
con el menor peso (que se abran rpidamente). Otra parte de las imgenes ha sido creada
por nosotros, para ampliar la parte visual de la WEB, basndonos en la teora a la que
acompaan.
Como pilar central del diseo, hemos trabajado con estilos CSS especficos, creados para
cada tipo de objeto insertado en la WEB (texto, imgenes, videos, linksetc.).
integrado en la WEB, han sido creados mediante la aplicacin HotPotatoes 6, y cuentan con
estilos CSS y funciones JavaScript independientes de la propia programacin de la WEB, para
que puedan ser ejecutados sin alterar el funcionamiento de la WEB (estn basados en HTML
1.1).
RESUMEN
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
Pg. 5 de 6
RESUMEN
Del Campo Garca, Mariano
Rodrguez Vega, Juan Jos
Pg. 6 de 6