Você está na página 1de 14

1

Tema: Programacin de Filtro Digital en dsPIC30F2010


Conocer el entorno de programacin propio del dsPIC30F2010
Realizar la programacin del filtro digital que se realiz en la gua 5
Comproar el funcionamiento del sistema
Realizar un camio en el tipo de filtro ! sus coeficientes por medio de "#$%#&
'escargar el filtro camiado ! comproar su funcionamiento
1 entrenador ($ dsPIC 30F2010 )1
1 Programador de PICs PIC*it 2
1 cale us
1 generador de se+ales
1 fuente de alimentacin de 12)
1 osciloscopio
1 Computadora con "P%#&, soft-are PIC.it 2 ! "#$%#& con F'#$ools
(n la presente pr/ctica se 0ar/ el procedimiento de programacin del dsPIC30F2010, en la
gua 1 se realiz la comproacin del funcionamiento de un filtro digital de orden 31, para
programar dic0o filtro es necesario tener instalado el "P%#& para este caso la 2ersin 34354
Parte 1. Creacin de un programa para dsPIC30F2010
14 #ra el "P%#& 3435 presente en su computadora puede ser que e6ista un acceso directo
en el escritorio, de lo contrario 2a!a a Inicio7$odos los Programas7"icroc0ip7"P%#&
234357"P%#& I'(, aparecer/ luego la siguiente 2entana8
Facultad8 Ingeniera4
(scuela8 (lectrnica4
#signatura8 9e+ales ! 9istemas 'iscretos4
%ugar de e:ecucin8 %aoratorio de
#utomatizacin ;(dificio 3, 1a planta<4
Objetivos especficos
Materiales y equipo
Procedimiento
Seales y Sistemas Discretos. Gua 10
2
Figura 1 !entana de MP"#$
24 Para crear un nue2o pro!ecto seleccione del men= Pro:ect7Pro:ect >izard
Figura 2 %lecci&n del Project 'i(ard
34 '? clic en siguiente en la pantalla de ien2enida ! posteriormente aparecer/ una 2entana
que permitir/ elegir el tipo de PIC a programar, seleccione el dsPIC 30F2010
Figura 34 9eleccin del dispositi2o a programar4
54 '? clic en siguiente ! aparecer/ la 2entana de la siguiente figura, en ella seleccione en
Seales y Sistemas Discretos. Gua
)
@#cti2e $oolsuiteA "icroc0ip C30 $oolsuite ! en @toolsuite contentsA "P%#& C30 Compiler4
Figura 54 9eleccin de la $oolsuite para compilar el programa4
54 '? clic en siguiente ! ponga el nomre del pro!ecto puede utilizar @FiltrodsPICA gu/rdelo
en una carpeta en "is documentos, puede nomrar a la carpeta de la misma manera4

Figura 54 Bomre del pro!ecto a guardar4
14 (n la siguiente pantalla se seleccionan los arc0i2os a incluir en el pro!ecto4 Para facilitar la
tarea de inicializacin ! preparacin del pro!ecto, el "P%#& C30 dispone de 2arios arc0i2os
que al incluirlos en el pro!ecto permiten traa:ar con nomres simlicos, e indican al
enlazador cu/l es la organizacin de la memoria del dispositi2o en cuestin, genera rutinas
autom/ticas de reset, etc, (stos arc0i2os a agregar son los siguientes8
C8 C#rc0i2os de programaC"icroc0ipC"P%#& C30CsupportCgldCp30f20104gld
C8 C#rc0i2os de programaC"icroc0ipC"P%#& C30CsupportCincCp30f20104inc
Seales y Sistemas Discretos. Gua 10
*
Da! que dar clic en la letra que aparece antes de la ruta del arc0i2o 0asta que aparezca una
@CA que indica que 0a! que copiar los arc0i2os al directorio del pro!ecto4
Figura 14 agregar arc0i2os al pro!ecto
E4 '? clic en el "en= File7 Be- ! aparecer/ un cuadro 2aco para comenzar a editar el
arc0i2o fuente o programa para el dsPIC, inmediatamente seleccione File79a2e #s ! ponga
el nomre FiltrodsPIC4c, 0asta aqu el arc0i2o aun no est/ agregado al pro!ecto4 Para
agregar el arc0i2o fuente al pro!ecto en la parte izquierda de la pantalla est/ una carpeta
llamada 9ource, d? clic derec0o en ella ! seleccione #dd Files ! del siguiente cuadro de
di/logo seleccione el arc0i2o FiltrodsPIC4c que 0a creado anteriormente4
Figura E4 #+adir el arc0i2o de cdigo fuente4
34 (n la carpeta Deader Files 0aga el mismo procedimiento que con la carpeta 9ource Files,
Seales y Sistemas Discretos. Gua
+
con el arc0i2o de caecera p30F201040 que se encuentra en la siguiente ruta8
C8 C#rc0i2os de programaC"icroc0ipC"P%#& C30CsupportC0Cp30f201040
F4 'igite el siguiente listado de programa en el arc0i2o 2aco que cre ;FiltrodsPIC4c<, este
corresponde a la m/quina de c/lculo del filtro pasaa:as, de 2.Dz estudiado en la gua 14
#include<p30f2010.h>
#include<libpic30.h>
#include<stdio.h>
#include<dsp.h>
#include<timer.h>
#include<adc10.h>
#include "fdacoefs.h"
//////////////////////////////////////////////////
// Bits de configuracin
//atch!og apagado
//"he#ueo de relo$ apagado% &odo "ristal ' ())*
//+eset habilitado% B,+ apagado
//proteccin de codigo apagada
-.,/"0"/-./"&-,.. 1 23-())*45
-.!30!3-,..45
-.B,+(,+0(B,+-,.. 1 &")+-6745
-.8/0",!6-(+,3-,..45
//////////////////////////////////////////////////
// definiciones para a9uda a calculos de retardos segun 'tal de :.32:&;<
#define .,/" :3:2000))
#define ."= 0.,/"/>4
#define milis 0."=/1000)4
#define micros 0."=/1000000))4
//////////////////////////////////////////////////////
#define "iclo3raba$o ,"1+/
int 2?32@ A BC5
int 2(?10@ABC5
int (+,& A 05
int = A 05
int ma'A1023/25
int minA1023/25
unsigned int resultado A 05
Doid "onf3imer045
Doid "onfE!"045
Doid "onf(&045
Doid "onfFnt045
int E!",G A 05
int 6++,+ A 05
int i A 05
int $ A 05
Doid --attribute--00--interrupt--44 -31Fnterrupt0Doid4
B
//interrupcin de 3F&6+1 cada 3sA1/.sA1/1102H segundos
//se reali<a conDersion de E!" con pIriodo constante.
Seales y Sistemas Discretos. Gua 10
,
rite3imer10045
F./0bits.31F. A 05
if0E!",G4B
6++,+ A 15
C
elseB
6++,+ A 05
E!",G A 15
resultado A +eadE!"100045
"onDertE!"10045
C
//reset de los Dalores min 9 ma'
//cada 0.2H segundos
$JJ5
if0$>2:HK4B
ma'AH115
minAH115
$A05
C
C
int main0Doid4B
//configuracion inicial
3+F/! A 05
3+F/6 A 05
//timer
"onf3imer045
//E!"
"onfE!"045
//(&
"onf(&045
for0i A 05 iJJ5 i<B)4 2?i@ A 05
Lhile014B
if0E!",G4B //si se interrumpe por lectura de 3F&6+1 J lectura de E!"
calcular(romedio045
//corrimiento de datos de entrada
//llamese elementos de memoria
for 0iA315 i>05 iMM4 2?i@A2?iM1@5
2?0@A0resultado>>24M(+,&5
//
=ANector!ot(roduct0B)% B% 245 //producto punto B 9 2
"iclo3raba$o A 0=J(+,&4 1 2HH5 //a$uste del offset
//calculo de salida reali<ado
E!",G A 05
C
C
Seales y Sistemas Discretos. Gua
-
C
Doid "onf3imer04B
//configuracin de timer M muestreo a 1102H;<
"onfigFnt3imer1031-F73-(+F,+-1 1 31-F73-,745
rite3imer10045
,pen3imer1031-,7 1 31-8E36-,.. 1 31-F!)6-/3,( 1
31-(/-1-1 1 31-/=7"-623-,.. 1
31-/,O+"6-F73% 133H45
C
Doid "onfE!"04B
//canal 0 M auto sample M modo manual M E70 Dersus MNref
E!",71 A 0b00100000000001115
E!",72 A 0'00005
E!",73 A 0'01*05
E!";/ A 0'00005
E!(".8 A 0'...65
E!",71bits.E!,7 A 15
C
Doid "onf(&04B
(+2 A 0'..5 //(eriodo de * bits
,"1+/ A (+2>>15 //"iclo de traba$o inicial al H0P
,"1+ A ,"1+/5
,"1",7 A 0'020K5 //(& fault pin deshabilitado M 3F&6+ 2
//configuracion de 3F&6+2
32",7 A 0'E0005
C
Doid calcular(romedio04B
if0resultado>ma'4 ma' A resultado5 //registro de ma'imo
if0resultado<min4 min A resultado5 //registro de minimo
(+,&A0ma'Jmin4>>35 //promedio 9 truncado a * bits
C
%istado 14 Cdigo en CGG de la m/quina para el filtro digital
104 Hser2e las primeras lneas del arc0i2o fuente, 0acen referencia a otros arc0i2os a
agregar como caeceras, en la carpeta Deader Files 0ar/ tami?n que agregarlos al
pro!ecto oser2e la siguente tala para agregarlos como en el procedimiento 3 ! la ruta
donde encontrar estos arc0i2os
#include<libpic30.h> C8 C#rc0i2os de programaC"icroc0ipC"P%#& C30CsupportC0Clipic3040
#include<stdio.h>
C8 C#rc0i2os de programaC"icroc0ipC"P%#& C30CincludeCstdio40
#include<dsp.h> C8C#rc0i2os de programaC"icroc0ipC"P%#&C30CsupportC0Cdsp40
#include<timer.h>
C8C#rc0i2os de
programaC"icroc0ipC"P%#&C30CsupportC0Cperip0eralI30FI25DI33FCtimer40
#include<adc10.h> C8C#rc0i2os de
programaC"icroc0ipC"P%#&C30CsupportC0Cperip0eralI30FI25DI33FCadc1040
$ala 14 #rc0i2os de caecera a agregar en Deader Files
114 Para la =ltima lnea ;Jinclude Kfdacoefs40K< 0ar/ que 0acer un arc0i2o nue2o ! guardarlo
Seales y Sistemas Discretos. Gua 10
.
como fdacoefs40 ! agregarlo al pro!ecto en la carpeta Deader Files, el cdigo fuente que
deer/ tener dic0o arc0i2o es el siguiente8
const int B) A 325
const fractionalQ B?32@ A B
MHR2% MH30% 21>% *1K% >**% MH3:% M10R3% M3>R% 10KK%
1>*H% 0% M21H*% M230R% 120:% :0:K% 11K00% 11K00% :0:K%
120:% M230R% M21H*% 0% 1>*H% 10KK% M3>R% M10R3% MH3:%
>**% *1K% 21>% MH30% MHR2
C5
%istado 24 Coeficientes del filtro generados por "#$%#& con F'#tool ;@fdacoefs40A<
124 #l terminar de editarlo dar clic en guardar ! pngalo dentro de la carpeta del pro!ecto !
agr?guelo a los Deader Files como en los anteriores procedimientos4
134 Para 0acer uso de las lireras '9P que "icroc0ip pro2ee, ! que se 2en en el arc0i2o
fuente, es necesario agregarlos a la carpeta 9ource Files, en la siguiente tala est/n las
operaciones de la lirera ! la ruta donde se encuentra el arc0i2o a agregar4
Read#'C104c C8C#rc0i2os de programaC"icroc0ipC"P%#&
C30CsrcCperip0eralI30FI25DI33FCsrcCpmcCadcCRead#'C104c
Con2ert#'C104c C8C#rc0i2os de programaC"icroc0ipC"P%#&
C30CsrcCperip0eralI30FI25DI33FCsrcCpmcCadcCCon2ert#'C104c
Hpen#'C104c C8C#rc0i2os de programaC"icroc0ipC"P%#&
C30CsrcCperip0eralI30FI25DI33FCsrcCpmcCadcCHpen#'C10
9etC0an#'C104c C8C#rc0i2os de programaC"icroc0ipC"P%#&
C30CsrcCperip0eralI30FI25DI33FCsrcCpmcCadcC9etC0an#'C104c
ConfigInt$imer14c C8C#rc0i2os de programaC"icroc0ipC"P%#&
C30CsrcCperip0eralI30FI25DI33FCsrcCpmcCtimerCConfigInt$imer14c
Read$imer14c C8C#rc0i2os de programaC"icroc0ipC"P%#&
C30CsrcCperip0eralI30FI25DI33FCsrcCpmcCtimerCRead$imer14c
Hpen$imer14c C8C#rc0i2os de programaC"icroc0ipC"P%#&
C30CsrcCperip0eralI30FI25DI33FCsrcCpmcCtimerCHpen$imer14c
>rite$imer14c C8C#rc0i2os de programaC"icroc0ipC"P%#&
C30CsrcCperip0eralI30FI25DI33FCsrcCpmcCtimerC>rite$imer14c
)dot4s C8C#rc0i2os de programaC"icroc0ipC"P%#& C30CsrcCdspCasmC2dot4s
$ala 24 #rc0i2os de la lirera '9P para su uso en el cdigo fuente4
%os anteriores arc0i2os sir2en para usar una funcin predise+ada para el uso de los
perif?ricos del dsPIC ! solamente poner los par/metros que le interesan al usuario, oser2e
que los perif?ricos a utilizar inclu!en al #'C de 10 its ! al $imer 1 ! 2dot4s que sir2e para la
operacin del producto punto de dos 2ectores4
154 Copie el arc0i2o dspcommon40 al directorio donde est/ el pro!ecto para que sea editale,
puede encontrar este arc0i2o en8
C8C#rc0i2os de programaC"icroc0ipC"P%#& C30CsrcCdspCincCdspcommon4inc
Posteriormente a copiarlo, agr?guelo al pro!ecto en la carpeta Deader Files, al final los
arc0i2os agregados deer/n 2erse de la siguiente manera8
Seales y Sistemas Discretos. Gua
/
Figura 34 #rc0i2os agregados al Pro!ecto
154 #l 0aer realizado todos los pasos anteriores, ser/ necesario compilar el arc0i2o, para
ello utilice el otn de la arra de 0erramientas que tiene la siguiente forma8 o desde el
men= Pro:ect7&uild #ll o con la cominacin de teclas C$R%GF10, si todo est/ ien deer/
aparecer el mensa:e &LI%' 9LCC(('(' en la 2entana output4
Parte 2. Descarga del Programa a la memoria del DSPIC30F2010
#l 0aer compilado el programa se 0a creado un arc0i2o llamado FiltrodsPIC40e6 que es el
necesario para descargar a la memoria del dsPIC para que realice su funcin de ser un Filtro
pasaa:as de 2.Dz4
114 Conecte el programador PIC*it 2 0acia el entrenador ($ dsPIC 30F2010 )1, teniendo
presente que el interruptor PRHMNRLB tiene que estar 0acia la posicin RLB, las cone6iones tendr/n
que ser de acuerdo a la siguiente figura
Seales y Sistemas Discretos. Gua 10
10
Figura F4 Cone6in del PIC.it 2 a la tar:eta ($ dsPIC 30F2010 )1
1E4 (nergice la tar:eta conect/ndola a una fuente de G12)
134 Conecte el programador PIC.it 2 al puerto us de su computadora, ! ara la aplicacin PIC.it 2
)2412 ;0a! un icono en el escritorio sino 0ar/ que uscarlo desde el men= inicio< si est/ ien
conectado deer/ reconocer autom/ticamente al dsPIC conectado 2i?ndose como la figura siguiente8
Figura 104 9oft-are para descargar programa a la tar:eta dsPIC4
Seales y Sistemas Discretos. Gua
11
1F4 'el men= File seleccione Import D(O ! ara el arc0i2o FiltrodsPIC40e6 que se 0a creado en la
carpeta del pro!ecto que usted cre4
204 'escargue el arc0i2o 0acia la memoria del dsPIC dando clic en el otn >rite
214 Pruee el programa 0aciendo uso de la referencia de la gua 1 compruee que a los 2.Dz la se+al
se aten=a consideralemente4
Parte 3. Cambiar el tipo de filtro por medio de los coeficientes
224 #ra el programa "#$%#&
234 'esde la interfaz de comandos digite fdatool
25 Cree un filtro pasaanda con frecuencia 1 de 1000Dz ! frecuencia 2 de 3000Dz, de tipo FIR con
)entana de *aiser, de orden 31, frecuencia de muestreo Fs P 11025Dz d? clic en 'esign Filter, la
2entana podr/ oser2arse de la siguiente manera8
Figura 11 Configuracin de un filtro pasaanda entre 1000 ! 3000Dz4
254 (s necesario generar los coeficientes del filtro, para ello en el fdatool eli:a la funcin
$argets7Menerate C Deader aparecer/ un cuadro de di/logo como el de la siguiente figura,
aseg=rese de utilizar la opcin e6port as ! use el tipo 9igned 11Nit Integer
Seales y Sistemas Discretos. Gua 10
12
Figura 124 Menerar el encaezado de C
214 '? clic sore el otn Menerate ! en el cuadro de di/logo gu/rdelo con el nomre de
fdacoefs"atla40 en la carpeta del pro!ecto del filtro4
2E4 #ra el arc0i2o recientemente creado, tendr/ una apariencia como en el listado 3
Q
Q 8enerated onS 0HM/epM2012 1KS1KS>>
Q
Q/
/Q
Q !iscreteM3ime .F+ .ilter 0real4
Q MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
Q .ilter /tructure S !irectM.orm .F+
Q .ilter )ength S 32
Q /table S =es
Q )inear (hase S =es 039pe 24
Q/
/Q 8eneral t9pe conDersion for &E3)EB generated "Mcode Q/
#include "tmLt9pes.h"
/Q
Q 6'pected path to tmLt9pes.h
Q"ST&E3)EB//!TEppTe'ternTincludeTtmLt9pes.h
Q/
/Q
Q arning M .ilter coefficients Lere truncated to fit specified data t9pe.
Q 3he resulting response ma9 not match generated theoretical response.
Q Ose the .ilter !esign 1 Enal9sis 3ool to design accurate
Q int1K filter coefficients.
Q/
const int B) A 325
const int1K-3 B?32@ A B
Seales y Sistemas Discretos. Gua
1)
2H>% M*11% M1313% M12H% 3*2% M>>:% 2HR% 21R1% 1H10%
MKR3% 2H% RK*% M3>0H% M:>RR% M13:R% R3*0% R3*0% M13:R%
M:>RR% M3>0H% RK*% 2H% MKR3% 1H10% 21R1% 2HR% M>>:%
3*2% M12H% M1313% M*11% 2H>
C5
%istado 34 Coeficientes generados por el fdatool
234 Compare el formato usado en el listado 3 ! el del listado 2, para que funcione el filtro 0a!
que declarar los datos como fractional, en una sinta6is propia del dsPIC4 Copie los
coeficientes del filtro ;los n=meros que est/n entre lla2es Q R< del arc0i2o fdacoefs"atla40 !
p?guelos en el arc0i2o fdacoefs40 que cre en el pro!ecto, reemplazando los n=meros entre
las lla2es4
2F4 Realice el procedimiento para descargar el filtro 0acia el dsPIC ! proceda a comproar su
funcionamiento, la se+al deera en un primer momento para frecuencias menores a 1000Dz
estar atenuada, deera ser de ma!or amplitud al estar entre 1000 ! 3000Dz ! luego tendra
que atenuarse al llegar a frecuencias ma!ores a 3000Dz
304 'esconecte el equipo ! entregue las cosas ordenadamente4
N Para el filtro pasaa:as creado SPudo 0aerse puesto los coeficientes dentro del cdigo
directamente sin necesidad de generar un arc0i2o DeaderT
N Cu/l es el rango de frecuencias m/6imo para generar un filtro, !a sea pasaaltas, pasaa:as
o pasaandaT
N SUu? es el formato fractional para n=meros inariosT
N In2estigue acerca de los otros posiles targets para los que puede generar arc0i2os el fdatool4
N 0ttp8VV---4microc0ip4comVpage0andlerVenNusVfamil!V11itVarc0itectureVdspic30f40tml
N #ngulo Lsategui,Wos? "araX (t6earria Ruiz, #ritzaX #ngulo "artnez, IgnacioX $ruea
Parra, I2an4 '9PIC 'ise+o pr/ctico de aplicaciones "cMra- Dill
Seales y Sistemas Discretos. Gua 10
$ibliografa
1nvestigaci&n 2omplementaria
#n3lisis de 4esultados
1*
!"#$%#CI&'
( 1)* )+ ,)10 'ota
C&'&CI-I!'.& 25 2onocimiento
deficiente de los
fundamentos te&ricos
2onocimiento y
e5plicaci&n incompleta
de los fundamentos
te&ricos
2onocimiento
completo y
e5plicaci&n clara de
los fundamentos
te&ricos
#P$IC#CI/'
D!$
C&'&CI-I!'.&
70 Realiz mal las
conexiones y no
produjo salida, no
logr completar las
mediciones de la tabla
Realiz todas las
conexiones y ajustes y
la tabla de forma
correcta, pero no
concluye
satisfactoriamente
Realiz todo el
procedimiento y tiene
conclusiones lgicas
y acertadas acerca
de sus resultados.
#C.I.%D 2,5 %s un observador
pasivo
Participa
ocasionalmente o lo
6ace constantemente
pero sin coordinarse
con su compa7ero
Participa propositiva
e integralmente en
toda la pr3ctica
2,5 %s ordenado8 pero no
6ace un uso
adecuado de los
recursos
9ace un uso adecuado
de los recursos: respeta
las pautas de
seguridad8 pero es
desordenado
9ace un manejo
responsable y
adecuado de los
recursos conforme a
pautas de seguridad
e 6igiene
TT!" #00
$u%a 5& 'ediciones en (iltro )igital
!lumno&
*oja de cotejo& 5
)ocente& (ec+a& $"&
,uesto -o&
Seales y Sistemas Discretos. Gua

Você também pode gostar