universidade federal do cearÁ centro de …‰ robÉrio xavier dos santos... · seus datasheets...

64
i UNIVERSIDADE FEDERAL DO CEARÁ CENTRO DE TECNOLOGIA DEPARTAMENTO DE ENGENHARIA ELÉTRICA COMPARATIVO ENTRE OS DSPS TMS320F2812 E TMS320F28335 JOSÉ ROBÉRIO XAVIER DOS SANTOS JÚNIOR Fortaleza Junho de 2011

Upload: tranthuy

Post on 14-Feb-2019

212 views

Category:

Documents


0 download

TRANSCRIPT

i

UNIVERSIDADE FEDERAL DO CEARÁ

CENTRO DE TECNOLOGIA

DEPARTAMENTO DE ENGENHARIA ELÉTRICA

COMPARATIVO ENTRE OS DSP’S TMS320F2812 E

TMS320F28335

JOSÉ ROBÉRIO XAVIER DOS SANTOS JÚNIOR

Fortaleza

Junho de 2011

ii

JOSÉ ROBÉRIO XAVIER DOS SANTOS JÚNIOR

COMPARATIVO ENTRE OS DSP’S TMS320F2812 E

TMS320F28335

Trabalho Final de Curso submetida à Univer-

sidade Federal do Ceará como parte dos requi-

sitos para obtenção do grau de Graduado em

Engenharia Elétrica.

Orientador: Prof. Me. Eber de Castro Diniz

Fortaleza

Junho de 2011

iii

iv

“Quando menos se espera,

o que seria já era. O que seria de nós,

se não fosse a ilusão que nos trouxe até aqui.”

(Humberto Gessinger)

v

A Deus,

Aos meus pais, Robério e Simone,

Ao meus irmãos, André, Igor e Márcia,

A minha avó, Raimunda,

A todos meus amigos e familiares.

vi

AGRADECIMENTOS

Primeiramente a Deus por ter me guiado, por todos esses anos e nos que virão.

Ao Professor Me. Eber de Castro Diniz, pela sua orientação no começo dessa pesqui-

sa, pela grande amizade e paciência.

Ao Professor Me. Antonio Barbosa de Souza Junior, pela amizade e enorme apoio di-

recionado a mim.

Ao Professor Dr. Luiz Henrique Silva Colado Barreto, pela confiança que depositou a

mim a fim de participar em projetos de Iniciação Científica.

Aos professores do departamento Fernando Antunes, José Carlos, Otacílio Mota, Lau-

rinda Reis, Ricardo Thé, Paulo Praça, André Lima, Adson Bezerra, Sergio Daher, José Al-

meida, Carlos Gustavo, Ruth Leão.

Ao Eng. e amigo Dalton Honório, grande colega de pesquisa, que me ajudou muito

nessa pesquisa, obrigado pelo grande apoio, companheirismo, pela extensa paciência, pela

amizade e dedicação que teve para mim no decorrer dessa pesquisa.

Aos meus colegas de pesquisa, Jéssica e André Empresus, por todas as vezes que os

perturbei, sempre estavam presentes a me ajudar, chegando muitas vezes a parar o que esta-

vam fazendo para me auxiliar.

A meu Pai Robério, minha mãe Simone, meu irmão André, que aturaram todos esses

anos acordados, esperando eu chegar em casa, pela madrugada, da faculdade.

A toda minha família que apoiou minha caminhada, sempre perguntando quando eu i-

ria ser o engenheiro da família, ansiosos pelo fim da graduação.

A minha namorada, por entender essa vida louca que tive neste semestre e pela com-

preensão que teve ao longo do semestre. Peço desculpas pelos momentos de ausência, mas tal

esforço foi necessário.

Aos colegas de laboratório que me ajudaram durante o período da minha graduação,

Wilton Jhonnes, Filipe Féfis, Higor, Marcelo, Célio Rogério, Lincoln, Alexandre Valério, Le-

andro, Kathiane, Zairton Segundo, Felipe (vulgo fófis), Wiglla, Wellington Assunção, Felipe

Monteiro, Ícaro, Onivaldo Segundo, Sérgio Falcão, Thiago Meneses, Tiago e Kleymilson.

Aos meus amigos de infância Ítalo, Daniel, Lucas (amigo), Lucas (primo), Rodrigo

Viana, Giovani, Josimar, Charles.

A todos aqueles que duvidaram que esse trabalho seria concluído.

vii

Santos Júnior, J. R. X. “comparativo entre os DSP’s TMS320F2812 e

TMS320F28335”, Universidade Federal do Ceará – UFC, 2011, 63p.

Abordou-se neste trabalho um estudo sobre DSP’s, onde focou-se especificamente em

DSP’s especialmente desenvolvidos para executar um controle digital para acionamentos de

motores. Dentre as várias famílias de DSP’s existentes no mercado que possuem essa função,

escolheram-se duas referências, TMS320F2812 e o TMS320F28335. Foi feito um estudo pri-

meiramente individual sobre cada um dessas referencias, começando com uma abordagem

geral, sobre seus componentes internos. Depois foi feito um comparativo onde utilizou-se

seus datasheets como base para uma comparação sobre seus periféricos e um código com a

mesma função, em ambas as referências, para comparar o desempenho desses DSP’s e assim

concluir qual o melhor DSP.

Palavras-Chave: DSP, TMS320F2812, comparativo entre DSP’s, TMS320F28335.

viii

Santos Júnior, J. R. X. “Comparison between the DSP’s TMS320F2812 and

TMS320F28335”, Universidade Federal do Ceará – UFC, 2011, 63p.

This paper discusses a study on DSP's, which focused specifically on DSP's specially

designed to carry a digital control for motor drives. Among the various families of DSP's on

the market that have this function, we choose to ram two references, TMS320F2812 and

TMS320F28335. A study was made first-individual mind about each of these references,

starting with a general approach on its internal components. After a comparison was made

where we used their datasheets as the basis for a comparison on your peripherals and a code

with the same function in both references to compare the performance of DSP's and thus con-

clude that the best DSP.

Keywords: DSP, TMS320F2812, comparison between two DSP’s, TMS320F28335.

ix

SUMÁRIO

LISTA DE FIGURAS ............................................................................................................................... XII

LISTA DE TABELAS ............................................................................................................................ XIII

LISTA DE SIGLAS ................................................................................................................................ XIV

INTRODUÇÃO ........................................................................................................................................... 1

CAPÍTULO 2 2

DIGITAL SIGNAL PROCESSOR .............................................................................................................. 2

2.1 - INTRODUÇÃO ................................................................................................................................... 2

2.2 - VISÃO GERAL DE UM DSP .............................................................................................................. 3

2.3 - TRATAMENTO DO SINAL ............................................................................................................... 4

2.4 - APLICAÇÕES ..................................................................................................................................... 6

2.5 - CONCLUSÃO ..................................................................................................................................... 8

CAPÍTULO 3 9

FAMÍLIA C2000 ......................................................................................................................................... 9

3.1 - INTRODUÇÃO ................................................................................................................................... 9

3.2 - FAMÍLIA C2000 .................................................................................................................................. 9

3.2.1 - MICROCONTROLADORES PICCOLO ™: ................................................................................. 10

3.2.2 - MICROCONTROLADORES DELFINO ™: ................................................................................. 11

3.3 - FERRAMENTAS DO SOFTWARE ................................................................................................... 12

3.3.1 - BIBLIOTECA IQMATH ................................................................................................................. 12

3.3.2 - CONTROLE DIGITAL DE MOTORES ........................................................................................ 12

3.3.3 - CONTROLSUITE ............................................................................................................................ 13

3.4 - CONCLUSÃO ................................................................................................................................... 14

CAPÍTULO 4 15

DSP TMS320F2812 ................................................................................................................................... 15

4.1 - INTRODUÇÃO ................................................................................................................................. 15

4.2 - CPU .................................................................................................................................................... 15

4.3 - BARRAMENTO DE MEMÓRIA ...................................................................................................... 16

4.4 - BARRAMENTO DE PERIFÉRICOS ................................................................................................ 16

4.5 - JTAG EM TEMPO REAL .................................................................................................................. 16

4.6 - INTERFACE EXTERNA................................................................................................................... 17

4.7 - FLASH ............................................................................................................................................... 17

4.8 - ROM ................................................................................................................................................... 17

4.9 - M0, M1, SARAMS ............................................................................................................................. 17

4.10 - L0, L1, H0 SARAMS ........................................................................................................................ 17

4.11 - BOOT ROM ..................................................................................................................................... 18

x

4.12 - SEGURANÇA ................................................................................................................................. 18

4.13 - BLOCO PIE ..................................................................................................................................... 18

4.14 - INTERRUPÇÕES EXTERNAS ....................................................................................................... 19

4.15 - OSCILADOR E PLL ........................................................................................................................ 19

4.16 - WATCHDOG................................................................................................................................... 19

4.17 - CLOCK DOS PERIFÉRICOS .......................................................................................................... 19

4.18 - MODOS DE OPERAÇÃO ............................................................................................................... 19

4.19 - DIAGRAMA DE PERIFÉRICOS .................................................................................................... 20

4.19.1 - DIAGRAMA ZERO ..................................................................................................................... 20

4.19.2 - DIAGRMA UM ............................................................................................................................ 20

4.19.3 - DIAGRAMA DOIS ...................................................................................................................... 20

4.20 - PINOS DE ENTRADA E SAÍDA (GPIO)........................................................................................ 21

4.21 - TIMERS 0, 1 E 2 ................................................................................................................................ 21

4.22 - PERIFÉRICOS DE CONTROLE ..................................................................................................... 21

4.23 - PERIFÉRICOS RESPONSÁVEIS PELA COMUNICAÇÃO SERIAL ........................................... 22

4.24 - CONCLUSÃO ................................................................................................................................. 23

CAPÍTULO 5 24

DSP TMS320F28335 ................................................................................................................................. 24

5.1 - INTRODUÇÃO ................................................................................................................................. 24

5.2 - CPU .................................................................................................................................................... 25

5.3 - BARRAMENTO DE PERIFÉRICOS ................................................................................................ 25

5.4 - INTERFACE EXTERNA................................................................................................................... 25

5.5 - FLASH ............................................................................................................................................... 25

5.6 - L0, L1, L2, L4, L5, L6, L7 E SARAMS ............................................................................................... 25

5.7 - BOOT ROM ....................................................................................................................................... 26

5.8 - SEGURANÇA ................................................................................................................................... 27

5.9 - BLOCO PIE ....................................................................................................................................... 27

5.10 - INTERRUPÇÕES EXTERNAS ....................................................................................................... 28

5.11 - DIAGRAMA DE PERIFÉRICOS .................................................................................................... 28

5.11.1 - DIAGRAMA ZERO: .................................................................................................................... 28

5.11.2 - DIAGRAMA UM: ........................................................................................................................ 28

5.11.3 - DIAGRAMA DOIS: ..................................................................................................................... 28

5.11.4 - DIAGRAMA TRÊS: ..................................................................................................................... 29

5.12 - PERIFÉRICOS DE CONTROLE ..................................................................................................... 29

5.13 - PERIFÉRICOS RESPONSÁVEIS PELA COMUNICAÇÃO SERIAL ........................................... 29

5.14 - CONCLUSÃO ................................................................................................................................. 30

CAPÍTULO 6 31

COMPARATIVO ...................................................................................................................................... 31

xi

6.1 - INTRODUÇÃO ................................................................................................................................. 31

6.2 - CÓDIGO ............................................................................................................................................ 31

6.2.1 - BIT RXFIFST .................................................................................................................................. 31

6.2.2 - HABILITANDO O BLOCO PIE .................................................................................................... 32

6.2.3 - CONTADOR DO TIMER ............................................................................................................... 32

6.2.4 - HABILITANDO O SOC ................................................................................................................ 33

6.2.5 - SELECIONANDO O PERÍODO DO TIMER ................................................................................ 34

6.3 - GERANDO SVPWM (2812 E 28335) ................................................................................................ 34

6.4 - EVENT MANAGER (2812) .................................................................................................................... 38

6.5 - EQEP .................................................................................................................................................. 38

6.6 - PERIFÉRICOS ................................................................................................................................... 39

6.7 - CONVERSOR ANALÓGICO-DIGITAL ...................................................................................................... 40

6.8 - CONCLUSÃO ................................................................................................................................... 44

CONCLUSÕES.......................................................................................................................................... 46

REFERÊNCIAS BIBLIOGRÁFICAS ....................................................................................................... 47

xii

LISTA DE FIGURAS

Figura 1 - Exemplo de um sinal analógico. ................................................................................ 2

Figura 2 - Exemplo de um sinal analógico, convertido para sinal digital. ................................. 3

Figura 3-Esquemático em diagrama de blocos de um DSP........................................................ 4

Figura 4 - Exemplo de um sinal com o filtro averaging filter. ................................................... 5

Figura 5 - Esquemático do tratamento de um sinal analógico do sistema. ................................. 7

Figura 6 - Gráfico que mostra a evolução dos microprocessadores Delfino e Piccolo ............ 11

Figura 7 - Kit de desenvolvimento 2812 .................................................................................. 15

Figura 8 - Esquemático em diagrama de blocos do módulo do AD. ........................................ 21

Figura 9 - Kit de desenvolvimento DSP 28335. ....................................................................... 24

Figura 10 - Diretório para o arquivo HVACI_Sensorless. ....................................................... 36

Figura 11 - Erros da compilação do projeto. ............................................................................ 37

Figura 12 - Planta utilizada para os testes dos DSP's ............................................................... 41

Figura 13 - Leitura da posição do motor com o osciloscópio .................................................. 42

Figura 14 - Leitura da posição do motor com o osciloscópio com o 2812 ligado na planta .... 42

Figura 15(a) - Leitura da posição do motor (b) Leitura da posição do motor em radianos,

utilizando o CCS V3.3 .................................................................................................... 43

Figura 16(a) – Outro exemplo de uma leitura da posição do motor (b) Leitura da posição do

motor em radianos, utilizando o CCS V3.3 .................................................................... 43

Figura 17(a) Leitura da posição do motor (b) Leitura da posição do motor em radianos,

utilizando o CCS V3.3 .................................................................................................... 44

Figura 18(a) Outro exemplo de uma leitura da posição do motor (b) Leitura da posição do

motor em radianos, utilizando o CCS V3.3 .................................................................... 44

xiii

LISTA DE TABELAS

Tabela 1 - Seleção dos modos de Boot para o 2812 ....................................................... 18

Tabela 2 - Seleção do modo Boot para o 28335 ............................................................. 26

Tabela 3 - Análise geral entre os DSP's .......................................................................... 40

xiv

LISTA DE SIGLAS

SIGLA SIGNIFICADO

ADC Analog-Digital Converter

API Application Programming Interface

BIOS Basic Input/Output System

BLDC BrushLess Direct Current

CD Compact Disc

CLA Control Law Accelerator

DMA Direct Memory Access

DMC Digital Motor Control

DSP Digital Signal Processor

DVD Digital Versatile Disc

eCAN Enhanced Controller Area Network

eCAP Enhanced CApture Peripheral

ECLS Emulation Code Security Logic

ePWM Enhanced Pulse With Modulation

eQEP Enhanced Quadrature Encoder Pulse

EV Event Manager

FIFO First Imput First Output

FPU Float-Point Unit

GPIO General Purpose Input/Output

HRPWM High Resolution PWM

I2C Inter-Intergrated Circuit

IDE Integrated Development Environment

JTAG Joint Test Action Group

McBSP Multichannel Buffered Serial Port

MCS Module Code Secutiry

MFLOPS FLoating point OPerations per Second

OTP One Time Programable

PAC Capture Inputs

xv

PID Proportional Integral and Derivative

PIE Peripherical Interrupt Enable

PLL Phase-Locked Loop

PM Motor Permanent Magnet Motor

PWM Pulse With Modulation

QEP Quadrature Enconder Pulse

RAM Random Access Memory

ROM Read Only Memory

SARAM Single Access RAM

SCI Serial Comunication Interface

SOC Start of Conversion

SPI Serial Peripherical Interface

SYS Control System

UART Universal Asynchronous Receiver/Transmitter

xvi

1

INTRODUÇÃO

Um processador de sinais digitais é uma das mais poderosas tecnologias que deverá

moldar a ciência e a engenharia no século XXI. Mudanças revolucionárias já foram feitas em

em vários campos de pesquisa, como comunicação, imagens médicas, radares e sonares,

reprodução de música de alta qualidade, como alguns exemplos. Cada uma dessas áreas tem

desenvolvido uma tecnologia própria, com seus algoritmos, lógicas e técnicas especializadas.

Assim, fica inviável para uma pessoa só dominar toda a essa tecnologia em DSP que tem sido

desenvolvido. [19]

Assim, considerando a área de pesquisas academicas, tem-se que estudo e aplicações

com DSP’s são feitas em uma grande variedade de áreas: física, geologia, engenharia

biológica, oceanografia, engenharia mecânica e elétrica, por exemplo, com o objetivo de

apresentar técnicas práticas. [19]

Para um estudo aprofundado em DSP, é preciso duas coisas: aprendizagem de conceitos

gerais que se aplicam ao campo da área da pesquisa e a aprendizagem de técnicas

especializadas para a sua área de interesse particular.

Considerando uma área de pesquisa focada em controle digital de motores, é necessário

um bom conhecimento sobre DSP’s e do que eles são capazes. É necessário conhecer bem

seus periféricos para saber se o DSP em questão é recomendável para tal aplicação.

Para evitar dúvidas na escolha de qual DSP utilizar, será mostrado uma família de

DSP’s que fora desenvolvida especialmente para esse tipo de aplicação. Serão mostrados

características dessa família e suas séries, alguns aplicativos e bibliotecas bastante utilizadas

pelos usuários que possuem os DSP’s dessa família.

A partir disso, haverá um destaque referente a dois DSP’s, ambos dessa família. Será

comentado características desses DSP’s. A partir dessas características, será realizado um

comparativo entre eles, onde será abordado mudanças entre seus periféricos, vantagens e

desvantagens de um, em relação a outro, e será comentado algumas mudanças entre seus

registradores e na implementação de algoritmos.

2

CAPÍTULO 2

DIGITAL SIGNAL PROCESSOR

2.1 - INTRODUÇÃO

Perdeu-se muito tempo tentando criar computadores analógicos para lidar com

extensos cálculos em sistemas contínuos, mas os computadores analógicos mostraram-se

inflexíveis, lentos e difíceis de execultar esse tipo de tarefas. Em particular, era difícil

implementar algoritmos nesses computadores. Utilizava-se computadores lentos para

trabalhar com plantas que possuíam sistemas digitais, porém sistemas digitais não trabalham

com ondas contínuas, sendo assim uma das grandes limitações de épocas antigas. A partir

dessa dificuldade, foram feitos computadores digitais onde algoritmos complexos poderiam

ser codificados com relativa facilidade. Isso significava que dados de uma determinada

pesquisa deveriam ser trabalhados no formato digital. [15]

Em 1960, a digitalização dos dados foi muitas vezes uma tarefa manual. Até o final da

década de 1980, a quantidade de dados foi lido em computadores digitais provenientes de

sistemas de fita de papel. No entanto, cada vez mais os computadores estavam sendo

aproveitados directamente para os circuitos que poderia produzir uma saída digital quando

recebíam uma entrada analógica. Tornou-se possível fazer um sinal analógico, mostrado na

figura 1, a seguir, ser transformado num sinal digital: [15]

Figura 1 - Exemplo de um sinal analógico.

Esse processo de conversão se deve a um tipo especial de conversor, chamado conver-

sor analógico-digital, onde ele recebe um digital analógico qualquer, como por exemplo, o da

figura 1, acima, e converte para um sinal digital, similar ao sinal analógico, com a vantagem

3

de que pode ser lido por um computador digital. Passando o sinal da figura 1 para o computa-

dor, através de um conversor AD, tem-se o seguinte sinal digital mostrado na figura 2, abaixo:

Figura 2 - Exemplo de um sinal analógico, convertido para sinal digital.

Uma vez no computador, o processo pode ser revertido, jogando-o para fora através do

conversor DA, que pega um sinal digital e o converte para um sinal analógico, similar.

Nenhum computador digital pode perfeitamente reproduzir o sinal original, pois cada amostra

é um número único que representa o sinal em alguns pequenos intervalos. Técnicas modernas

permitem que essa amostra digital possa ser tão boa que não é possível, por exemplo, ver

diferença de conteúdo em um CD ou DVD, mas há essa diferença. Os sistemas digitais têm

erros como qualquer outro sistema. Minimizar esses erros para torná-los imperceptíveis é o

que deve ser feito. [15]

2.2 - VISÃO GERAL DE UM DSP

DSP é uma ferramenta composta por um microcontrolador, que possui uma arquitetura

mais robusta que um microcontrolador comum. Foi designado exclusivamente para trabalhar

especializadamente com vários tipos de sinais. É um dispositivo programável, onde cada em-

presa que, diga-se, desenvolve o seu próprio DSP, também desenvolve o ambiente de desen-

volvimento de trabalho para aquela especificação do DSP, também chamado de IDE, onde

nesse ambiente ocorre toda a programação e a gravação de algoritmos para o DSP. [13]

Um DSP não é apenas um microcontrolador robusto e rápido em um uma placa. Utili-

zou-se o termo DSP para uma placa onde está este microcontrolador e também um conjunto

de ferramentas que auxiliam esse microcontrolador. Esse conjunto de ferramentas são os peri-

féricos, os registradores, as unidades aritméticas lógicas e as memórias. [18]

Abaixo, na figura 3, tem-se uma representação simples em diagramas de blocos de um

DSP. Basicamente, há alguns blocos comuns entre todos os DSP’s, como por exemplo, o blo-

4

co que recebe os dados analógicos do sistema, os blocos de tratamento desses sinais e blocos

que retornam os sinais ao sistema, o bloco responsável pelo Timer do sistema e os pinos de

entrada e saída. [17]

Figura 3-Esquemático em diagrama de blocos de um DSP.

2.3 - TRATAMENTO DO SINAL

Uma vez que o sinal está no sistema digital, pode-se processá-lo de várias formas. Este

é o ponto onde utilizam-se algoritmos para o tratamento do sinal, ou seja, essa é a parte

complicada do processo. No entanto, se a forma de tratamento é considerada simples, a parte

complicada fica somente para os desenvolvedores dessa tecnologia. Se a forma de tratamento

é especial, diferente e complexa, o usuário precisa saber se esse processo é possível ser feito.

[15]

Considere um simples algoritmo para trabalhar no domínio digital. Um dos filtros

mais simples conhecidos é chamado pelo termo técnico em inglês, denominado averaging

filter. Usando esse filtro digital no sinal da figura 2, acima, pode-se suavizar o sinal e torná-lo

menos ruidoso. Assim, após converte-lo novamente para um sinal analógico, obtem-se o

seguinte sinal, como mostrado na figura 4, abaixo: [15]

5

Figura 4 - Exemplo de um sinal com o filtro averaging filter.

Esse filtro não deixa perfeitamente sem ruídos, mas melhora a qualidade do sinal e

assim pode ser suficiente para o que quere-se fazer. Filtros digitais mais complexos podem ser

construídos a partir de uma média ponderada de amostras, mas ainda há outro problema

complexo, o tempo. [15]

Pensa-se muito sobre o tempo que gasta-se para fazer algoritmos e cálculos. As vezes,

fica-se frustrado pela lentidão do processador ou quanto tempo leva para uma planilha de

cálculos atualizar, mas a menos que consiga-se trabalhar no nível do microcontrolador com

uma linguagem de programação de alto nível, os rápidos ciclos de tempo de execução de

rotinas dos microcontroladores, tem muito pouco significado. No entanto, quando se trabalha

com DSP, o tempo de processamento torna-se importante. Considere que tem-se que fazer

uma média das últimas três amostras digitais coletadas, juntas, e assim a saída dessa

comparação fosse um sinal no mesmo tempo das amostra, então: [15]

Cada nova amostra deve ser armazenada.

A nova amostra tem que participar de uma média com as duas últimas amostras.

O resultado deve ir para a saída do sistema digital, ou seja, para o conversor DA.

Tudo isso tem que acontecer antes da próxima amostra ser recebida e armazenada. Isto

defini-se processamento de sinal em tempo real. Estando-se trabalhando a uma taxa de 10.000

amostras por segundo, então tem-se um milésimo de segundo para completar o ciclo. Este é o

tempo de ciclo de qualquer microcontrolador, mas este tempo pode não ser suficiente, caso

queira-se usar algoritmos mais complexos. [15]

Processamento em blocos recebe um grande número de amostras, por exemplo 1024,

em um ciclo e processa-os, enquanto os próximos 1024 estão sendo coletados. Alguns

algoritmos, como a Transformada Rápida de Fourier, como exemplo, só podem funcionar

6

nesse modo, mas mesmo esse tempo pode não ser suficiente para cálculos muito complexos.

[15]

Qual o motivo para querer-se fazer uma transformada de Fourier? Simplesmente

porque é possível aplicar algoritmos no domínio da frequência que não pode-se aplicar no

domínio do tempo. Algumas funções destacam-se no domínio da frequência. Porém, o ruído

pode aparecer como um elemento aleatório a algum ponto no domínio da frequência.

Claramente, se o sinal que quer ser processado for simples, é fácil achar uma maneira de

eliminar a maior parte do ruído. No entanto, raramente é simples, pois a maioria dos sinais

variam ao longo do tempo. [15]

Avanços na velocidade dos microcontroladores dos DSP’s e microprocessadores, em

geral, abrem novas possibilidades para novos algoritmos, mas sempre estará limitado pelas

exigências de tempo e tamanho. Desenvolvendo algoritmos complexos, fica fácil quando tem-

se de espaço para armazenar os dados e o tempo necessário para os cálculos, mas quando um

microcontrolador DSP tem que fazer algo em tempo real, existem sérias limitações sobre o

“que” e o “quanto” que pode ser feito. [15]

A sofisticação dos DSP permite reconhecer um sinal com ruídos, por suas

características. Pode-se fazer o tratamento da maior parte do ruído, melhorando a relação

sinal-ruído, para assim, torná-lo mais compreensível. Ainda mais, pode-se adaptar como o

sinal e o ruído sofrerão mudanças ao longo do tempo. Nenhum algoritmo é perfeito, mas em

comparação com algoritmos de 20 anos atrás, o nível de melhora na redução do ruído pode ser

considarado fenomenal. [15]

2.4 - APLICAÇÕES

Tem-se que alguns algoritmos de processamento de sinais digitais requerem uma

grande quantidade de cálculos e fórmulas matemáticas, que devem ser executadas de forma

rápida e precisa. Esses sinais são constantemente convertidos de seu estado analógico para um

estado digital, trabalhados na sua forma digital e depois novamente convertido para seu estado

analógico, como mostra a figura 5, abaixo. Um sinal digital nada mais é que uma representa-

ção numérica, como uma seqüência de bits, de um sinal analógico [18]:

7

Figura 5 - Esquemático do tratamento de um sinal analógico do sistema.

Tem-se que um microprocessador comum possui um AD interno e consegue realizar

essa operação com sucesso, mas seu uso é restrito, não sendo utilizado internamente em dis-

positivos portáteis, como um celular. Essa é uma das vantagens do DSP em relação a esse mi-

croprocessador comum, além de fornecer uma solução de baixo custo, com melhor

desempenho. [19]

A função de um DSP é exatamente otimizar o processamento de sinais digitais. Mas o

DSP não foi feito para fazer somente o tratamento de sinais digitais. Abaixo tem-se algumas

características e funções próprias de DSP’s: [19]

Compressão e descompressão de sinais;

Filtros digitais;

Equipamentos Eletrônicos;

Assim, com todas essas funções, ocorreu que o DSP começou a ser utilizado em várias

áreas diferentes: [19]

Programa Espacial: Utilizado em tratamento de fotografias, compressão de dados, aná-

lise de sensores inteligentes;

Medicina: Diagnósticos e tratamentos de imagens, análise de eletrocardiogramas, ar-

mazenamento de imagens médicas;

Comércio: compressão de som e imagem, efeitos especiais em filmes, vídeo conferên-

cias;

Telecomunicações: compressão de voz e dados, redução de eco, tratamento de sinais

multiplexados e desenvolvimento de filtros para aplicações nessa área;

Militar: Pesquisa com sensores, radares, segurança em comunicações;

Indústria: Busca por óleo e tipos especiais de minérios, controle e monitoramento de

processos e máquinas, desenvolvimento de ferramentas;

Ciência: análise e gravação de terremotos, aquisição de dados, análise espectral, simu-

lação e modelagem. [19]

8

Dentre tantas aplicações em diferentes áreas, focaremos numa aplicação na indústria,

na aplicação em acionamento digital de máquinas, onde será falado sobre uma família de

DSP’s que foi desenvolvida especialmente para este tipo de aplicação. A partir do próximo

capítulo, serão abordadas as características da família C2000, uma linha de DSP’s para acio-

nar máquinas.

2.5 - CONCLUSÃO

Pode-se dizer que o desenvolvimento dos DSP’s começou quando houve uma deman-

da para trabalhar com sinais digitais, pois não foi possível melhorar os sistemas de épocas an-

tigas utilizando apenas sinais analógicos. Para trabalhar da melhor forma com esses sinais fo-

ram desenvolvidos os primeiros DSP’s.

O DSP é uma das melhores ferramentas para trabalhar com sinais digitais, devido a

várias formas que ele apresenta para tratamento de sinais, como filtros e poder utilizar algo-

ritmos no domínio da freqüência, compressão e descompressão desses sinais. Devido essa li-

berdade de trabalhar com esses sinais, o DSP é utilizado nas mais diversas áreas de pesquisa.

9

CAPÍTULO 3

FAMÍLIA C2000

3.1 - INTRODUÇÃO

Esse capítulo abordará uma família de DSP’s, denominada de família C2000, desen-

volvida especialmente para acionamentos de máquinas. Uma ferramenta equipada com vários

periféricos, guias, documentos que abordam assuntos gerais sobre essa família, datasheets,

exemplos de aplicações, dentre outros documentos, permitindo assim os mais variados tipos

de controle para acionamentos de máquinas. Esse capítulo descreverá os periféricos internos

dessa ferramenta, o motivo pelo qual ela foi desenvolvida, quem utiliza e quem a desenvolve,

algumas ferramentas auxiliares e algumas vantagens dela. [7]

3.2 - FAMÍLIA C2000

Essa é uma família de microprocessadores de 32 bits que foram desenvolvidos para

execução de um controle em tempo real. Ele possui um núcleo que permite realizar vários al-

goritmos complexos de controle, simultaneamente, para as mais variadas aplicações. Possuem

uma grande variedade de periféricos, denominados, ADC, um conversor analógico-digital,

Unidade Central de Processamento, interface externa, GPIO, que são os pinos para entrada e

saída, SPI, periférico utilizado para comunicação serial, UART, I2C, eCAN, McBSP, tornan-

do-os a solução ideal quando se trata de controle e automação. [9]

Esses processadores foram desenvolvidos para aplicações cujo acionamento tem de ser

algo que necessite de um alto desempenho, que haja um tipo de controle de difícil

implementação, rápido e eficaz. Exemplos de Aplicações desse tipo são os acionamentos de

máquinas. Portanto, há uma procura significativa por algum tipo de controle digital para

motores, os chamados DMC’s. Será dado uma ênfase nesse tipo de aplicação, mais a frente,

neste capítulo. [9]

Esse tipo de processador faz parte de um kit de desenvolvimento, próprio para

executar algum controle que visa acionar, de alguma forma, um motor. Dentro desse kit, há

muitas ferramentas prontas que ajudam a desenvolver, com mais facilidade, esse tipo de

controle digital, como vários tipos diferentes de drivers, APIs, utilitários e bibliotecas para

10

controle digital de motores. Também vem documentos prontos que exemplificam aplicações

diferentes dos periféricos, dicas e estratégias de desenvolvimento para poder utilizar esse kit,

mesmo que o usuário não tenha nenhuma experiência nesse tipo de aplicação. [9]

Acionar um motor, a partir de um controle digital, tem sido algo bastante desafiador,

desde as primeiras formas de acionamentos. Embora as técnicas de controle digital e da alta

performance de microcontroladores, tenham tornado a vida muito mais fácil para os

engenheiros, fatores como modelos de motores não-lineares, projetos que envolvem várias

malhas de controle, algoritmos complexos, dependências de parâmetros como algumas

constantes internas do motor e temperatura do ambiente, estruturas complexas de softwares,

dentre outros fatores, retardam o desenvolvimento de novas formas de acionamentos. [9]

Existe uma empresa especializada nesse tipo de hardware, chamada Texas Instruments

Incorporeted. Seus pesquisadores entendem e estudam os desafios desse tipo de acionamento

e buscam facilitar esse tipo de controle, fornecendo materiais e ferramentas que aceleram

significativamente o desenvolvimento desse tipo de aplicação, além de soluções de problemas

de sistemas de controle de motores. [9]

Essas ferramentas permitem que os desenvolvedores determinem rapidamente os

recursos de processamento necessários para implementar um controle digital para

acionamento de motores. A partir desta base, eles são capazes de formular algoritmos

avançados com grande capacidade de processamento para uma maior precisão, melhor

desempenho e maior eficiência. Desta forma, os desenvolvedores podem arquitetar sistemas

otimizados especificamente para restrições a diversas aplicações e necessidades. [9]

A seguir, será citado as duas principais ferramentas desenvolvidos pelos pesquisadores

que são utilizadas para acionamento de máquinas.

3.2.1 - MICROCONTROLADORES PICCOLO ™:

A série TMS320F2802x/F2803x, também chamada família Piccolo, é considerada

uma solução para técnicas de controle em tempo real. Esses dispositivos apresentam até 128

KB de memória flash em conjunto com uma série de funções integrados, que são um

conversor analógico-digital, PWM de alta resolução, osciladores de alta precisão,

comparadores analógico, dentre outras funções. Há também um pacote opcional de ponto

flutuante com CLA, Lei de Controle Acelerado – o CLA executa o algoritmo de controle

junto as tarefas do código com acesso independente aos periféricos de feedback e feedforward

– que fornece um caminho paralelo ao loop de controle, sem sobrecarregar o processador

11

principal. Dessa forma, a família Piccolo é a melhor combinação de desempenho com baixo

custo (somente o microcontrolador, do kit DSP, pode chegar a custar até um dólar). [10]

3.2.2 - MICROCONTROLADORES DELFINO ™:

O microcontrolador Delfino, apresenta um bom desempenho e suporte para ponto

flutuante, quando comparado as famílias desenvolvidas pela TI. OS DSP’s F2833x operam

em até 150 MHz com 300 MFLOPS, ou operações de ponto-flutuante por segundo.

Apresentam um aumento de desempenho de 50%, em média, enquanto estão em operação no

clock de 150 MHz. Construído no padrão da arquitetura de um C28x™, sendo seu software

compatível 100% com todos os MCUs atuais, ou seja, MCUs de série com referência inicial

F28xx. [10]

O novo C2834x Delfino quebra ainda mais os limites, oferecendo 600 MFLOPS de

desempenho. A plataforma C2834x permite redução de até 52% no tamanho de códigos, e

70% de redução no tempo de acesso à memória em relação aos MCUs C2000 atuais. Além

disso, o PWM de alta resolução oferece uma resolução de 65 ps. Com essa maior velocidade,

tem-se uma maior inteligência e eficiência em aplicações de controle em tempo real. [10]

Abaixo tem-se a figura 7 que mostra a evolução desse microprocessadores:

Figura 6 - Gráfico que mostra a evolução dos microprocessadores Delfino e Piccolo

12

3.3 - FERRAMENTAS DO SOFTWARE

3.3.1 - BIBLIOTECA IQMATH

Para algoritmos de controle em tempo real, utilizados industrialmente, são necessários

uma grande precisão e uma execução de alta velocidade. Utilizando a linguagem C para

desenvolver um código de controle, são utilizados algumas bibliotecas para calcular funções

matemáticas, tais como funções trigonométricas, cálculos que envolvem divisão, dentre

outros, no entanto, esta abordagem não pode resultar em uma melhor eficiência do código.

Assim, a TI fornece uma biblioteca otimizada e funções matemáticas de alta precisão, sob a

forma da biblioteca IQMath. Utilizando rotinas matemática pelas bibliotecas matemáticas do

IQ, tem-se que o usuário, ao fazer uso destas bibliotecas, pode alcançar velocidades de

execução consideravelmente maior do que o código equivalente, escrito em linguagem C

padrão ANSI. As rotinas incluídos na biblioteca IQMath podem ser classificadas como: [9]

Aritmética (adição, subtração, divisão, multiplicação);

Funções trigonométricas (seno, cosseno tangente);

Diversos (saturação, valor absoluto).

IQmath usa as instruções presentes nos DSP’s de referencia inicial C28x, sendo a

maneira mais eficiente para utilizar as várias funções matemáticas. Resumidamente, os

benefícios e contribuições da Biblioteca IQMath para os processadores da família C2000

podem ser resumidas como segue:

Migração de flutuante para fixo: Todas as funções disponíveis na versão de ponto

flutuante da biblioteca estão disponíveis na versão de ponto fixo e vice-versa, daí, a migração

de fixo para flutuante torna-se muito fácil.

Função otimizada: Esta função permite um rápido controle de execução de múltiplas

rotinas. Mais rápido que se fosse usado rotinas padrão ANSI-C.

3.3.2 - CONTROLE DIGITAL DE MOTORES

A biblioteca de controle digital de motores, é composto de funções C (ou macros),

desenvolvidos para usuários de microprocessadores da família C2000. Os módulos de

biblioteca DMC abrangem quase todas as funções matemáticas que são essenciais para o

13

controle do acionamento de motores. Estes módulos são representados como blocos

modulares e podem ser classificados como: [9]

Módulo de transformações: transformada de Clark, transformada de Park, Cálculo da

tensão de fase, Observador por modo deslizante, Estimador de Fluxo Direto, Estimadoras e

Calculadoras de velocidade, Calculadoras e Estimadoras de posição.

Geradores de sinais e módulos de controle: PID, Gerador de Gatilhos, controlador de

V/f, Gerador de Degrau, Contador Hexadecimal, Controladores de low-rate, baixa taxa,

geradores de rampa, Geradores de Pulsos em Espaço Vetorial.

Drivers para Periféricos: PWM para várias topologias e técnicas, Drivers para

conversores analógico-digitais, Driver para sensores de efeito Hall, dentre outros Drivers.

Módulo de depuração em tempo-real: Módulo para monitoramento das variáveis de

controle.

Na biblioteca de DMC, cada módulo é documentado separadamente com o código

fonte. Todos os módulos DMC permitem aos usuários criar rapidamente, ou personalizar os

seus próprios sistemas. Essa biblioteca também oferece suporte a três tipos de motores, motor

de indução, motores BLDC, motor de corrente contínua sem escova, e motores PM, mas não

está limitado a somente estes motores. [9]

Os módulos da biblioteca DMC, implementados pelo IQmath, são usados para

construir tanto sistema com algum tipo de sensor, como em sistemas do tipo sensorless. Uma

versão anterior da biblioteca DMC, chamada legacy, foi liberada para as plataformas F281x e

F280x. A partir do ano de 2010, as bibliotecas foram revisadas, para um uso ainda mais

otimizado, para as plataformas F2803x (Piccolo) e F2833x (Delfino), que são as famílias

utilizadas pelo software ControlSUITE™. Nesse software tem-se uma biblioteca que contém

aplicativos para esse controle, chamada math_blocks. Há duas versões do math_blocks no

ControlSUITE, a versão v1.1, que suporta todos os três tipos de motores e é válida apenas

para processadores de ponto fixo, e a versão v2.0, que suporta tanto pontos fixos (sistema

suado em todos os tipos de motores) como também suporta sistemas em pontos flutuantes

(sistema usado em motores de indução e PM). [9]

3.3.3 - CONTROLSUITE

O controlSUITE ™, desenvolvido para microcontroladores da família C2000 é um

software que possui um conjunto de ferramentas destinadas a minimizar o tempo de desen-

volvimento de projetos, pois possui várias bibliotecas, drivers, datasheets e demonstrações de

14

como utilizar os periféricos, especificamente para várias aplicações em acionamento de má-

quinas. [17]

Seu conteúdo pode ser dividido em três subpastas:

Kits de desenvolvimento: pasta que contem várias aplicações específicas para um

determinado tipo de motor, aplicações em outros dispositivos e aplicações em

conversores;

Suporte aos dispositivos da família C2000: apresenta cabeçalhos básicos para iniciar

um projeto, qual seja o seu DSP;

Bibliotecas: Apresenta cabeçalhos avançados, para aplicações em controle, para

algoritmos matemáticos, para algum periférico de algum DSP da família C2000.

Nos próximos capítulos, será detalhado dois DSP’s dessa família, um será o

TMS320F2812 e o outro será o TMS320F28335. Enquanto o primeiro é um DSP que segue

de ligação entre um Delfino e um Piccolo, o segundo é um DSP da marca Delfino.

3.4 - CONCLUSÃO

Viu-se neste capítulo as principais funções dos DSP’s da família C2000, descrições de

duas de suas séries mais utilizadas, diferenças e características de cada série, alguns softwares

que se destacam nas aplicações dessa família e como é feito o controle para o acionamento de

motores com seus recursos.

A família C2000 é mais requisitada para o controle de motores, devido as bibliotecas e

ferramentas desenvolvidas para ela. Essas bibliotecas possuem vastas aplicações e formas de

controle digital para motores. Devido o fato de que atualmente ainda há o desenvolvimento de

novas formas de controle, essa família de DSP’s continua como sendo a mais buscada para

fazer controles digitais em motores.

15

CAPÍTULO 4

DSP TMS320F2812

4.1 - INTRODUÇÃO

Esse capítulo abordará características gerais do DSP TMS320F2812, da família

Piccolo, que inclui um visão geral das características de todos os seus periféricos. Ao longo

do texto, para facilitar este estudo, a referência TMS320F2812 será abreviadas como 2812.

[11]

Escolheu-se o DSP 2812 porque ele é um dos primeiros DSP’s adquiridos pelo Depar-

tamento de Engenharia Elétrica da UFC, devido o fato dele possuir suporte para fins de acio-

nar uma máquina de indução trifásica. Assim, será abordado, individualmente, cada um dos

periféricos que compõe esse DSP, onde será mostrado o porquê de terem escolhido esse DSP.

[11]

Abaixo, na figura 7, tem-se a seguinte foto desse DSP:

Figura 7 - Kit de desenvolvimento 2812

4.2 - CPU

O C28x demonstrou ser eficiente na linguagem C, permitindo desenvolver não só o

seu software de controle do sistema, mas também permite o desenvolvimento de algoritmos

matemáticos, sendo assim eficiente em tarefas matemáticas, e em tarefas de controle de

16

sistema, que normalmente são controladas por meio de dispositivos microcontroladores,

sendo capaz de responder a eventos externos e assíncronos num curto espaço de tempo. O

C28x tem um pipeline, uma técnica que consiste em dividir o processador em vários estágios

distintos, de 8 níveis de profundidade. Isso permite execuções a velocidades elevadas sem

precisar recorrer a ajuda de memórias de alta velocidade. [4] [18]

4.3 - BARRAMENTO DE MEMÓRIA

Vários barramentos são usados para mover dados entre as memórias, periféricos e a

CPU. A arquitetura de barramento de memória do C28x contém um barramento de leitura do

programa, um barramento de leitura de dados e um barramento de gravação de dados, onde os

três barramentos são compostos por 32 linhas de endereço e 32 linhas de dados cada. [4]

4.4 - BARRAMENTO DE PERIFÉRICOS

O 2812 adota um padrão de barramentos de periféricos para poder interligar

periféricos entre eles. Esse barramento ramifica-se em vários outros barramentos,

transformando-se em um único barramento que consiste em 16 linhas de endereço e 16 linhas

de dados e sinais de controle associados. [4]

4.5 - JTAG EM TEMPO REAL

JTAG é uma interface para testes em programação e testes em circuitos digitais. O

2812 apresentam suporte em tempo real para operações onde o conteúdo da memória,

periféricos, e registros locais podem ser modificados, enquanto o processador está rodando e

executando o código. Esses DSP’s implementam o modo em tempo real na própria CPU,

sendo assim esta uma característica única dele. [4]

17

4.6 - INTERFACE EXTERNA

Esse tipo de interface é composto por 19 linhas de endereço, 16 linhas de dados e 3

linhas do tipo chip-select. Essas linhas são divididas em 5 zonas externas, nomeadas zonas 0,

1, 2, 6 e 7. Cada zona pode ser programada com diferentes números de estados de espera. [4]

4.7 - FLASH

O 2812 contém 128K x 16 de memória flash embutido e uma única seção 1K x 16 de

memória OTP, caracterizada apenas por permitir uma única gravação. É possível apagar,

programar e validar um setor da memória flash, deixando outros setores intactos. No entanto,

não é possível a utilização de um setor da memória flash para executar algoritmos que apagam

setores da mesma memória. [4]

4.8 - ROM

ROM é caracterizada por um tipo de memória exclusivamente utilizada para leitura. O

2812 contém 128K x 16 de memória ROM. [4]

4.9 - M0, M1, SARAMS

SARAM é caracterizada por uma parte da memória com acesso único. O 2812 possui

dois blocos de memória de acesso único, cada uma de tamanho 1K x 16, que são os blocos

M0 e M1. [4]

4.10 - L0, L1, H0 SARAMS

O 2812 possui um espaço de 16K x 16 de memória RAM de acesso único, dividido em

três blocos (4K, 4K e 8K), que são respectivamente, L0, L1 e H0. Cada bloco pode ser

acessado de forma independente. [4]

18

4.11 - BOOT ROM

O Boot ROM é um software de boot, carregado na ROM. O programa é executado

após o DSP resetar, redefinindo-o e verificando vários pinos GPIO para determinar qual modo

de inicialização eles devem operar. A tabela 1 abaixo mostra como “chamar” os vários modos

de Boot: [4]

Tabela 1 - Seleção dos modos de Boot para o 2812

BOOT MODE SELECTED GPIOF4

(SCITXDA)

GPIOF12

(MDXA)

GPIOF3

(SPISTEA)

GPIOF2

(SPICLK)

Jump para Flash/ROM 1 X X X

Boot pelo SPI carregado via serial

externa EEPROM

0 1 X X

Boot pelo SCI carregado via SCI-A 0 0 1 1

Jump para H0 ou SARAM 0 0 1 0

Jump para OTP 0 0 0 1

Boot carregado via GPIO Port B 0 0 0 0

4.12 - SEGURANÇA

Apresenta suporte de segurança para proteger o firmware, que consiste de um conjunto

de instruções operacionais programadas diretamente no DSP. O recurso de segurança consiste

de uma senha de 128 bits. Esse módulo de segurança (MCS) é usado para proteger as

memórias flash, ROM, OTP, L0/L1 e os blocos SARAM. [4]

4.13 - BLOCO PIE

O bloco PIE fornece um conjunto de interrupções. Ele pode suportar até 96

interrupções dos periféricos, onde são agrupadas em blocos de oito e cada grupo é alinhado

em uma seção de 12 linhas de interrupção (INT1 para INT12). Cada interrupção pode ser

ativada ou desativada no bloco PIE. [4]

19

4.14 - INTERRUPÇÕES EXTERNAS

Apresenta três interrupções externas, que são XINT1, XINT2 e XINT13. Cada uma

das interrupções podem ser selecionadas a partir de uma borda de subida ou de descida, e

também exercem função de habilitar e desabilitar (menos o XNMI). As interrupções possuem

um contador de 16 bits, que é zerado quando uma interrupção é detectada. [4]

4.15 - OSCILADOR E PLL

O 2812 pode ser sincronizados por um oscilador externo ou por um cristal ligado ao

circuito oscilador. Os ciclos de PLL’s podem ser alterados em tempo real, no próprio

software. [4]

4.16 - WATCHDOG

O 2812 possui suporte a esse timer. Deve-se definir regularmente o contador “cão de

guarda”, dentro de um tempo determinado, caso contrário, será gerado um reset ao

processador. Esse timer pode ser desativado se necessário. [4]

4.17 - CLOCK DOS PERIFÉRICOS

Os clocks de cada periférico podem ser ativados ou desativados para reduzir o

consumo de energia quando um periférico não estiver em uso, permitindo um aumento da

velocidade de processamento das operações. [4]

4.18 - MODOS DE OPERAÇÃO

Esse DSP apresenta três modos de operações, listados abaixo: [4]

Dormindo (IDLE): Coloca a CPU em modo de baixa potência. Clocks de alguns

periféricos podem ser desativados e os periféricos que devem funcionar são deixados ligados

durante essa operação. Há uma interrupção que ativa o processador para sair deste modo.

Espera (standby): Desliga os clocks da CPU e dos periféricos, deixando o oscilador e o

PLL funcionando. Uma interrupção externa, ativa a CPU e os periféricos.

20

Parado (halt): Desliga o oscilador interno. Este modo basicamente desliga o

microcontrolador e coloca-o no modo de menor consumo possível de energia. Apenas uma

redefinição ou XNMI pode ativá-lo e tirá-lo desse modo.

4.19 - DIAGRAMA DE PERIFÉRICOS

Os periféricos desse microcontrolador estão dispostos em 3 diagramas, mostrados

abaixo: [4]

4.19.1 - DIAGRAMA ZERO

XINTF: Registradores de configuração da Interface Externa

PIE: Interrupções PIE, habilitam e controlam os registradores do vetor PIE;

Flash: Registradores de controle da Flash, programação, limpeza e verificação;

Timers: Registradores dos Timers 0, 1, 2;

CSM: Registradores do Módulo de segurança.

4.19.2 - DIAGRMA UM

eCAN: Registradores de controle.

4.19.3 - DIAGRAMA DOIS

SYS: Registradores de Controle do Sistema;

GPIO: Registradores de controle e configuração dos pinos de GPIO;

EV: Registradores de controle do Event Manager;

McBSP: Registradores de controle do McBSP;

SCI: Registradores de controle da Comunicação Serial;

SPI: Registradores de controle da Interface Serial;

ADC: Registradores dos 12 Bits do AD.

21

4.20 - PINOS DE ENTRADA E SAÍDA (GPIO)

A maioria dos sinais dos periféricos são multiplexados para serem sinais de entrada e

saída. Assim, é possível programar cada pino como sendo ou de entrada ou de saída. [4]

4.21 - TIMERS 0, 1 E 2

Os Timers 0, 1 e 2 são temporizadores de 32 bits. O Timer 2 é reservados para a BIOS,

e está ligado ao [INT14] da CPU. Se a BIOS do DSP não está sendo usada, o Timer 2 está

disponível para uso geral. O Timer 1 é para uso geral e pode ser ligado ao INT13 da CPU. O

Timer 0 é também para uso geral e está ligado ao bloco de PIE. [4]

4.22 - PERIFÉRICOS DE CONTROLE

O 2812 utiliza os seguintes periféricos para controle embarcado e para comunicação:

EV: Inclui temporizadores de uso geral, unidades de comparações para PWMs,

circuitos nomeados como entradas de captura (PAC)

ADC: O módulo ADC é composto por 16 canais, divididos em dois módulos, módulos

A e B. Abaixo, na figura 8, tem-se a representação em diagrama desse módulo: [10]

Figura 8 - Esquemático em diagrama de blocos do módulo do AD.

22

Dentre as suas funções e características básicas, tem-se:

Núcleo composto por doze bits;

Amostragem simultânea ou modos de amostragens sequênciais;

Tempo mínimo para conversão;

Dezesseis canais de entrada;

Possibilidade de usar dois módulos de oito canais isolados ou usar os dezesseis canais

cascateados.

Possui dezesseis registradores de resultados para armazenar os valores da conversão;

Há várias formas diferentes de dar início a conversão de alguma seqüência do sistema;

A sequência dos sinais pode ser operada, durante uma conversão, de duas formas, de-

nominadas por START/STOP.

Vale ressaltar que para obter uma melhor precisão de leitura dos sinais de sistema, nos

canais do AD, não se devem colocar sinais em canais próximos. Isso se deve ao fato de que

esses sinais, quando próximos, geram ruídos entre si, dificultando a leitura desses sinais pelo

AD. [13]

4.23 - PERIFÉRICOS RESPONSÁVEIS PELA COMUNICAÇÃO SERIAL

O 2812 suporta os seguintes periféricos de comunicação serial: [11]

eCAN: Suporta 32 mailboxes, possui tempo de carimbo para mensagens.

McBSP: Esse é o periférico responsável pela comunicação entre o DSP o computador

podendo transmitir 8, 16 ou 32 bits serialmente. Possui uma Comunicação Full-duplex, ou

seja, é um tipo de comunicação onde o transmissor e o receptor podem transmitir e receber

dados, não simultaneamente, e bidirecionalmente, opções que habilitam ou bloqueiam trans-

missões em cada canal, possibilidade de transmitir oito bits de um dado, podendo escolher se

envia primeiro os mais significativos ou os menos significativos

SPI: É um dispositivo serial de alta velocidade, que permiti o fluxo de bits para dentro

e para fora do dispositivo em um taxa de transferência de bits programável. Normalmente, o

SPI é usado para comunicação entre o controlador do DSP e sistemas ou plantas externas, ou

ente outro processador. As aplicações típicas externas incluem comunicação com drivers de

vídeo, e ADCs. Comunicação entre DSP’s é feita operando em modo mestre-escravo.

23

LM: A interface de comunicação serial é uma porta serial, normalmente conhecido

como UART.

Assim, viu-se os periféricos presentes no DSP 2812, bem como suas características.

No próximo capítulo será visto as características de outro DSP, dessa vez referente a família

Delfino, cuja referencia será 28335.

4.24 - CONCLUSÃO

Viu-se nesse capítulo o microcontrolador e os vários periféricos presentes em um DSP

de referência 2812, bem como seus modos de operação, suas funções e finalidades. Devido os

seus periféricos, e mais especificamente ao EV, este DSP já foi um dos mais requisitados no

mercado.

O 2812 é uma ferramenta própria para o desenvolvimento de algoritmos e softwares

de controle, possui vários periféricos que servem de apoio ao microcontrolador, sendo assim

possível combinar funções de periféricos diferentes para criar algoritmos que execultam as

mais variadas técnicas de controle, logo, é eficiente nas tarefas de controle de sistema,

evitando o uso de um segundo processador.

24

CAPÍTULO 5

DSP TMS320F28335

5.1 - INTRODUÇÃO

Esse capítulo abordará características gerais do DSP da família Delfino, cuja

referência é 28335, características particulares de DSPs dessa família, seus periféricos, suas

utilidades e finalidades, para assim fazer um comparativos entre DSP’s dessa família com a

família Piccolo. [5]

Escolheu-se esse DSP devido ao fato dele possuir o módulo eQEP dentre os seus

periféricos, um módulo que o 2812 não possuia, sendo assim um opção de controle a mais

para a aplicação em acionamento de máquina de indução.

Alguns periféricos do 28335 nao serão citados neste capítulo devido o fato de que eles

são completamente semelhantes aos periféricos de mesmo nome do 2812.

Abaixo, na figura 9, tem-se uma foto desse DSP:

Figura 9 - Kit de desenvolvimento DSP 28335.

25

5.2 - CPU

O DSP F28335 faz parte da C2000. Possui a mesma arquitetura de 32 bits, com ponto

fixo, assim como os controladores da TI, mas ele possui algo diferente dos demais

controladores, possui uma unidade de ponto flutuante (FPU), sendo uma outra vantagem

desse DSP em relação os outros da família C2000. [5]

5.3 - BARRAMENTO DE PERIFÉRICOS

Apresenta o mesmo barramento de periféricos que o 2812, com uma leve diferença,

ele apresenta uma terceira versão para o controle desse barramento, que é acessando o DMA,

podendo esse acesso ser de 16 ou de 32 bits. [5]

5.4 - INTERFACE EXTERNA

Para esse DSP, a interface é composta por 20 linhas de endereço, 32 linhas de dados, e

três linhas do tipo chip-select. A linhas de chip-select são mapeados para três zonas

exteriores, zonas 0, 6 e 7. [5]

5.5 - FLASH

Contém o dobro de memória, em relação o DSP 2812, com 256K x 16 de memória fla-

sh embutido, dividido em oito seções de 32K x 16. Esse DSP também apresenta também 1K x

16 de memória OTP. O usuário pode apagar, programar e validar um setor da memória flash,

deixando outros setores intactos, como ocorre no 2812. [5]

5.6 - L0, L1, L2, L4, L5, L6, L7 E SARAMS

O 28335 apresenta 32K x 16 e memória para acesso único a RAM, dividido em 8 blo-

cos, respectivamente L0 até L7, com 4K de tamanho para cada bloco. Cada bloco pode ser

acesasdo de forma independente. [5]

26

5.7 - BOOT ROM

Assim como no 2812, O Boot ROM é um software de boot, carregado na ROM. Os

vários modos de boot podem ser vistos na tabela 2, abaixo: [5]

Tabela 2 - Seleção do modo Boot para o 28335

MODO GPIO87/

XA15

GPIO86/

XA14

GPIO85/

XA13

GPIO85/

XA12

MODO

F 1 1 1 1 Jump para memória Flash

E 1 1 1 0 SCI-A boot

D 1 1 0 1 SPI-A boot

C 1 1 0 0 I2C-A boot

B 1 0 1 1 eCAN-A boot

A 1 0 1 0 McBSP-A boot

9 1 0 0 1 Jump para XINTF x16

8 1 0 0 0 Jump para XINTF x32

7 0 1 1 1 Jump para OTP

6 0 1 1 0 Boot paralelo para GPIO I/O

5 0 1 0 1 Boot paralelo para XINTF

4 0 1 0 0 Jump para SARAM

3 0 0 1 1 Modo Boot para subseção de checagem

2 0 0 1 0 Subseção para memória Flash, sem a cali-

bração do AD

1 0 0 0 1 Subseção para SARAM, sem a calibração

do AD

0 0 0 0 0 Subseção para SCI, sem a calibração do

AD

Ignorando a função de calibração do AD em uma aplicação, o AD trabalhará fora de

suas especificações. [5]

27

5.8 - SEGURANÇA

Os microcontroladores apresentam altos níveis de segurança para proteger o firmware

do próprio DSP. Há um módulo de segurança, com uma senha, composto de 128 bits

(codificados em 16 estados de espera), que o usuário programa na flash. Ele é usado para

proteger os blocos de memória flash, OTP, SARAM, L0/L1/L2/L3. Esse recurso de segurança

impede que usuários sem autorização examinem o conteúdo das memória através da porta

JTAG ou que execute algum código a partir de memórias externas ou tente carregar algum

software de inicialização que exponha o conteúdo da memória. Para permitir o acesso aos

blocos de segurança, o usuário deve escrever o valor da senha de 128 bits corretamente. [5]

Além desse recurso de segurança, houve a implementação de um código de segurança

lógica (ECSL) que foi implementada para prevenir que usuários não autorizados ultrapassem

a senha de segurança, do módulo descrito acima. Qualquer acesso ao código ou aos dados na

flash, no OTP, ou nos blocos L0, L1, L2, L3, indesejável, resultará na interrupção da conexão

de emulação. Para permitir a emulação do ECLS, enquanto mantém Módulo de Segurança

funcionando, o usuário deve escrever o valor da chave de registro (register key) de 64 bits.

Esse valor é comparado a um valor armazenado dentro do memória flash. [5]

Inicialmente, quando se debuga um microcontrolador com as senhas programadas na

memória flash, escritas corretamente, ou seja, em segurança, o emulador demora algum tempo

para tomar o controle da CPU. Durante esse tempo, a CPU vai começar a rodar e pode

acontecer da CPU executar alguma instrução que permitirá o acesso a uma área ECSL

protegida. Se isso acontecer, o ECSL irá travar e causar um corte na conexão do emulador.

Duas soluções para este problema stão listadas abaixo: [5]

Usar o modo de emulação Wait-in-Reset, que realizará um reset no dispositivo até que

o emulador assuma o controle. O emulador tem suporte desse modo para esta opção.

Usar o "Subseção para verificar o modo de inicialização" presente nas opções de boot.

Isso vai gerar um loop e pesquisar continuamente como estão configurados os pinos do modo

de seleção.

5.9 - BLOCO PIE

Para o DSP 28335, é possível utilizar 58 das 96 interrupções disponíveis. Ademais a-

presenta total semelhança ao bloco PIE referente do DSP 2812. [5]

28

5.10 - INTERRUPÇÕES EXTERNAS

Esse microcontrolador suporta oito interrupções externas mascarados (XINT1-XINT7,

XNMI). Cada interrupção pode ser selecionada por borda de subida, ou por borda de descida,

ou por ambas, podendo habilitar ou desabilitar (Incluindo as XNMI). XINT1, XINT2 e XNMI

possuem um contador de 16 bits, que é resetado para zero quando uma borda de interrupção é

detectada. Este contador pode ser usado para dar mais precisão ao tempo de sinal da

interrupção. Diferente do 2812, não há pinos para interrupções externas. [5]

5.11 - DIAGRAMA DE PERIFÉRICOS

Os periféricos desse microcontrolador estão dispostos em três diagramas, mostrados

abaixo: [5]

5.11.1 - DIAGRAMA ZERO:

PIE: Interrupções PIE, habilitam e controlam os registradores do vetor PIE

Flash: Registradores de Waitstate da Flash

XINTF: Registradores da Interface externa

DMA: Registradores DMA

Timers: Registradores dos Timers 0, 1, 2

CSM: Registradores do Módulo de segurança

ADC: Registradores do AD

5.11.2 - DIAGRAMA UM:

GPIO: Registradores de controle e configuração dos pinos de GPIO

ePWM: Registradores do modulo de geração de pulsos com modulação

eCAP: Registradores do modulo de Captura

eQEP: Registradores do modulo do pulso em quadratura

eCAN: Registradores de controle

5.11.3 - DIAGRAMA DOIS:

SYS: Registradores de Controle do Sistema

29

SCI: Registradores de controle da Comunicação Serial

SPI: Registradores de controle da Interface Serial

ADC: Registradores de controle, de Status, e de resultados do AD

I2C: Registradores do Módulo dos circuitos integrados

XINT: Registradores de interrupção externa

5.11.4 - DIAGRAMA TRÊS:

McBSP: Registradores de controle do McBSP

5.12 - PERIFÉRICOS DE CONTROLE

O 28335 utiliza os seguintes periféricos, que são usados para controle embarcado e

para comunicação: [5]

ePWM: Apresenta um gerador de pulsos com modulação. Alguns pinos de PWM

apresentam suporte a configurações HRPWM.

eCAP: Um canal de captura de eventos externos, que podem ser valor da velocidade

de rotação da máquina, medidas de período e duty-cicles de trens de pulso, dentre outros e-

ventos. Este periférico pode ser configurado para gerar um sinal de PWM auxiliar.

eQEP: É um periférico que utilize um contador de posição de 32 bits, com suporte a

medidas em baixa velocidade utilizando unidades de captura e apresenta suporte a medidas

em alta velocidade utilizando um timer de 32 bits. Este periférico tem um timer para detectar

erros lógicos nas entradas para identificar transições simultâneas de bordas em sinais do tipo

QEP.

ADC: O bloco AD de 12 bits possui 16 canais e contem duas unidades sample-and-

hold para conversões simultâneas.

5.13 - PERIFÉRICOS RESPONSÁVEIS PELA COMUNICAÇÃO SERIAL

Abaixo será dado uma breve explanação sobre os periféricos utilizados para comunica-

ção serial, bem como suas características: [5]

eCAN: Suporta 32 mailboxes, possui tempo de carimbo para mensagens.

30

McBSP: Apresenta aplicações em modens e dispositivos de alta qualidade de áudio.

Os registradores de transmissão e de recepção são suportados pelo DMA para reduzir signifi-

cantemente o overhead, caracterizado por processamento ou armazenamento em excesso, para

este periférico. Cada módulo McBSP pode ser configurado em um SPI.

SPI: Permite o fluxo de bits serialmente, sendo utilizado para comunicação entre o mi-

crocontrolador e periféricos externos ou outros processadores. Aplicações típicas incluem pi-

nos de entrada e saída ou expansões do próprio periférico através do microcontrolador como

um registrador de deslocamento, drivers de displays, e AD’s. Comunicação entre vários dis-

positivos, do tipo mestre-escravo, são oferecidos pelo SPI. No DSP 28335, o SPI contém 16

espaços de transmissão e recepção do tipo FIFO, para reduzir serviços de interrupções do tipo

overhead.

SCI: A interface de comunicação serial é uma porta assíncrona, geralmente conhecida

como UART. O SCI contém 16 espaços de transmissão e recepção do tipo FIFO, para reduzir

serviços de interrupções do tipo overhead.

I2C: O módulo de circuitos integrados possui uma interface entre o microcontrolador e

outros dispositivos. Componentes externos anexados a esse barramento serial podem transmi-

tir e receber até dados de oito bits de/para o microcontrolador, através do modulo I2C. No

DSP 28335, o módulo I2C contém 16 espaços de transmissão e recepção do tipo FIFO, para

reduzir serviços de interrupções do tipo overhead. [13]

5.14 - CONCLUSÃO

Este capítulo abordou as características gerais do 28335, que são os seus periféricos e

o seu microcontrolador, onde em alguns trechos houve certa comparação entre os seus perifé-

ricos e com os periféricos do DSP do capítulo anterior, o 2812.

Alguns periféricos do 28335 não foram devidamente comentados devido ao fato que

sua descrição é idêntica a descrita no 2812, são eles o barramento de memória, a função

JTAG em tempo real, as memória M0, M1 e SARAM, oscilador, PLL, Watchdog, Clock dos

periféricos e modos de operação, pinos de entrada e saída e os timers.

Devido o fato de ter uma maior quantidade de periféricos, foram criados novos

arquivos de cabeçalho e bibliotecas, para as novas aplicações e formas de controle que

poderão ser implementadas por esse DSP. Algumas dessas novas bilbiotecas podem ser

achadas nos diretórios do software ControlSuite.

31

CAPÍTULO 6

COMPARATIVO

6.1 - INTRODUÇÃO

Descreveu-se como são internamente, os periféricos de cada DSP em destaque. Mas

tem-se a intenção de mostrar como eles funcionam na prática, utilizando algum algoritmo

para testá-los e ver o rendimento e a partir disso fazer um comparativo. Assim, pegou-se um

código e testou este em cada um dos DSP’s em estudo. Porém, há diferenças entre os DSP’s

que não permitem que o código de um deles seja compilado no outro. São mudanças de

registradores, nomenclaturas e novos endereços dos mesmos. Assim, para esse comparativo,

houve uma adaptação de um código do 2812 para o 28335 de forma que ambos os códigos

realizassem a mesma função, em DSP’s diferentes.

6.2 - CÓDIGO

Foi-se desenvolvido um código que gerava seis SVPWM's que variava de duty-cicle

conforme os sinais que o AD recebia, sinais de posição e corrente, de uma planta em estudo.

Essa planta utiliza o DSP 2812 e tenta-se adaptá-la para o DSP 28335. Pra tal variação, há

certas modificações que devem ser feitas, como alteração nos nomes de registradores, busca

por funções do 28335 que se assemelhem mais a funções do 2812, que não existem mais no

28335, e a forma que o SVPWM deve ser gerado, pois enquanto o DSP 2812 apresentava o

EV para tal objetivo, o 28335 não apresenta mais o EV como periférico, dificultando seu

estudo para a geração dos SVPWM. Dentre as modificações feitas no código, tem-se as

seguintes:

6.2.1 - BIT RXFIFST

Enquanto no 2812, tem-se um registrador de nome SCIFFRX cujo bits 12~8 possuem

nome RXFIFST4-0, cuja linha de código pode ser mostrada abaixo:

32

//-------------------------------------------------------------------------------------------------------------//

// SciaRegs.SCIFIFRX.bit.RXFIFST!=1; // Habilita o bloco PIE //

//-------------------------------------------------------------------------------------------------------------//

No 28335, ele segue uma diferença mínima, onde retira-se a letra I, ficando assim:

//------------------------------------------------------------------------------------------------------------//

// SciaRegs.SCIFIFRX.bit.RXFFST!=1; // Habilita o bloco PIE //

//------------------------------------------------------------------------------------------------------------//

6.2.2 - HABILITANDO O BLOCO PIE

A forma em que seriam habilitadas as interrupções do bloco PIE mudou. No 2812

utilizou-se a seguinte linha:

//------------------------------------------------------------------------------------------------------------//

// PieCtrlRegs.PIECRTL.bit.ENPIE = 1; // Habilita o bloco PIE //

//------------------------------------------------------------------------------------------------------------//

No 28335, existe um cabeçalho nomeado DSP2833x_PieCtrl.c, que possui uma

função embarcada, EnableInterrupts, que quando é chamada, executa essa linha escrita acima.

6.2.3 - CONTADOR DO TIMER

Os timers presentes no registrador EV do 2812 sofreram alterações na nomenclatura e

no endereço alocado. No 28335 ele fica na CPU do DSP. Assim, tem-se a seguinte linha no

2812:

//------------------------------------------------------------------------------------------------------------//

// EvaRegs.TxCNT=0x0000 //contador referente ao timer. //

//------------------------------------------------------------------------------------------------------------//

Onde x=0, 1 ou 2. Essa linha é substituído pela linha no 28335, que segue abaixo:

33

//-----------------------------------------------------------------------------------------------------------//

// CpuTimerxRegs.TIM.ALL=0x0000 //contador referente ao timer. //

//-----------------------------------------------------------------------------------------------------------//

6.2.4 - HABILITANDO O SOC

Tem-se que o a forma de habilitar a sequência de conversão dos sinais que vão pro AD

também mudou de nomenclatura. Enquanto que para o 2812 ele seguia a seguinte forma:

//-----------------------------------------------------------------------------------------------------------//

// AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1 = 1; // Habilita EVASOC pra começar SEQ1 //

//-----------------------------------------------------------------------------------------------------------//

Tem-se que no 28335, a forma de habilitar fica da seguinte forma: [19]

//-----------------------------------------------------------------------------------------------------------//

// AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1; //

//-----------------------------------------------------------------------------------------------------------//

Em alguns casos, opta-se por não utilizar os dois recursos de conversão que o AD

fornece. Enquanto no 2812 havia dois registradores de eventos, EVA e EVB, no 28335 tem-se

dois registradores de conversão, SOCA e SOCB. Há formas de utilizar os dois em conjunto,

mas, em geral, utiliza-se apenas um dos registradores, até como uma forma de segurança, para

garantir que um não prejudique o desempenho do outro. Assim, tem-se que a forma de

desabilitar um desses registradores no 2812 seguia a forma abaixo:

//----------------------------------------------------------------------------------------------------------//

//AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ=0; //

//---------------------------------------------------------------------------------------------------------//

34

Enquanto que no 28335 ele segue a seguinte forma: [19]

//-----------------------------------------------------------------------------------------------------------//

// AdcRegs.ADCTRL2.bit.EPWM_SOCB_SEQ = 0 //

//-----------------------------------------------------------------------------------------------------------//

6.2.5 - SELECIONANDO O PERÍODO DO TIMER

Outra mudança em relação ao timer foi a forma de selecionar o seu período. Enquanto

no 2812 ele seguia a linha abaixo:

//-----------------------------------------------------------------------------------------------------------//

// EvaRegs.TxPR = 1000 //

//----------------------------------------------------------------------------------------------------------//

Onde x=0, 1 ou 2. No 28335 ele segue a seguinte linha:

//-----------------------------------------------------------------------------------------------------------//

// CpuTimerxRegs.TPR.all = 1000; //

//-----------------------------------------------------------------------------------------------------------//

6.3 - GERANDO SVPWM (2812 E 28335)

Uma grande mudança realizada para os microcontroladores da família Delfino, foi a

remoção do registrador EV. Nesse registrador encontrava-se a maioria das funções mais

usadas em algoritmos de controle de acionamento de máquinas. Uma dessas funções era o

gerador de SVPWM.

Utilizando o 2812, a geração de SVPWM pode ser considerada simples, pois basta

uma simples configuração de registradores para obter-se esse tipo de saída. Abaixo, listou-se

os passos para tal aplicação: [7]

Configura-se o registrador ACTRx para definir qual a direção de rotação do SVPWM e

a polaridade de comparação dos pinos de saída;

Configura-se o registrador COMCONx para habilitar operações de comparação e

habilitar o modo de saída SVPWM;

35

Coloca-se o Timer 1 em modo de contagem contínua para iniciar a operação.

Necessita-se determinar a tensão que será aplicada na fase dos motores no plano

dq0, para assim executar as seguintes ações para cada período de PWM:

Determinam-se os dois vetores adjacente, ;

Determinam-se os parâmetros ;

Configura-se o registrador ACTRx[14-12] com o correspondente chaveamento de e

coloca-se o valor binário 1 no registrador ACTRx[16], ou registrador ACTRx[14-12] com o

correspondente chaveamento de e coloca-se o valor binário 0 no registrador

ACTRx[16];

Colocam-se os valores de no registrador CMPR1 e no registrador CMPR2.

Para os registradores acima, o valor de x pode ser A ou B.

Utilizando o 28335, tem-se que não há um módulo de SVPWM, necessitando da

criação de uma biblioteca, ou módulo, para gerar o mesmo. Assim, com base em pesquisas

feitas no fórum da TI, nos arquivos do software ControlSuite, descobriu-se que é possível

criar uma biblioteca, ou módulo, que gere SVPWM. Depois de instalado o software

ControlSuite, seguindo o diretório, é possível encontrar exemplos de como fazer o

acionamento de motores, sejam eles de indução (pastas HVACI), sejam eles do tipo ímã

permanente (pastas HVPM), sejam eles do tipo CC sem escovas (pastas BLDC).

Para tal aplicação é necessário alguns cabeçalhos especiais. Considerando uma

aplicação de acionamento de uma máquina de indução com controle de campo orientado, os

cabeçalhos encontram-se nas várias pastas do software ControlSuite, que são as pastas de

drivers e as pastas de libs. Assim, utiliza-se o arquivo HVACI_Sensorless.c, como pode-se

observar na figura 10, mostrada abaixo:

36

Figura 10 - Diretório para o arquivo HVACI_Sensorless.

Esse é o arquivo principal do nosso projeto para gerar um módulo de SVPWM.

Utilizou-se o software CCS v3.3, que é um compilador desenvolvido para os DSPs da

família C2000. Ele serve para desenvolver os algoritmos que realizarão o controle de motores.

Ele compila o algoritmo desenvolvido, grava no DSP e inicializa esse algoritmo direto do

DSP.

Então, iniciou-se um projeto e na pasta desse projeto, adicionou-se os vários

arquivos.h e arquivos.c encontrados nas pastas do software ControlSuite, para ter acesso a

todas as funções e bibliotecas já desenvolvidas pela TI.

Com o projeto totalmente pronto, compilou-se o mesmo e obtiveram-se os seguintes

problemas, como mostrado na figura 11, mostrada a seguir:

37

Figura 11 - Erros da compilação do projeto.

O erro da figura acima indica que há símbolos indefinidos, que para a visão do

compilador, indica que o Linker, estrutura que liga o arquivo.obj, que é o arquivo que vai para

o DSP, com o projeto do algoritmo, não está habilitado a reconhecer essas variáveis.

Uma das soluções para esse erro seria adicionar o respectivo arquivo.h que contém

essas variáveis que estão indefinidas. Porém já fora adicionado todos os possíveis arquivos.h

que existem para o compilador CCSv3.3 e o erro ainda persiste. [7]

Outra solução seria alterar o Linker com um que habilite esses símbolos. Porém, para

tal alteração, ou adicionasse os arquivos.lib ao projeto através do caminho, Project>add files

to Project>commons>lib e adicionasse as bibliotecas necessárias para o linking, ou então

utiliza-se o caminho Project>Build Options>Linker>Libraries e coloca-se o nome da

biblioteca que queira que seja o Linker. Mais uma vez, alterou-se o nome das bibliotecas

existentes nas pastas do software ControlSuite, persistindo o erro.

Assim, como última saída indicada pelos desenvolvedores da TI, seria que modificasse

o compilador para o CCS v4, onde é um software pago que custe algo em torno de 500

dólares, sendo uma alternativa totalmente inviável. [18]

Quando os erros do processo mostrado acima foram relatados para os desenvolvedores

da TI, eles não souberam responder os motivos desses erros estarem acontecendo, como se

não soubessem fazer essa implementação. Mas ainda há contato com eles, pelo menos por

duas vezes por semana, para saber de alguma provável novidade. Uma das coisas que mais

surpreendeu foi o fato de não haver um tópico sobre SVPWM no 28335 no fórum da TI. Foi-

se então aberto um tópico, para então iniciar uma discussão sobre esse tema.

38

6.4 - EVENT MANAGER (2812)

O periférico Event Manager oferece uma variedade de funções e características que

são úteis em aplicações de controle de movimento e acionamento de motores. Esse registrador

apresenta timers, comparadores para PWM, módulos de captura, módulo de SOC do AD,

registradores de controle, interrupções e flags. Ele é dividido em dois outros módulos, EVA e

EVB, que são periféricos idênticos. [7]

É um registrador que possui as funções mais utilizadas em várias aplicações, sendo

considerado um dos registradores mais utilizado no DSP 2812.

Uma grande perda sofrida pelo 28335 foi a retirada desse registrador. Praticamente

houve uma realocação dos módulos desse registrador. Alguns mudaram de nome, como o

módulo de comparação, outros mudaram somente de endereço, como os timers, enquanto ou-

tros praticamente deixaram de existir, como o módulo SVPWM.

6.5 - EQEP

O periférico de pulsos em eixo quadratura é usado em conjunto com um transdutor

linear ou um encoder incremental para estimar a posição, direção e velocidade de uma

máquina rotativa para uso em um sistema de controle de posição. [6]

Esse periférico possui dois pinos de entrada, que correspondem respectivamente aos

modos de clock de quadratura e ao modo de contagem de direção, denominados de

QEPA/XCLK e QEPB/XDIR: [6]

Modo de clock de quadratura: Os codificadores eQEP fornecem dois sinais de onda

quadrada (A e B) defasados 90 graus elétricos, utilizados para determinar o sentido de rotação

do eixo do motor e número de pulsosem eixo quadratura da posição do motor para obter as

informações da sua posição relativa. O decodificador de quadratura usa essas duas entradas

para gerar clock de quadratura e sinais de direção. [6]

Modo de contagem de direção: nesse modo, a direção e os sinais de clock são

fornecidos diretamente pela fonte externa. Alguns encoders de posição tem esse tipo de saída

ao invés da saída de quadratura. O pino QEPA provê a entrada dos sinais de clock e o pino

QEPB provê a entrada de direção. [6]

Esse periférico é uma das vantagens do 28335 sobre o 2812, pois o 2812 não possui

suporte a esse periférico, de forma que para verificar a posição do motor no 2812 é necessário

algum sensor acoplado no eixo do motor, para identificar a posição do eixo do motor.

39

Com o 28335, utilizando o eQEP com um encoder acoplado no eixo do motor, tem-se

a possibilidade de ter uma maior precisão no cálculo da posição do motor, sendo uma alterna-

tiva para aplicação em manter o eixo fixado em uma determinada posição.

6.6 - PERIFÉRICOS

Além da análise nas mudanças dos registradores e no código de cada DSP, é

necessário fazer uma análise interna sobre esses dois DSP’s, comparando teoricamente a

diferença de desempenho dos seus periféricos. Assim, irão ser citadas as diferenças dentre

esses DSP’s, listadas abaixo:

Tem-se que ambos os DSP em estudo apresentam suporte a variáveis de ponto fixo,

mas o 28335 apresenta uma unidade de ponto flutuante, deixando algoritmos que utilizam

variáveis do tipo float mais rápidos;

No barramento de periféricos, tem-se que o 28335 apresenta um terceiro modo de

controle para esse barramento, sendo esse acesso via DMA;

Na interface externa, tem-se que o 28335 apresenta mais linhas de endereço e dados

que o 2812;

O 28335 tem o dobro de memória flash, o dobro de memória RAM que o 2812 e não

possui memória ROM;

O 28335 tem dezesseis modos de BOOT enquanto que o 2812 possui apenas sete;

O 28335 apresenta um modo de segurança a mais, que é o ECLS, que possui uma

senha de 64 bits;

O 28335 tem oito interrupções externas mascaradas, enquanto que o 2812 apresenta

apenas três;

Os diagramas de periféricos foram totalmente remodelados:

o Os registradores dos principais periféricos foram separados dos registrados de

controle e módulo dos mes periféricos;

o O AD e o DMA foram integrados ao diagrama zero;

o O diagrama um agora possui GPIO, ePWM, eCAP, eQEP juntos ao eCAN;

o O diagrama dois não possui mais o EV e McBSP, mas entraram o I2C e o

XINT;

o Agora se tem um diagrama três com o McBSP.

40

O 28335 possui o periférico eQEP a mais;

O 28335 não possui mais o periférico LM, responsável pela comunicação serial, mas

foi-se implementado o SCI e o I2C

Assim, considerando a análise de algoritmos, análise de suas características, análise de

registradores e análise dos periféricos, pode-se destacar as seguintes características, na tabela

3 abaixo:

Tabela 3 - Análise geral entre os DSP's

28335 2812

Ponto Flutuante Ponto Fixo

Memória Flash=256k x 16 Memória Flash=128k x 16

Memória RAM=32k x 16 Memória RAM=16k x 16

Não possui Memória ROM Possui Memória ROM

Possui o Registrador eQEP Não possui o registrador eQEP

Não possui Módulo SVPWM Possui Módulo SVPWM

6.7 - CONVERSOR ANALÓGICO-DIGITAL

Esse periférico foi testado, por ambas as referências para verificar o desempenho e se

há alguma alteração nos esquemáticos desse periférico de ambas as referências.

Os testes foram feitos na planta mostrada na figura 12, abaixo, encontrada no laborató-

rio GPAR, Grupo de Pesquisa em Automação e Robótica, do DEE, Departamento de Enge-

nharia Elétrica, da UFC:

41

Figura 12 - Planta utilizada para os testes dos DSP's

O teste consiste em fazer a leitura da posição do motor utilizando o AD dos DSP’s.

O funcionamento de leitura da posição do motor ocorre utilizando a seguinte lógica.

Há um potenciômetro acoplado no eixo do motor, onde em um giro do potenciômetro ocorre a

total variação de resistência do mesmo. Ou seja, em uma volta de 360º do eixo do motor, o

potenciômetro varia em toda a sua resistência. Assim, a partir uma leitura do valor da resis-

tência do potenciômetro, é possível saber qual a posição do eixo do motor.

Sabendo que a tensão máximo que o pino do AD suporta é de 3.3 V, alimenta-se os

terminais do potenciômetro com 3.3V, ocasionando assim uma leitura de 0 V para quando a

posição do eixo do motor for de 0º e 3.3 V para quando a posição do eixo do motor for de

360º. Assim, essa leitura de tensão vai ser lida pelo AD e será mostrada na IDE do AD o valor

em radianos da posição do eixo do motor, onde esse valor varia de 0 até .

Fazendo uma leitura qualquer da posição do motor com o osciloscópio, obtem-se a lei-

tura mostrada pela figura 13, mostrada abaixo:

42

Figura 13 - Leitura da posição do motor com o osciloscópio

Nota-se que, considerando uma leitura de 1 V por divisão, a leitura esta dentro da fai-

xa dos 3.3 V e não consegue-se fazer leitura de medidas devido o tempo de amostragem ser

muito alto.

Quando liga-se o 2812 na planta, a mesma leitura fica da seguinte forma, representada

pela figura 14, abaixo:

Figura 14 - Leitura da posição do motor com o osciloscópio com o 2812 ligado na planta

43

Isso deve-se ao fato de que o AD dos DSP’s possuem um filtro para diminuir o ruído

de leituras. Para descobrir como calcular esse filtro, deve-se pegar o esquemático interno do

AD para saber qual componente deve-se colocar na sua entrada para reduzir ruídos.

Essa planta já possuía esse filtro para o 2812.

Assim, obteve-se os seguintes resultados, mostrados nas figuras 15 e 16, abaixo:

Figura 15(a) - Leitura da posição do motor (b) Leitura da posição do motor em radianos, utilizando o CCS V3.3

Figura 16(a) – Outro exemplo de uma leitura da posição do motor (b) Leitura da posição do motor em radianos,

utilizando o CCS V3.3

Nota-se a precisão da leitura da posição pelo AD. Uma precisão de 6 casas decimais.

Utilizando-se o 28335, foi necessário fazer correções no código do 2812, pois apresen-

tava diferenças em alguns registradores. Assim, ligando o 28335 na planta, obteve-se os se-

guinte resultados, representados pela figuras 17 e 18, mostradas abaixo:

44

Figura 17(a) Leitura da posição do motor (b) Leitura da posição do motor em radianos, utilizando o CCS V3.3

Figura 18(a) Outro exemplo de uma leitura da posição do motor (b) Leitura da posição do motor em radianos,

utilizando o CCS V3.3

Nota-se que como a planta não possuía o filtro de entrada para o AD, a leitura pelo os-

ciloscópio apresentou bastante ruído, ocasionando uma leitura sem precisão do AD.

Verificando o circuito interno de cada AD em [4] e [5] observa-se que ambos os cir-

cuitos são iguais, teoricamente ambos os circuitos de filtros presentes na planta deveriam fun-

cionar para os dois DSP’s.

6.8 - CONCLUSÃO

Houve uma mudança nos registradores na comparação deles no 2812 em relação ao

28335. Em alguns casos mudou-se apenas o nome, bastando renomear o nome dos

registradores para que o compilador deixasse de acusar erro. Em outros casos foi-se

necessário a busca de um registrador que executasse a função semelhante no 28335 de um

registrador do 2812.

A mudança mais significativa, em relação a algoritmos foi a retirado do módulo

45

SVPWM. Mesmo com insistência na tentativa de implementar um algoritmo desenvolvido

pela TI para essa aplicação, não conseguiu-se implementá-lo.

Tem-se que o 28335 pode ser dito superior ao 2812, pois possui um desempenho

melhor para códigos que possuem varáveis iniciadas na forma de ponto flutuante, possui mais

capacidade de armazenamento, tem mais linha de endereços e dados na interface externa,

apresenta mais do que o dobro de modos de Boot que o 2812, é mais seguro, apesar de ter

perdido o registrador EV do 2812, junto ao módulo que gerava SVPWM, ganhou os

periféricos eQEP e o eCAP.

O circuito de filtro do AD dos dois DSP’s é diferente, pois apresentaram leituras

diferentes da posição do motor, onde quando para o DSP 2812 a planta em estudo já possuía o

circuito de filtro obtendo-se uma leitura precisa da posição do eixo do motor, enquanto que o

28335 fez uma leitura com ruídos da posição do motor, obtendo uma leitura que não era

precisa.

Para resolver o problema do ruído no AD do 28335 será preciso melhorar o código

para tentar reduzir o ruído lido pelo AD.

46

CONCLUSÕES

DSP é uma ferramenta que pode ser utilizada para as mais variadas aplicações em dis-

tintas áreas de pesquisa devido a sua principal função, que é o tratamento de sinais digitais.

A família C2000 é a família de DSP’s mais buscada, no mercado, quando o assunto é

controle digital de motores, devido a extensa quantidade de aplication notes, guias e tutoriais,

ferramentas de software, exemplos desenvolvidos, PDF’s escritos e diversidade de aplicações.

Ambos os DSP’s em estudo possuem vantagens e desvantagens entre si. O 2812 pos-

sui certa facilidade na implementação dos seus algoritmos, pois possui um bloco de registra-

dores alocados no mesmo registrador, que é o EV, diferente do 28335, onde a escrita de seus

algoritmos apresenta uma certa dificuldade devido seus principais registradores e módulos

estarem todos separados. Mas essa divisão acabou deixando esses módulos mais organizados.

O 2812 apresenta suporte ao módulo SVPWM, sendo uma vantagem perante o 28335. O

28335 não apresenta esse módulo devido o fato da demanda de usuários que utilizam esse

módulo ter decrescido nos últimos anos, forçando os desenvolvedores da TI a tirá-lo da linha

de desenvolvimento de novos DSP’s, para implementar com mais novos periféricos. Mas o

28335 apresenta novos módulos, como o eQEP e o eCAP, além de módulos para comunica-

ção serial, como o SCI e o I2C, sendo uma vantagem em relação ao 2812.

Em relação ao desempenho em algoritmos de ambos os DSPs, o 28335 é superior, pois

possui mais velocidade em algoritmos com variáveis definidas a ponto flutuante, possui nas

memórias RAM e flash, o dobro de armazenamento possível, apresenta uma lista de arqui-

vos.h e arquivos.c (cabeçalhos) maior, apresentando mais bibliotecas e arquivos de suporte.

Sendo assim, possui muito mais aplicações que o 2812, portanto, o 28335 é melhor para o

controle de acionamento de máquinas que o 2812.

47

REFERÊNCIAS BIBLIOGRÁFICAS

[1] ADC_281x.pdf, Texas Instruments. Disponível em

http://focus.ti.com/lit/ug/spru060d/spru060d.pdf

[2] C2000 Real-Time Microcontroller.pdf, Texas Instruments, 2010

[3] C2833x/C2823x C/C++ Header Files and Peripherals Examples Quick Start.pdf, Tex-

as Instruments, 2009. Disponível em

http://read.pudn.com/downloads104/sourcecode/embed/428058/v101/doc/DSP2833x_

HeaderFiles_Quickstart_Readme.pdf

[4] Data_Manual_281x.pdf, Texas Instruments. Disponível em

http://focus.ti.com/lit/ds/symlink/tms320f2812.pdf

[5] Data_Manual_2833x.pdf, Texas Instruments. Disponível em

http://focus.ti.com/lit/ds/sprs439i/sprs439i.pdf

[6] Enhanced Quadrature Encoder Pulse (eQEP) Module.pdf, Texas Instruments. Dispo-

nível em http://focus.ti.com/lit/ug/sprug05a/sprug05a.pdf.

[7] Event Manager Reference Guide.pdf, Texas Instruments. Disponível em

http://focus.ti.com/lit/ug/spru065e/spru065e.pdf

[8] http://msdn.microsoft.com/pt-br/library/aa833876%28v=vs.90%29.aspx. Acesso em

19 mai. 2011.

[9] http://processors.wiki.ti.com/index.php/C28x_Compiler_Error_and_Warning_Messag

es - Acesso em 19 mai. 2011.

[10] http://processors.wiki.ti.com/index.php/Category:C2000 - Acesso em 19 mai. 2011.

[11] http://processors.wiki.ti.com/index.php/ControlSUITE_for_C2000 - Acesso em 19

mai. 2011.

[12] http://processors.wiki.ti.com/index.php/TMS320C2000_Motor_Control_Primer - A-

cesso em 19 mai. 2011.

[13] http://www.cbpf.br/~rastuto/, Acesso em 19 mai. 2011.

[14] http://www.hardware.com.br/termos/pipeline - Acesso em 19 mai. 2011.

[15] http://www.sgcworld.com/dspintrotechnote.html - Acesso em 19 mai. 2011.

[16] https://estore.ti.com/Software-Development-Tools-C33.aspx - Acesso em 19 mai.

2011.

[17] Liptak, Béla G. (2006). Instrument Engineers' Handbook: Process control and optimi-

zation. 2. CRC Press.pp. 11–12.

48

[18] NUNES, R. A. A., ALBUQUERQUE M. P., ALBUQUERQUE M. P., Introdução a

processadores e sinais digitais, 2006, 17f. Também pode ser visitado pelo link

http://www.cbpf.br/~rastuto/pdf/NT-CBPF001-2006.pdf

[19] SMITH, S. W., The Scientistand Engineer’s Guide to DIGITAL SIGNAL

PROCESSING, 1997-1999, 664f. – California Technical Publishing.