1
Equa ion Chap e 1 Sec ion 1
P oyec o Fin de G ado
G ado en Ingenie ía en Tecnologías Indus iales
Desa ollo de un sis ema ha dwa e de con ol basado
en ecnologías embebidas pa a aplicaciones de
con e ido es elec ónicos de po encia.
Au o : Ma ía Muñoz Quijada
Tu o : Se gio Vázquez Pé ez
Depa amen o de Ingenie ía Elec ónica
Escuela Técnica Supe io de Ingenie ía
Uni e sidad de Se illa
Se illa, 2015
2
P oyec o Fin de G ado
G ado en Ingenie ía en Tecnologías Indus iales
Desa ollo de un sis ema ha dwa e de con ol
basado en ecnologías embebidas pa a aplicaciones
de con e ido es elec ónicos de po encia.
Au o :
Ma ía Muñoz Quijada
Tu o :
Se gio Vázquez Pé ez
P o eso con a ado
Depa amen o de Ingenie ía Elec ónica
Escuela Técnica Supe io de Ingenie ía
Uni e sidad de Se illa
Se illa, 2015
4
5
Ag adecimien os
En p ime luga , me gus a ía ag adece a mi amilia y amigos el apoyo y dedicación mos ados du an e
odos es os años de es udios, de aleg ias y desilusiones, sac i icios y ecompensas. Nada de es o hubie a
sido posible sin su ayuda.
También me gus a ía ag adece a los in eg an es del depa amen o de elec ónica po la acogida en su zona
de abajo du an e el p oceso de elabo acion de es e p oyec o, en especial a mi u o , Se gio Vazquez Pé ez,
y a Ab aham Má quez Alcaide, po la paciencia mos ada y la ayuda p opo cionada, que sin duda ha sido
cla e pa a el desa ollo del p oyec o.
Po úl imo, quie o da las g acias a mis p o eso es po odo lo que he podido ap ende du an e es os años
g acias a sus explicaciones.
6
Índice Gene al
Ag adecimien os 5
Lis a de símbolos y aco aciones 9
Lis a de ilus aciones y ablas 11
1 In oducción 15
2 Familia ización del en o no y componen es u ilizados 17
2.1 Disposi i o 18
2.1.1 Ca ac e ís icas 18
2.1.2 Wo kshop 22
2.2 Equipos auxilia es 29
2.3 P og amas u ilizados 31
3 Con igu ación del disposi i o 35
3.1 Módulo PWM 35
3.2 ADC 39
3.3 Comunicaciones 41
3.3.1 UART 41
3.3.2 SCI 45
4 P oblemas encon ados 51
4.1 Accesibilidad de los pines GPIO 51
4.2 Inse ción del código an iguo. 52
4.3 A chi os CMD 54
4.4 Comunicaciones 55
5 Conclusiones y Resul ados 59
6 Acciones u u as 65
7 Bibliog a ía 67
8
Lis a de símbolos y aco aciones
ACIB: Analog common in e ace bus.
ADC: Analog o digi al Con e e .
CAN: Con olle A ea Ne wo ks.
CCS: Code Compose S udio.
CPU: Cen al P ocessing Uni
CRC: Comp obación de edundancia cíclica.
DAC: Digi al o Analog Con e e .
DIMM: Dual in-line memo y module.
DSP: Digi al Signal P ocesso .
ePWM: enhanced pulse wid h modula ion.
FIFO: Fi s inpu i s ou pu .
FPU: Floa ing-Poin Uni .
GPIO: Gene al pu pose inpu ou pu .
I2C: In e -In eg a ed ci cui .
IGBT: Insula ed Ga e Bipola T ansis o .
ISO: O ganización in e nacional de
no malización.
JTAG: Join es ac ion g oup.
LED: Ligh -emi ing diode.
LSB: Leas signi ican bi
McBSP: Mul ichannel Bu e ed se ial po .
MCU: Mic ocon olado .
MSB: Mos signi ican bi .
NRZ: Non- e u n o ze o.
PCB: P in ed Ci cui Boa d
PWM: Pulse wid h modula ion.
RAM: Random access memo y.
RS232: Recommended s anda d 232.
SAR: Successi e app oxima ion egis e .
SCI: Se ial communica ion in e ace.
SOC: S a o Con e sion.
SPI: Se ial Pe iphe al In e ace.
UART: Uni e sal asynch onous ecei e -
ansmi e .
USB: Uni e sal Se ial Bus.
16
2 FAMILIARIZACIÓN DEL ENTORNO Y
COMPONENTES UTILIZADOS
Un sis ema embebido es un disposi i o elec ónico con capacidad de p ocesamien o (incluye una CPU) y
conexión en ed que es capaz de in e ac ua con sis emas simila es.
Es os son u ilizados en aplicaciones indus iales, ya sea, en sis emas au omó iles, en el con ol de ene gías
eno ables o pa a comunicaciones de ed.
La a qui ec u a de es os sis emas se pod ía esumi en la de un sis ema mic op ocesado (MCU), el cual
es á compues o po un Maes o, que es capaz de ejecu a ins ucciones y p og amas y maneja da os, unos
buses de ansmisión de da os y o denes y una se ie de escla os o pe i é icos que se comunican con el
maes o y lo complemen an a la ho a de ealiza a eas.
Ilus ación 1: A qui ec u a.
A la ho a de abaja con sis emas embebidos, es impo an e ene un conocimien o gene al del
uncionamien o del sis ema (pe i é icos que dispone, con igu ación de los mismos, conexiones...) a a és
del da a shee que p opo ciona el ab ican e, y pos e io men e p o undiza en el conocimien o de aquellos
pe i é icos que se necesi an u iliza pa a ob ene el uncionamien o deseado del sis ema. Es necesa io
ambién sabe maneja dis in os p og amas in o má icos, como compilado es, máquinas i uales o
sis emas de p og amación g a ica, que pe mi en con igu a el disposi i o según se equie a, o isualiza los
da os que el sis ema p opo ciona median e un o denado .
18
En el siguien e apa ado se explica an las ca ac e ís icas del DSP elegido y las he amien as que se
u iliza on pa a acili a el ap endizaje del uso del mismo.
Además se expond án los dis in os equipos de labo a o io y ma e iales auxilia es que ue on u ilizados pa a
ealiza las p uebas necesa ias pa a comp oba el uncionamien o del sis ema, así como una se ie de
so wa e que ue on ú iles pa a desa olla el p oyec o.
2.1 Disposi i o
Como se comen ó al inicio del documen o, el disposi i o que se á obje o de es e p oyec o es el DSP
F28M35H52C, cuyo nomb e come cial es Conce o, pe enecien e a la gama C2000 de Texas Ins umen s.
A con inuación se exponen las ca ac e ís icas de es e sis ema y una de las he amien as que o ece Texas
Ins umen s pa a ap ende a u iliza el DSP.
2.1.1 Ca ac e ís icas
Con el DSP Conce o, Texas Ins umen s o ece una solución pa a auna endimien o, sencillez y p ecio,
ya que en un mismo disposi i o se encuen an dos subsis emas independien es que son capaces de
comunica se en e sí, con lo que se e i a di icul ad en el so wa e y el comp omiso en e ca ac e ís icas y
uncionamien o que supond ía el uso de un solo MCU, y po o o lado, la complejidad, el al o p ecio y el
ele ado iempo de espues a que supond ía el uso de dos MCU.
Ilus ación 2: Conce o MCU solucion.
El disposi i o cuen a con un subsis ema maes o M3 (ARM Co ex) pa a p opósi o gene al y
comunicaciones, las cuales puede ealiza a a és de los dis in os pue os que eúne (E he ne , USB, CAN,
pue os se ie…).
Ilus ación 3: Es uc u a del subsis ema maes o M3.
Po o a pa e, el subsis ema de con ol (TMS320C28x) pe mi e una al a elocidad g acias a la FPU que
inco po a. Además cuen a con 9 módulos PWM lo que esul a bas an e ú il pa a aplicaciones de elec ónica
de po encia. Al igual que el subsis ema maes o, es capaz de ealiza a eas de comunicación a a és de los
pue os se ie (SPI, SCI).
Ilus ación 4: A qui ec u a del subsis ema C28.
20
Una de las azones po las que se elige es e disposi i o es el subsis ema analógico que o ece, el cual es
ex e no y accesible po ambos núcleos median e el ACIB (Analog common in e ace bus) y cuen a con 2
módulos ADC de 12 bi s y 6 compa ado es con 6 DAC de 10 bi s in e nos.
Ilus ación 5: Diag ama de bloques del subsis ema analógico.
Adicionalmen e, el disposi i o cuen a con 64 pines GPIO que uncionan a 3’3V.
A con inuación, se p esen a una abla con las ca ac e ís icas especí icas del DSP y una imagen de las
conexiones in e nas que encon amos en e los es subsis emas que lo componen.
Tabla 1: Ca ac e ís icas especi icas del DSP Conce o.
21
Ilus ación 6: Conexión en e los dis in os subsis emas.
Pa a abaja con el disposi i o se u iliza el Expe imen e ’s ki , que incluye una placa (con olCARD) con
el DSP in eg ado, además de di e en es pue os de conexión y una docks a ion, en la que se conec a es a
placa y que pe mi e un acceso sencillo a los pines de la placa.
Incluye un pue o JTAG que pe mi e una ácil con igu ación del disposi i o con Code Compose S udio,
cuya licencia se o ece.
Ilus ación 7: Docks a ion y Con olCa d.
No obs an e, algunos de los pines GPIO del DSP no son di ec amen e accesibles desde la docks a ion, ya
que la conexión de es os pines desde el MCU al DIMM de la con olCARD no es di ec a, po lo que hab á
que usa jumpe s como se e á más adelan e.
22
2.1.2 Wo kshop
An es de empeza a p og ama el sis ema, es de u ilidad conoce la con igu ación básica de los dis in os
pe i é icos que nos o ece el disposi i o.
Con es e in, Texas Ins umen s o ece una he amien a que incluye una se ie de ejemplos básicos pa a el
manejo del DSP: el Wo kshop.
T as la desca ga e ins alación, se pod á encon a una ca pe a que con iene lib e ías pa a el disposi i o,
documen os de in o mación écnica an o ha dwa e como so wa e, y un manual donde se explica paso a
paso una se ie de ejemplos que se comen a an a con inuación.
Inicialmen e se explica cómo u iliza CCS pa a c ea un nue o p oyec o, gene a la con igu ación de la
a je a que pe mi e deci le al p og ama como conec a se con el disposi i o y mos a las he amien as del
en o no.
Una ez que se enga el código que se quie a co e , se conec a la a je a y se p og ama la lash del
subsis ema M3 pulsando el bo ón “debug”. Una ez hecho es o, el subsis ema C28 apa ece desconec ado,
po lo que hab á que pulsa en él con el bo ón de echo del a ón y clica en Conec a , conec andose así es e
sis ema.
Ilus ación 8: Conexión del subsis ema C28.
Pa a ca ga el código del subsis ema C28, se pulsa á el bo ón “load” con el subsis ema C28 ma cado y
pos e io men e “load p og amm” eligiendo el a chi o .ou que se quie a co e .
Después hab á que ealiza la secuencia de a anque:
Rese ea C28
Rese ea M3
Run C28
Run M3
Pa a odos los eje cicios que se explican a con inuación, se end á seleccionado el modo BOOT como
a anque desde la Flash del M3. Pa a ello, el swi ch SW1 end á que ene odos sus in e up o es hacia
abajo.
Ilus ación 9: El swi ch SW1 pe manece con odos sus in e up o es hacia abajo
Aho a se e á cada uno de los ejemplos que con iene el Wo kshop.
En el labo a o io 1 se expone un ejemplo sencillo en el que ambos núcleos abajan de o ma
independien e, haciendo pa padea el subsis ema M3 el led LD3 y el C28 el led LD2.
P ime o se c ea un nue o p oyec o pa a el subsis ema más e y se selecciona el disposi i o, en
es e caso, la amilia ARM, eligiendo el disposi i o F28M35H52C1.
Una ez hecho es o, hab á que añadi los a chi os uen e del p oyec o, haciendo clic de echo
en la ca pe a del p oyec o que apa ece en el explo ado y pulsando “Add iles”.
Pa a es e ejemplo se añaden los siguien es a chi os que se encuen an en la ca pe a “de ice
suppo ”:
S a up_CCS.c, pa a las in e upciones, F28M35H52C1_m3.cmd, pa a localiza las a iables
den o de la memo ia ísica y d i e lib.lib, pa a la inicialización del núcleo y los pe i é icos.
Después se añaden las lib e ías necesa ias, con clic de echo en la ca pe a del p oyec o y
seleccionando p opiedades. En es e caso, debe á inclui se
PROJECT_ROOT/../../../De ice_suppo /MWARE.
El M3 end á que inicializa el eloj del sis ema, con igu ando el egis o
“SysC lClockCon igSe ”, habili a las in e upciones con la unción “In Mas e Enable” y
con igu a el pin GPIO_ C7 (co esponde al GPIO 71 en el subsis ema C28) como ou pu , a
a és del egis o “GPIOPinTypeGPIOOu pu ”, pa a pos e io men e encende lo o apaga lo en
un bucle in ini o con “GPIOPinW i e”
1
.
Inicialmen e, el subsis ema maes o iene el con ol de los pines GPIO, po lo que pa a usa los
en el C28 se end á que cede el con ol de es os desde el M3, usando la unción
“IPCM oCBoo Sys em” y dando el con ol del pin en cues ión median e
“GPIOPinCon igu eCo eSelec ”.
1
Todas las unciones usadas po el M3 se pueden encon a en el a chi o DRL_UG den o de la ca pe a Pd del Wo kshop.
24
Se segui an los mismos pasos pa a c ea el p oyec o del C28, es a ez seleccionando la amilia
C2000 y añadiendo los a chi os F28M35x_CodeS a B anch.asm, F28M35x_SysC l.c,
F28M35x_GlobalVa iableDe s.c,F28M35x_Heade s_nonBIOS.cmd,
F28M35H52C1_c28.cmd y las lib e ías heade s y common.
El main end á que inicializa el sis ema del C28 con “Ini SysC l” (se encuen a en el a chi o
SysC l), con igu a el pin GPIO_70 como ou pu , poniendo el egis o
“GpioG1C lRegs.GPCDIR.bi .GPIO70” a ni el al o y apaga y encende el led modi icando
el egis o GPCDAT
2
.
Realizando la secuencia de a anque explicada an e io men e, se puede obse a como el led
LD2 pa padea con olado po el C28 y el led LD3 po el M3.
En el labo a o io 2 se p e ende ealiza la misma unción que en el labo a o io 1 con el M3
pe o es a ez u ilizando una in e upción pa a hace pa padea el led.
Pa a ello se pa i á de una copia del p oyec o an e io y se modi ica á el main del mismo.
Con espec o al código an e io , se añade la de inición de la in e upción que se enca ga a de
encende y apaga el led y que se ac i a con el ime 0, el cual se con igu a pa a que cuen e
75000000/2 ciclos de en ada de eloj de 13’33 nanosegundos y la in e upción sal e cada 500
ms.
Así, se habili a á el ime con la unción “SysC lPe iphe alEnable
(SYSCTL_PERIPH_TIMER0)” y con ime con igu e y ime loadse se con igu a á como
ime pe iódico de 32 bi .
Pos e io men e, se habili a la in e upción y el ime con las unciones “In Enable”,
“Time In Enable”, “In Regis e ” y “Time Enable”.
Como consecuencia de es a con igu ación, el p og ama sal a a cada 500ms apagando y
encendiendo el led, el cual es á con olado únicamen e po el subsis ema maes o.
Al igual que en el labo a o io 2, en el labo a o io 3 se con igu a el subsis ema de con ol pa a
que ealice median e una in e upción el pa padeo del led LD2.
Como an es, se ha á una copia de la pa e del C28 del labo a o io 1 y se añadi án las uen es
necesa ias pa a que la modi icación del código p incipal sea uncional.
En es e caso, se end á que añadi los a chi os F28M35_CpuTime s.c, F28M35_De aul Is .c,
F28M35_PieC l.c y F28M35_PieVec .c, necesa ios pa a maneja la in e upción.
An es del main, se decla a la unción de la in e upción pa a el ime 0.
Después, se inician los ec o es de in e upción PIE con las unciones “Ini PieC l” y
Ini PieVec Table” con unciones po de ec o, y se asigna a la en ada del ime 0 la unción de
la u ina de in e upción (en es e caso, la u ina iene po nomb e cpu_ ime 0_is ) que se c eó
an es con la siguien e línea:
PieVec Table.TINT0=&cpu_ ime 0_is
Pos e io men e, se inicializa el ime 0 con un pe iodo de 0.125 segundos y se habili a la
in e upción, usando las unciones “Ini CpuTime ” y “Con igCpuTime s” y
“PieC lRegs.PIEIER1.bi .INTx7=1”, “IER|=1”, “EINT” y "ERTM” espec i amen e.
An es del bucle in ini o, se a anca el empo izado 0 median e
“CpuTime 0Regs.TCR.bi .TSS=0”.
Finalmen e, ue a del main, se añade la u ina de la in e upción.
Pa a co e el código, se ha de segui la secuencia de a anque, u ilizando una copia del
labo a o io 2 modi icada pa a da con ol al subsis ema C28 desde el M3, consiguiendo así
que el M3 enga el led LD3 pa padeando y el C28 el led LD2, ambos usando una in e upción.
2
Todas las unciones usadas po el C28 se pueden encon a en el manual écnico del disposi i o
En el labo a o io 4 se in oduce el subsis ema analógico y los módulos PWM.
La onda gene ada po el PWM se á una simé ica de 2KHz con un du y del 50%, la cual se á
cap u ada pos e io men e po el con e ido ADC cuya con igu ación se e á en la segunda
pa e del labo a o io 4.
Se pa i á pues, de una copia del p oyec o C28 del labo a o io 3, y se añadi an las uen es
necesa ias pa a pode con igu a el modulo PWM.
Inicialmen e, se habili a el GPIO0 pa a que uncione como ePWM1A, modi icando el egis o
“GPAMUX1”.
Después, se con igu a el ePWM1A pa a que ope e con una ecuencia de 2KHz usando el
egis o “TBPRD”. Pa a ello, hay que ene en cuen a que:
TBPRD=
Donde, cpu es la ecuencia de la cpu, pwm es la ecuencia del PWM (2 KHz), CLKDIV es
pa e de la p e escala del eloj de base (TBCLK) y se asigna p e iamen e median e
“EPwm1Regs.TBCLT.bi .CLKDIV”, y HSPCLKDIV es la o a pa e de la p e escala del eloj
base y se asigna p e iamen e median e “EPwm1Regs.TBCLT.bi .HSPCLKDIV”.
Además, pa a que la onda sea simé ica, hab á que con igu a el egis o CTRMODE en el
modo up-down y se con igu a an las acciones a ealiza cuando la onda alcance al pe iodo, o
al ce o, con los egis os “PRD” y “ZRO”, ya sea o zando el PWM a ni el al o o bajo.
U ilizando una copia del p oyec o M3 del labo a o io 3, modi icada pa a da el con ol del
GPIO0 al C28 como se io en el labo a o io 1, y ealizando la secuencia de a anque, se end á
el código uncionando, de al mane a que, si conec amos un osciloscopio al GPIO0, se pod á
obse a la siguien e onda:
Ilus ación 10: Onda PWM ob enida con osciloscopio.
32
Ilus ación 21: Visualización Lab iew.
El panel on al es la in e az g a ica con el usua io. Es á o mado po una se ie de bo ones, con oles e
indicado es que el usua io de ine y ecoge las en adas in oducidas po el usua io, mos ando las salidas
co espondien es gene adas po el p og ama.
Po o a pa e, la pan alla de diag ama de bloques es aquella en la cual se ealiza la implemen ación del
p og ama pa a con ola y p ocesa las en adas y salidas c eadas en el panel on al.
Ya que la p og amación es isual, es a consis i á en la unión de di e en es bloques de unciones
p opo cionados po las lib e ías de Lab iew y ajus a los con los pa áme os que se equie an.
En es e p oyec o, se u iliza Lab iew pa a la ob ención y isualización de las medidas que p opo ciona el
sis ema eal a a és del DSP, además de la comp obación del uncionamien o adecuado del mismo.
Pa a ello, como se e á en apa ados p óximos, se pa e de un código en Lab iew especí ico pa a el
con e ido de po encia que se es a a ando, po lo que a p io i, no se end á que p og ama en Lab iew.
A la ho a de ealiza la con igu ación de la UART o el SCI del DSP pa a las comunicaciones en e es e y el
o denado , se u ilizó el p og ama Te aTem, una maquina i ual de uso más simple y con menos
uncionalidad que Lab iew, con obje o de simpli ica la comp obación de las con igu aciones ealizadas en
la ealización de ejemplos de comunicación sencillos pa a ap ende a maneja los dis in os egis os
dedicados a la ansmisión/ ecepción de da os.
A di e encia de Lab iew, Te aTe m no pe mi e la p og amación de un código de o ma isual,
simplemen e mues a lo que se ecibe del MCU y pe mi e el en ío desde el o denado , lo que es su icien e
pa a abaja con los ejemplos más sencillos de comunicación.
Ilus ación 22: Visualización Te aTe m.
El uso del p og ama es bas an e simple.
Den o de la pes aña se up, en la opción Se ial po , se pueden con igu a las ca ac e ís icas del pue o al
que el usua io se quie e conec a (nume o del pue o, elocidad de ansmisión, nume o de da os ecibidos,
pa idad…).
Así mismo, en la opción e minal, el usua io puede con igu a la isualización del e minal, además de
pe mi i el en ío de ca ac e es median e la pes aña local echo (eco local).
El uso de ambos p og amas se e á e lejado en el apa ado de comunicaciones, donde se e á los dis in os
ejemplos ealizados y la con igu ación inal de las mismas pa a el sis ema.
34
35
3 CONFIGURACIÓN DEL DISPOSITIVO
Has a aho a se ha is o los pasos p e ios pa a ap ende a maneja el disposi i o, así como, las he amien as
y equipos que se han u ilizado o an a u iliza pa a la con igu ación del mismo.
El obje i o p incipal de es e p oyec o consis e en la adap ación del código u ilizado pa a con ola y
ges iona el disposi i o de po encia que se quie e con ola con el DSP an e io (Del ino) pa a el nue o
DSP (Conce o).
No obs an e, en los p ime os apa ados de es e capí ulo, se pa i á de uno de los códigos de los labo a o ios
que se explica on en el capi ulo an e io , y pos e io men e en el apa ado de comunicaciones, se
in oduci án los a chi os uen es, lib e ías y código pe enecien es al an e io p oyec o y que siguen siendo
de u ilidad pa a es e.
En es e capí ulo, se p e ende explica la con igu ación del DSP ealizada pa a que el sis ema eal uncione
co ec amen e.
3.1 Módulo PWM
El PWM es una he amien a esencial pa a el con ol de mucho de los disposi i os de elec ónica de
po encia que se encuen an en equipos indus iales y come ciales.
El ePWM u ilizado en es e disposi i o desempeña la unción de un DAC, donde el du y cycle es
equi alen e al alo analógico que p opo ciona el DAC.
El disposi i o cuen a con 9 módulos PWM, los cuales ep esen an un canal comple o PWM compues o de
dos salidas: EPWMxA y EPWMxB.
Ilus ación 23: Modulo ePWM.
36
Los módulos an sinc onizados median e la señal de eloj del sis ema ( SYSCLKOUT) escalada y es án
compues os cada uno po un con ado de 16 bi con con ol de pe iodo y ecuencia. Son capaces de lanza
consignas de compa ación y pe mi en que se ue cen los es ados lógicos de sus salidas (al o, bajo, al a
impedancia) y lanza in e upciones de la CPU y/o ADC SOC’s.
Pa a el con ol de los dispa os de los IGBT’s y al se el sis ema i ásico, se end án 3 módulos PWM, uno
po cada ase (R, S, T) y un modulo PWM adicional pa a el choppe .
Las ondas de es os módulos se án simé icas (Up-Down) con una ecuencia en p incipio de 5-10 KHz, las
cuales gene a an una onda cuad ada con un du y de e minado según la consigna de compa ación que eciba
cada modulo. Es a consigna es la misma pa a los es p ime os módulos pe o des asada en e ellos en 120
g ados. Si la onda gene ada es á po encima de dicha consigna, la onda cuad ada del PWM pe manece a
ni el bajo. Po el con a io, si dicha onda se encuen a po debajo de la consigna, la onda cuad ada
cambia a a ni el al o.
Ilus ación 24: Onda PWM.
Una ez que se sabe cómo ha de se la onda, se pasa á a la con igu ación de los módulos.
Inicialmen e, hab á que con igu a los pines GPIO pa a que uncionen como PWM. En es e caso, el pin
GPIO0 co esponde á a la salida EPWM1A, el GPIO2 al EPWM2A, el GPIO4 al EPWM3A y el GPIO6
4
al EPWM4A, co espondiendo espec i amen e a las salidas R, S, T y CH del disposi i o de po encia.
Pa a ello, den o del main del subsis ema M3 se da á con ol al c28 de los pines 0, 2, 4 y 6, p ime o
habili ando el pue o GPIOA y pos e io men e, dando el con ol de los sucesi os pines:
SysC lPe iphe alEnable(SYSCTL_PERIPH_GPIOA);
GPIOPinCon igu eCo eSelec (GPIO_PORTA_BASE, GPIO_PIN_0, GPIO_PIN_C_CORE_SELECT);
GPIOPinCon igu eCo eSelec (GPIO_PORTA_BASE, GPIO_PIN_2, GPIO_PIN_C_CORE_SELECT);
GPIOPinCon igu eCo eSelec (GPIO_PORTA_BASE, GPIO_PIN_4, GPIO_PIN_C_CORE_SELECT);
GPIOPinCon igu eCo eSelec (GPIO_PORTA_BASE, GPIO_PIN_6, GPIO_PIN_C_CORE_SELECT);
4
El GPIO6 no es á di ec amen e conec ado al DIMM de la placa (con olCARD), po lo que pa a ene acceso a él a a és del
docks a ion end emos que conec a un jumpe en e los pines J13 pin 3( ila B) y J17 pin 3( ila A) de la a je a.
En el código del C28, se con igu a an es os pines como salidas PWM:
GpioC lRegs.GPAMUX1.bi .GPIO0 = 1; // GPIO0 = ePWM1A R
GpioC lRegs.GPAMUX1.bi .GPIO2 = 1; // GPIO2 = ePWM2A S
GpioC lRegs.GPAMUX1.bi .GPIO4 = 1; // GPIO4 = ePWM3A T
GpioC lRegs.GPAMUX1.bi .GPIO6 = 1; // GPIO6 = ePWM4A CH
Después se con igu a cada modulo PWM:
Modulo 1:
En el modulo 1 se con igu a el egis o ase pa a que la onda comience en 0 y no se ca ga el
egis o del con ado con el egis o de ase, de al o ma que a pa i de la onda del modulo
uno se gene a an las o as es.
EPwm1Regs.TBPHS.hal .TBPHS = 0;
EPwm1Regs.TBCTL.bi .PHSEN = TB_DISABLE;
Pos e io men e se pone a ce o el con ado y se ac i a el egis o somb a.
El egis o somb a gua da el nue o alo de la consigna de compa ación y lo ca ga una ez
que la onda PWM ha e minado el ciclo.
EPwm1Regs.TBCTR = 0x0000;// Clea coun e
EPwm1Regs.TBCTL.bi .PRDLD = TB_SHADOW;
Se sinc oniza la señal de salida cuando el con ado es e a ce o y se ajus a la onda PWM pa a
que cuando alcance la consigna de compa ación se ponga a ni el bajo y ice e sa.
EPwm1Regs.TBCTL.bi .SYNCOSEL = TB_CTR_ZERO; // b_c =0
EPwm1Regs.AQCTLA.bi .CAU = AQ_CLEAR; //cuando alcanza CMPA se pone a
BAJO(inc emen ado)
EPwm1Regs.AQCTLA.bi .CAD = AQ_SET;//cuando alcanza CMPA se pone a ALTO el
pwm(dec emen ando)
La onda simé ica (up-down) es a á con igu ada con una ecuencia de 10KHz median e el
egis o TBPRD, ajus ando las escalas de iempo (CLKDIV y HSPCLKDIV) a 1, y se
con igu a á el egis o somb a pa a que gua de el alo de la consigna de compa ación
(CMPA) y lo ca gue en ce o y al inaliza el pe iodo del PWM, pa a que se p oduzca la
con e sión del ADC en esos dos ins an es.
EPwm1Regs.TBCTL.bi .CLKDIV = 0; // CLKDIV = “di by 1”;
EPwm1Regs.TBCTL.bi .HSPCLKDIV = 0; // HSPCLKDIV = “di by 1”
EPwm1Regs.TBCTL.bi .CTRMODE = 2; // coun mode = up-down mode
EPwm1Regs.CMPCTL.bi .SHDWAMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bi .LOADAMODE = CC_CTR_ZERO_PRD; // load on CTR=Ze o y
CTR=P d
EPwm1Regs.TBPRD = PERIOD;
38
El módulo uno es el que se enca ga de habili a la in e upción SOC, que lanza la con e sión
en ce o y cuando se alcanza el pe iodo del PWM, pa a ello se modi ica án los egis os
ETSEL y ETPS:
EPwm1Regs.ETSEL.bi .SOCAEN = 1;//enable Soc en A
EPwm1Regs.ETSEL.bi .SOCASEL = 0x3; // se gene a el pulso en ce o y p d.
EPwm1Regs.ETSEL.bi .SOCASELCMP = 0x0;//CMPA
EPwm1Regs.ETPS.bi .SOCAPRD = 1; //gene a pulso en el p ime e en o
Los o os 3 módulos se con igu an de igual o ma, cambiando su egis o espec i o, Epwm2
pa a el 2, Epwm3 pa a el 3 y Epwm4 pa a el 4.
Po úl imo, se asignan las consignas de compa ación ob enidas a cada módulo den o de la u ina del ADC:
EPwm1Regs.CMPA.hal .CMPA = e .pwm. ;
EPwm2Regs.CMPA.hal .CMPA = e .pwm.s;
EPwm3Regs.CMPA.hal .CMPA = e .pwm. ;
EPwm4Regs.CMPA.hal .CMPA = e .pwm.chp;
Una ez hecho es o, conec ando un osciloscopio a los pines 0, 2, 4 y 6 el usua io pod á obse a las ondas
PWM gene adas que ha con igu ado.
3.2 ADC
El con e ido analógico-digi al (ADC) pe mi e la con e sión de señales analógicas, en es e caso las
ensiones e in ensidades que se gene an en el disposi i o de po encia, en señales digi ales, pa a que puedan
se a adas ácilmen e po el DSP.
El modulo ADC del disposi i o cons a de 16 canales
5
con una esolución de 12 bi , y su es uc u a es pa e
egis o de ap oximaciones sucesi as (SAR) pa e pipeline.
Es á compues o po una pa e analógica que con iene ci cui os mul iplexado es(MUX), ci cui os de sample
and hold(S/H), ci cui os egulado es de ol aje, un ci cui o de con e sión y o os ci cui os de apoyo, y una
pa e digi al o mada po con e so es p og amables, egis os de esul ados y el bus de comunicaciones
ACIB.
Ilus ación 25: Modulo ADC.
Pa a el sis ema, se u iliza an los canales del 1 al 7 del pue o A del ADC1
6
pa a que la con e sión de odos
los canales comience con la señal de igge que gene a el modulo PWM1 con igu ado en el apa ado
an e io .
Pa a ello, inicialmen e se c ea á una in e upción del ADC y se con igu a á el eloj del sis ema al y como
se io en el labo a o io 4 del apa ado 2.1.2 de es e documen o.
Es a in e upción ac ualiza á los alo es de la consigna de compa ación de los PWM, ajus ando así los
dispa os de los IGBT´s.
Pos e io men e, se con igu a an los egis os del ADC pa a la con e sión de los canales.
5
De es os canales solo 10 son accesibles en es e disposi i o.
6
Con espec o a la docks a ion.
40
Así, se modi ica á el egis o ADC1 pa a que las con e siones no se solapen, haciendo que la in e upción
del ADC sal e una ez que se haya ob enido un esul ado de con e sión y que la señal que ac i e es a
in e upción sea EOC0.
Adc1Regs.ADCCTL2.bi .ADCNONOVERLAP = 1; // Enable non-o e lap mode
Adc1Regs.ADCCTL1.bi .INTPULSEPOS = 1; // ADCINT1 ips a e AdcResul s la ch
Adc1Regs.INTSEL1N2.bi .INT1SEL = 0; // se up EOC0 o igge ADCINT1 o i e
Después, el usua io elegi á que SOC se enca ga de con e i cada canal. Así, el SOC0 se enca ga a de la
con e sión del canal de en ada A1, el SOC1 del A2 y así sucesi amen e
7
.
Adc1Regs.ADCSOC0CTL.bi .CHSEL = 8; //B0/A1/I
Adc1Regs.ADCSOC1CTL.bi .CHSEL = 2;//A2/A2/ Is
Adc1Regs.ADCSOC2CTL.bi .CHSEL = 3;//A3/A3/I
Adc1Regs.ADCSOC3CTL.bi .CHSEL = 4;//A4/A4/Vdc
Adc1Regs.ADCSOC4CTL.bi .CHSEL = 0xC;//B4/A5/V
Adc1Regs.ADCSOC5CTL.bi .CHSEL = 6;//A6/A6/Vs
Adc1Regs.ADCSOC6CTL.bi .CHSEL = 7;//A7/A7/V
Pa a indica que la señal que lanza la con e sión sea el PWM1 con el SOCA, se modi ica el egis o
TRIG1SEL pa a que se sinc onice con la señal PWM:
AnalogSysc lRegs.TRIG1SEL.all = 5;
Y pos e io men e, se hace que es a señal sea la que ac i e cada uno de los canales SOC an es
seleccionados.
Adc1Regs.ADCSOC0CTL.bi .TRIGSEL = 5; // Se SOC0 s a igge o
// ADC T igge 1 o he ADC
Adc1Regs.ADCSOC1CTL.bi .TRIGSEL = 5; // Se SOC1 s a igge o
// ADC T igge 1 o he ADC
Adc1Regs.ADCSOC2CTL.bi .TRIGSEL = 5; // Se SOC2 s a igge o
// ADC T igge 1 o he ADC
Adc1Regs.ADCSOC3CTL.bi .TRIGSEL = 5; // Se SOC3 s a igge o
// ADC T igge 1 o he ADC
Adc1Regs.ADCSOC4CTL.bi .TRIGSEL = 5; // Se SOC4 s a igge o
// ADC T igge 1 o he ADC
Adc1Regs.ADCSOC5CTL.bi .TRIGSEL = 5; // Se SOC5 s a igge o
// ADC T igge 1 o he ADC
Adc1Regs.ADCSOC6CTL.bi .TRIGSEL = 5; // Se SOC6 s a igge o
// ADC T igge 1 o he ADC
7
El alo del egis o depende á de la conexión in e na en e la docks a ion y la con olCARD. Po ejemplo, el pin A1 de la docks a ion
co esponde al canal ADC1_B0 de la con olCARD.
Po úl imo, se indica du an e cuan os ciclos se quie e que pe manezca el da o de con e sión median e
el egis o ACQPS. El alo esc i o en es e egis o es uno menos del núme o de ciclos deseados.
Adc1Regs.ADCSOC0CTL.bi .ACQPS = 6; // se SOC0 S/H Window o 7 ADC
// Clock Cycles, (6 ACQPS + 1)
Adc1Regs.ADCSOC1CTL.bi .ACQPS = 6; // se SOC1 S/H Window o 7 ADC
// Clock Cycles, (6 ACQPS + 1)
Adc1Regs.ADCSOC2CTL.bi .ACQPS = 6; // se SOC2 S/H Window o 7 ADC
// Clock Cycles, (6 ACQPS + 1)
Adc1Regs.ADCSOC3CTL.bi .ACQPS = 6; // se SOC3 S/H Window o 7 ADC
// Clock Cycles, (6 ACQPS + 1)
Adc1Regs.ADCSOC4CTL.bi .ACQPS = 6; // se SOC4 S/H Window o 7 ADC
// Clock Cycles, (6 ACQPS + 1)
Adc1Regs.ADCSOC5CTL.bi .ACQPS = 6; // se SOC5 S/H Window o 7 ADC
// Clock Cycles, (6 ACQPS + 1)
Adc1Regs.ADCSOC6CTL.bi .ACQPS = 6; // se SOC6 S/H Window o 7 ADC
// Clock Cycles, (6 ACQPS + 1)
Una ez se ha cambiado los egis os, se inicia el adc1 con la unción Ini Adc1, que se encuen a de inida
en las lib e ias del disposi i o.
3.3 Comunicaciones
Cuando se es a con olando un sis ema, se necesi a una in e az que pe mi a isualiza lo que es á
ocu iendo y ac ua en consecuencia. Pa a ello, es p ecisa la comunicación en e el DSP y la in e az del
usua io, que en es e caso se á Lab iew.
El MCU que se es a u ilizando iene muchos pue os de comunicación (I2C, CAN, E he ne , McBSP…)
pe o es e capí ulo, y es e p oyec o se cen a á en dos de ellos: UART y SCI.
3.3.1 UART
La UART (Uni e sal asynch onous ecei e - ansmi e ) es un pe i é ico que con ola los pue os y
disposi i os se ie, y se enca ga de con e i los da os en o ma o pa alelo, que eciben los buses del
sis ema, a da os en o ma o se ie, pa a que puedan se ansmi idos po los pue os y ice e sa.
No malmen e se usa en conjunción con o os es ánda es de comunicación, como son RS-232 que es el que
se u iliza á más adelan e.
Pe mi e el en ío y ecepción de da os en dis in os o ma os y elocidades, de ahí su ca ác e uni e sal.
La UART del disposi i o en cues ión se encuen a en el subsis ema M3 y pe mi e elocidades en e la
elocidad del eloj del M3/16, pa a elocidades no males, y la elocidad del eloj del M3/ 8, pa a al as
elocidades.
Cons a de dos FIFO de 16 * 8 independien e con longi ud p og amable, una de ansmisión (Tx) y o a de
ecepción (Rx)) pa a agiliza la ca ga de la CPU.
Incluye los bi s es ánda de comunicación asínc ona pa a el comienzo, pa ada y la pa idad y de ección de
allos de comunicación.
Se consigue una ans e encia e icien e median e la DMA, la cual pe mi e que la ansmisión y ecepción
sea independien es una de o a median e el uso de canales sepa ados, y que las pe iciones de ecepción y
ansmisión se acep en únicamen e cuando haya da os en la FIFO o haya hueco espec i amen e.
48
Como se io en el ejemplo an e io , inicialmen e hab á que da el con ol de los pines 28 y 29 desde el M3
al C28 y después con igu a dichos pines en el código del C28 pa a que ac úen como Rx y Tx
La con igu ación del SCI y las FIFO es la misma que la del ejemplo (57600, 8 bi de da os, sin pa idad, 1
bi de pa ada...), sal o que es a ez no se habili an las in e upciones ya que no son necesa ias.
Al inal de dicha con igu ación, se inicializa á una abla necesa ia pa a ob ene el CRC en el MODBUS,
que es el p o ocolo is o desde el lado del escla o que lle a a cabo el p ocesamien o de los da os ecibidos.
En el main p incipal, den o del bucle while, exis en es maquinas de es ados:
La máquina de ecepción (maq_es _ xon) que se enca ga de la ecepción de mensajes, la máquina de
es ados de ansmisión (maq_es _ xon) que se enca ga del en ío de mensajes y el modbus que ya se
mencionó an e io men e.
Pa a la máquina de es ados de ecepción se ac ua igual que en el ejemplo an es mencionado, espe ando a
que la FIFO enga un da o y almacenando dicho da o pos e io men e en el bus de ecepción, inc emen ando
a su ez un con ado que pe mi i á el a ance de la máquina de es ados del modbus.
i ( (SciaRegs.SCIFFRX.bi .RXFFST != 0) ) //si no es a acia la i o
{
bu _ xon_28335[con _ xon_28335++] = SciaRegs.SCIRXBUF.all; // ecibe da o
con _ xon_28335++;
}
Se p ocede igual con la máquina de es ados de ansmisión:
while (SciaRegs.SCIFFTX.bi .TXFFST != 0) {}
//FIFO de ansmision no acia
con _ xon_28335--;
SciaRegs.SCITXBUF = bu _ xon_28335[ind_ xon_28335++]; //ca go da o
En la máquina de es ados del modbus se comp ueba inicialmen e si el da o ecibido concue da con la
di ección del escla o, si es así se pasa al siguien e es ado, inicializando p e iamen e los pa áme os, si no,
se man iene en el es ado de eposo.
El siguien e da o que llegue debe á se el código de unción del modbus pa a esc i u a o lec u a en los
egis os. Si no es una ins ucción alida, se gene a á un código de e o , y si lo es, se i á comp obando en
los siguien es es ados si el mensaje ecibido es álido o no.
Finalmen e, si el da o que llegó es álido, se ealiza á la unción de lec u a o esc i u a en los egis os según
el código de la unción que llegó.
Una ez con igu ado el egis o, se pod á u iliza un código de Lab iew el cual es á p og amado pa a
p oba es e disposi i o de po encia.
Ilus ación 31: Código Lab iew pa a el disposi i o de po encia.
Así, con igu ando el pue o se ie pa a que se co esponda con el que se comunica el disposi i o, se pod á
obse a que es a comunicación se p oduce.
50
4 PROBLEMAS ENCONTRADOS
A la ho a de p og ama un DSP que no es su icien emen e conocido, e incluso aunque el usua io enga
cie o manejo del mismo, es no mal que en las p ime as p uebas del código su jan e o es a la ho a de
compila o es e no ealice las a eas que se p e endía que hicie a.
En es e capí ulo se mues an los e o es que su gie on a medida que a anzaba la con igu ación del sis ema
inal, con el in de e i a posibles e o es u u os en p oyec os simila es, ya sean abajos con el mismo
disposi i o aquí usado, o bien allos gené icos en la p og amación de un sis ema embebido.
4.1 Accesibilidad de los pines GPIO
Pa a abaja con el MCU se u iliza una a je a (Con olCARD) en la que es e es á in eg ado y que pe mi e
un acceso ácil a los pines de en ada y salida y la p og amación del MCU median e la inse ción de dicha
a je a en la docks a ion.
Es a a je a iene una conexión DIMM de 100 pines que conec an di ec amen e pines del MCU con los
pines de la placa de abajo.
No obs an e, no odos los pines del DSP ienen un acceso di ec o a es a placa de abajo y puede que a la
ho a de in en a ob ene señal desde un pin que se ha con igu ado co ec amen e (dando el con ol al
subsis ema C28 desde el M3 y con igu ando el pin GPIO pa a que uncione como se equie e den o del
código del C28), no se consiga.
Es es o mismo lo que pasó al con igu a el GPIO6 como salida PWM, ya que al con igu a los cua o
módulos PWM como se explico en el capí ulo 3.1, y obse a dichas ondas median e un osciloscopio, se
podían obse a las ondas que gene aban los es p ime os módulos (asociados a los pines 0, 2 y 4) pe o no
la del cua o modulo (asociada al pin 6).
Pa a soluciona lo, ue necesa io conoce el conexionado in e no en e los pines del DSP y el DIMM.
Ilus ación 32: Pines de la Con olCARD.
52
Ilus ación 33: DIMM 100.
Como se puede obse a en la ilus aciones, el GPIO6 no es á conec ado di ec amen e al DIMM, si no que
es e a del MCU a la ila de pines de la Con olCARD ( ila B) y es el pin 3 del pue o J17 de la ila A el
que es á conec ado al DIMM 100 de la placa.
La solución pasa po conec a un jumpe en e dichos pines pa a conec a ambas líneas.
4.2 Inse ción del código an iguo.
Como se comen o con an e io idad, pa a desa olla el código inal se u ilizó un código p e io diseñado
pa a el DSP an e io (Del ino).
Ambos disposi i os disponen de pe i é icos simila es, pe o se acceden a ellos desde di e en es egis os en
uno u o o MCU.
Es po ello que a la ho a de in oduci el código an e io , se end á que cambia los egis os que dan acceso
a los pe i é icos del Del ino po aquellos que dan acceso a los mismos pe i é icos del Conce o. Además, se
obse an una se ie de lib e ías que ambién hab an de modi ica se o cambia se po o as adecuadas pa a
nues o MCU.
Inicialmen e, ya que el obje i o del p oyec o es á pensado pa a que el código sea uncional den o del
subsis ema C28, hab á que da con ol a es e subsis ema de odos los pines GPIO que se ayan a u iliza
pa a la conexión en e el DSP y el disposi i o de po encia.
Pa a ello, se habili an los pines desde el M3 que apa ecen en la siguien e abla, en la que se mues a la
unción que ealiza a cada uno, como ya se ha is o en capí ulos an e io es del documen o.
PIN
PUERTO
ENTRADA/SALIDA
FUNCION
GPIO0
A
SALIDA
EPWM1A (CANAL R)
GPIO2
A
SALIDA
EPWM2A, (CANAL S)
GPIO4
A
SALIDA
EPWM3A, (CANAL T)
GPIO6
A
SALIDA
EPWM4A, (CANAL CH)
GPIO1
A
SALIDA
PIN DE TESTEO
GPIO7
A
SALIDA
K2
GPIO22
D
SALIDA
K1
GPIO13
B
SALIDA
DRIVER
GPIO21
D
ENTRADA
ERROR
GPIO27
E
SALIDA
CLR_ERROR
GPIO28
E
ENTRADA
Rx(RECEPCION
COMUNICACIONES)
GPIO29
E
SALIDA
Tx(TRANSMISION
COMUNICACIONES)
Tabla 3: GPIO’s u ilizados.
Una ez con igu ados los pines GPIO, se in oduci an en el bucle in ini o del main del C28 las máquinas
de es ados co espondien es a las comunicaciones ya comen adas an e io men e (maq_es _ xon,
maq_es _ xon y modbus) y una maquina de es ados que se enca ga del con ol del sis ema (S a eMachine).
Así mismo, en la in e upción del ADC se in oduci an una se ie de unciones que pe mi i án ajus a el
alo ob enido de las co ien es y ensiones a a és del con e ido y asigna un nue o Du y a los canales
R, S, T y CH.
Pa a pode u iliza dichas unciones, hab á que añadi una se ie de a chi os (.c) y lib e ías (.h) que se
comen an a con inuación.
Inicialmen e, se c eó una ca pe a con odas las lib e ías de las que se pa ía modi icadas pa a su uso en el
nue o MCU, pa a ag ega pos e io men e dicha ca pe a al nue o código ( al y como se io en el capi ulo
2.1.2). Las modi icaciones consis ie on en el cambio del acceso de es as lib e ías a o as p opias del
disposi i o an iguo, po las del nue o disposi i o.
Dichas lib e ías son las siguien es:
“backg ound.h”: Incluye las decla aciones de las unciones S a eMachine (maquina de es ados
de con ol del sis ema), Clea E o ( ese ea el es ado de e o a a és del pin asociado al
mismo), Rese C l ( ese ea las a iables de con ol), SlideWindow, CheckAla m y po
( unciones pa a adap a los da os ob enidos pa a la isualización en Lab iew). Todas es as
unciones es án de inidas en el a chi o backg ound.c.
54
“con ig.h”: Inicialmen e, con enía las decla aciones de las unciones de con igu ación del
ADC, PWM, GPIO, y UART del sis ema, pe o se modi ico pa a que solo incluye a las de la
UART, y o as unciones pa a la inicialización del sis ema. Es as se encuen an de inidas en el
a chi o Con ig.c.
“cubeV2.h”: Es la lib e ía que se u iliza en el main y que incluye odas las demás que se an a
usa .
“de .h”: Con iene de iniciones de unciones básicas, como encende o apaga un pin, pa a un
uso mas ápido en el código p incipal. Además de ine los es ados y cons an es pa a la máquina
de es ados, así como los códigos de e o .
“e_main.h”: De ine las cabece as del main y una se ie de cons an es que se u iliza an.
“e_mem ija.h”: Pe mi e el uso del a chi o e_mem ija.c que jun o al a chi o MEMFIJA.cmd
pe mi e ubica las a iables en un espacio de memo ia ísica conc e o. En el siguien e apa ado
se comen a a más en p o undidad.
“e_modbus_ _5.h”, “e_moni o izacion_auxilia .h” y “e_ a _comp_modbus.h”: Con ienen
de iniciones pa a las unciones de comunicación comen adas en el capi ulo an e io .
“mod.h”: Con iene las de iniciones de las unciones que se encuen an en el a chi o mod.c
pa a con ola los módulos PWM según que amos con igu a el disposi i o de po encia
(in e so , ec i icado , back o back…).
“ a .h”: Incluye las de iniciones de una se ie de es uc u as, ellenadas pos e io men e en
a .c, que con ienen las medidas omadas po el sis ema, las co ecciones pa a esas medidas,
alo es de e e encia, es ados de e o es…
4.3 A chi os CMD
Como se comen aba en el apa ado an e io , exis en unos a chi os cuya ex ensión es CMD (comando), que
pe mi en aloja las a iables del p og ama en un espacio de memo ia conc e o.
Es os a chi os di iden la memo ia en dos páginas y es as dos páginas es án a su ez di ididas en secciones
de amaño a iable. La pagina 0 po de ec o albe ga la memo ia de p og ama y la pagina 1 la memo ia de
da os. Cada una de las di e en es secciones de memo ia iene una longi ud de inida y es á localizada a pa i
de una di ección de memo ia conc e a, las cuales se pueden modi ica , po ejemplo, uniendo dos secciones
consecu i as pa a ob ene una de mayo amaño.
Al compila nues o código, se obse aba en CCS un e o de espacio de memo ia con una se ie de
a iables conc e as.
El allo es aba en el a chi o MEMFIJA.cmd, que p o enía del código an e io y po an o, colocaba las
a iables en zonas de memo ia ya ocupadas en el disposi i o.
Pa a soluciona lo, se buscó una sección disponible den o de la pagina 1 (memo ia de da os) en el a chi o
“F28M35HM52C1_c28.cmd” p opo cionado en las lib e ías del disposi i o. Es a co espondía al egis o
“RAML0” que inicialmen e comenzaba en la di ección 0x008000 de memo ia y enía una longi ud de
1000. Sin emba go, el espacio de ocupación de las a iables e a supe io al amaño de es a sección, po lo
que se eliminó la sección “RAML1” consecu i a a es a y ambién disponible y se cambió la longi ud inicial
a 2000.
Así mismo, se escogió la sección “RAMS0” jun o con la “RAMS1” pa a gua da las a iables locales, y
hubo que amplia la sección “FLASHA” de la página de memo ia de p og ama anexándola con la sección
“FLASHD”.
Den o del a chi o cmd (MEMFIJA.cmd), las a iables se colocan a pa i de la di ección 8000, indicando
en cada una de ellas la longi ud que ocupan.
Cie as pa es del código de la pa e de comunicaciones hacian e e encias di ec as a las di ecciones de
es as a iables, po lo que pa a el acceso co ec o a dichas a iables se u o que cambia den o del código
es as di ecciones a las ac uales, solucionandose así el p oblema.
4.4 Comunicaciones
En la comunicación en e el disposi i o y Lab iew su gie on a ios p oblemas que se comen an a
con inuación.
Inicialmen e, una ez con igu ado el egis o SCI y conec ado los elemen os ex e nos (adap ado del pue o
se ie, placa de adap ación y cables en Rx y Tx) se p obó comunica el disposi i o con Lab iew sin éxi o, ya
que es e ul imo mos aba e o es de imeou .
Se decidió po an o ealiza los ejemplos comen ados en el apa ado 3.3 del documen o, con el in de
comp oba si el allo es aba en la comunicación de los disposi i os y no en o a pa e del código.
T as p oba dichos ejemplos depu ándolos median e b eakpoin s y u ilizando el e minal Te aTe m, se
obse aba como el disposi i o ni ansmi ía aquello que se suponía debía ansmi i ni llegaba a ecibi
ningún da o en el bu e de ecepción.
Uno de los p oblemas ue el ajus e de la elocidad de ansmisión en e el Te aTe m y el disposi i o, ya
que es e es aba con igu ado pa a una ansmisión de 115200 y el Te aTe m ecibía a 9600, po lo que se
cambio el código y la con igu ación del e minal pa a que ambas ue an de 57600, ya que es a es la
elocidad a la que se comunica Lab iew.
Aunque Lab iew seguía emi iendo allos de imeou , el e minal si mos aba los da os en iados, es deci , la
ansmisión desde el DSP uncionaba, pe o la ecepción no.
Sabiendo que la con igu ación de los egis os de ecepción e a la co ec a, el p oblema se educía a un
allo de ha dwa e.
Po ello se comp obó inicialmen e median e un osciloscopio que e ec i amen e el da o en iado a a és del
Te aTe m se ecibía y que odos los cables es aban en buen es ado.
El p oblema es aba en uno de los swi ches de la Con olCARD, el cual se había conmu ado
acciden almen e.
Ilus ación 34: Swi ch SW3
56
El swi ch en conc e o e a el SW3, el cual se enca ga de habili a las señales de comunicación TRST/ISO
SCI. Es e swi ch iene dos in e up o es, el p ime o se enca ga de conec a o desconec a la señal TRST del
ci cui o JTAG al DSP, y el segundo, mo i o del allo, se enca ga de ac i a la comunicación Rs-232 a
a és de los pines 2 y 42 del DIMM bloqueando el GPIO28 en al o ni el en posición de ON o habili a el
pin GPIO28 como GPIO. Es a úl ima opción es la que in e esa, ya que es es e pin el que se quie e conec a
con el disposi i o de po encia y den o del código se puede con igu a como Rx.
Una ez ealizado es o, los ejemplos de comunicación con la UART y el SCI e an uncionales, así que se
ol ió a comp oba el código inal.
En es e pun o y as el uso de b eakpoin s, se obse aba que el disposi i o llegaba a ecibi da os en el
bu e de ecepción, y po an o la máquina de es ados asociada a la ecepción uncionaba co ec amen e,
sin emba go, la máquina de es ados del modbus, comen ada en el apa ado 3.3.2, no a anzaba del es ado de
eposo.
Es e bloqueo del código es debido a que el inc emen o de la a iable “con _ xon_28335” no se p oduce
una ez ecibido el da o y po an o la máquina de es ados del modbus, que inicialmen e es a en eposo, no
en a en el “i ” que comp ueba si el da o ecibido es álido, ya que es a a iable pe manece a ce o siemp e.
Al no obse a se cambio en es a a iable, se pensó que el p oblema es aba nue amen e en la localización
de las a iables globales en memo ia.
La seccion de memo ia que albe gaba las a iables locales(S0 en es e caso) e a una seccion de memo ia
compa ida po ambos subsis emas (M3 y C28). Es os bloques de memo ia son accesibles en esc i u a y
lec u a po el subsis ema maes o, sin emba go solo son accesibles en modo lec u a pa a el subsis ema de
con ol.
Es po ello que la a iable en cues ion no cambiaba de es ado, ya que no podiamos eesc ibi la a a es del
C28.
Pa a habili a la esc i u a en dicha seccion de memo ia, se dió pe miso desde el subsis ema maes o
median e la uncion “RAMMReqSha edMemAccess” , y añadiendo la lib e ía am.h y el a chi o am.c
donde se encuen an las de iniciones y el codigo de dicha unción (localizada en la d i e lib).
64
6 ACCIONES FUTURAS
Como se ha ido comen ando a lo la go del p oyec o, el DSP que se es a manejando incluye dos núcleos
independien es, que pe mi en que la ca ga compu acional sea meno que si ue a un solo núcleo.
En es e sen ido, el subsis ema M3 es á diseñado pa a enca ga se de las comunicaciones y el C28 pa a el
con ol.
Aunque inicialmen e se plan ea el uso de es e disposi i o como solución a la ele ada ca ga de la CPU del
disposi i o an e io y a las in e e encias en el con e ido ADC, el desa ollo del p oyec o se limi a a la
uncionalidad del código en el subsis ema C28.
Como acciones u u as, se p opone ealiza el código co espondien e a las comunicaciones desde el
subsis ema M3 y a a és del pue o E he ne , dejando al subsis ema C28 enca gado de los módulos PWM
y del código de con ol del disposi i o de po encia, de mane a que el ap o echamien o del disposi i o sea
el mayo posible y se puedan cumpli los equisi os empo ales que se mencionan.
66
7 BIBLIOGRAFÍA
Se gio To al Ma ín: Apun es elec ónica indus ial. Depa amen o de ingenie ía elec ónica,
Uni e sidad de Se illa.
Texas Ins umen s: C200 Conce o Mic ocon olle s (Da ashee ).
Texas Ins umen s: Conce o F28M35x. Technical Re e ence Manual.
Texas Ins umen s: Wo kshop Guide and Lab Manual
Texas Ins umen s: F28M35x Pe iphe al D i e Lib a y. Use ’s Guide.
Na ional Ins umen s: Pagina web disponible en: <h p://www.ni.com/lab iew/esa/>
Uni e sidad de Se illa: Tu o ial Lab iew.
Texas Ins umen s: Con olSUITE.
Texas Ins umen s: Conce o F28m35xx Con olCARD (in oshee ).
Algunas de las imagenes p esen adas se han omado del buscado Google.
68