OSCILOSCÓPIO DIGITAL PORTÁTIL DE BAIXO CUSTO · 2012-08-02 · interface with PC via USB....

67
1 UNIVERSIDADE FEDERAL DO PARANÁ BRUNO MANUEL SHOU OSCILOSCÓPIO DIGITAL PORTÁTIL DE BAIXO CUSTO Projeto de Graduação em Engenharia Elétrica apresentado à Universidade Federal do Paraná, como requisito parcial para obtenção do título de Engenheiro Eletricista. Orientador: Eduardo Parente Ribeiro, PhD. Curitiba/PR 2011

Transcript of OSCILOSCÓPIO DIGITAL PORTÁTIL DE BAIXO CUSTO · 2012-08-02 · interface with PC via USB....

1

UNIVERSIDADE FEDERAL DO PARANÁ

BRUNO MANUEL SHOU

OSCILOSCÓPIO DIGITAL PORTÁTIL DE BAIXO CUSTO

Projeto de Graduação em Engenharia

Elétrica apresentado à Universidade

Federal do Paraná, como requisito parcial

para obtenção do título de Engenheiro

Eletricista.

Orientador: Eduardo Parente Ribeiro,

PhD.

Curitiba/PR

2011

2

À Cibele, minha esposa, e à minha filha Emily.

Aos meus irmãos Ricardo, Reinaldo (in memoriam) e Eurico.

Aos meus pais Adelino e Wane.

Ao meu padrasto Ricardo (in memoriam).

Aos meus sogros Dirceu e Dalmi.

Por todo apoio, amor e dedicação, por quem sou e por tudo o que alcancei.

3

AGRADECIMENTOS

A Deus, pela vida, bênção e proteção.

Aos professores Eduardo Parente Ribeiro, pelo apoio e confiança no meu

trabalho e Ademar Luiz Pastro, por me apresentar ao fantástico mundo dos

microcontroladores.

Aos amigos e colegas que fiz durante a graduação, os quais de alguma

forma contribuíram para que este trabalho pudesse ser concluído.

Aos meios de pesquisas modernos que permitiram o acesso às informações

de forma rápida e prestativa.

À minha família pela paciência e apoio, principalmente à minha filha pelo

tempo que não pude participar de suas brincadeiras.

4

RESUMO

A necessidade de se medir unidades elétricas é uma constante na área de

engenharia elétrica e também em setores que se utilizam de transdutores para

conversão de outros tipos de energia como mecânica em elétrica. O uso de

equipamentos destinados a esta função é um importante procedimento para analisar

a qualidade do sinal a ser investigado. Existem vários tipos de instrumentos

disponíveis no mercado, capazes de medir sinais elétricos para diferentes

necessidades. Os diferenciais estão na sensibilidade, resolução, largura de banda,

funções matemáticas embarcadas, interface homem-máquina, portabilidade,

resistência elétrica e mecânica, conectividade com microcomputadores, entre outros.

Um importante equipamento de medidas elétricas é o osciloscópio. Este é capaz de

medir sinais contínuos e alternados, exibindo-os em uma tela com duas dimensões.

O gráfico mostrado é resultado da tensão em função do tempo do sinal medido. O

presente trabalho propõe o desenvolvimento de um osciloscópio digital portátil de

baixo custo destinado a alunos, técnicos e hobistas da área, para uma análise rápida

e simplificada com recursos adicionais como exibição em display gráfico,

armazenamento em cartão de memória SD/MMC e interface com microcomputador

via USB.

Palavras-chave: Osciloscópio Digital Portátil, Display Gráfico,

Microcontrolador, ADC, cartão SD/MMC, USB.

5

ABSTRACT

The need to measure electrical units is a constant in the area of electrical

engineering and also in sectors that use transducers for converting other types of

energy such as mechanical to electrical. The use of equipment for this function is an

important procedure for analyzing the signal quality to be investigated. There are

several types of instruments available in the market, capable of measuring electrical

signals to different needs. The differentials may be in the sensitivity, resolution,

bandwidth, math functions on board, man-machine interface, portability, electrical

and mechanical resistance, and connectivity with personal computers, among others.

The oscilloscope is an important equipment for electrical measurement. It is capable

to measure DC and AC signals, displaying them on a screen with two dimensions.

The graph shown is a result of the voltage versus time of the measured signal. This

paper proposes the development of a portable digital oscilloscope low-cost for

students, technicians and hobbyists in the area for a quick and simplified analysis

with additional features like graphic display, storage memory card SD/MMC and

interface with PC via USB.

Keywords: Portable Digital Oscilloscope, Graphic Display, Microcontroller,

ADC, SD/MMC, USB.

6

LISTA DE FIGURAS

FIGURA 1 - DIFERENÇA ENTRE OSCILOSCÓPIO ANALÓGICO E DIGITAL .......... 3

FIGURA 2 - TIPOS DE SINAIS ................................................................................... 4

FIGURA 3 - SINAL COM ALIASING ........................................................................... 5

FIGURA 4 - PRINCIPAIS TIPOS DE INTERPOLAÇÃO GRÁFICA ............................. 6

FIGURA 5 - PINAGEM DO PIC18F4550 PARA O SOQUETE TQFP ......................... 8

FIGURA 6 - CLOCK/CICLO DE INSTRUÇÃO ............................................................ 9

FIGURA 7 - FUNÇÃO DE TRANSFERENCIA A/D ................................................... 11

FIGURA 8 - CÁCULO DO TEMPO MÍNIMO DE AQUISIÇÃO DO ADC .................... 13

FIGURA 9 - TEMPO DE CONVERSÃO DO ADC ..................................................... 14

FIGURA 10 - DIAGRAMA DE BLOCOS DO GLCD .................................................. 15

FIGURA 11 - REPRESENTAÇÃO DAS CARACTERÍSTICAS DO GLCD................. 16

FIGURA 12 - CONECTORES: PADRÃO-A, PADRÃO-B, MINI-B E MICRO-B ......... 18

FIGURA 13 - VÁRIOS DISPOSITIVOS SLAVES NO BARRAMENTO SPI ............... 21

FIGURA 14 - CONEXÃO SPI MASTER/SLAVE ........................................................ 22

FIGURA 15 - FORMAS DE ONDAS DOS MODOS SPI (MODO MASTER) ............. 23

FIGURA 16 - SD, MINI SD E MICRO SD .................................................................. 24

FIGURA 17 - COMPATIBILIDADE ELÉTRICA ENTRE SD E MMC .......................... 25

FIGURA 18 - ARQUITETURA DO CARTÃO SD ....................................................... 25

FIGURA 19 - COMANDO E RESPOSTA DO SD NO MODO SPI ............................. 28

FIGURA 20 - FORMATO DE RESPOSTA R1 E R3 .................................................. 28

FIGURA 21 - FORMATO DO PACOTE DE DADOS ................................................. 29

FIGURA 22 - DIAGRAMA EM BLOCOS DO PROJETO PROPOSTO ...................... 31

FIGURA 23 - BATERIA ALCALINA 9 V - 6LR61 ....................................................... 35

FIGURA 24 - PCI - LADO DA SOLDA ....................................................................... 36

FIGURA 25 - PCI - LADO DOS COMPONENTES .................................................... 37

FIGURA 26 - CIRCUITO MONTADO ........................................................................ 37

FIGURA 27 - PROTÓTIPO MONTADO .................................................................... 37

FIGURA 28 - FLUXOGRAMA DO FIRMWARE ......................................................... 39

FIGURA 29 - FLUXOGRAMA DA CONVERSÃO A/D ............................................... 40

FIGURA 30 - FLUXOGRAMA DO PROCESSAMENTO DO SINAL .......................... 40

FIGURA 31 - FLUXOGRAMA DO CÁLCULO DA FREQUÊNCIA ............................. 41

FIGURA 32 - FLUXOGRAMA DO MODO USB ......................................................... 41

FIGURA 33 - RESULTADO DA COMPILAÇÃO ........................................................ 41

FIGURA 34 - UTILIZAÇÃO DE RECURSOS POR BIBLIOTECAS ........................... 43

FIGURA 35 - SIMULAÇÃO DO OSCILOSCÓPIO DIGITAL PORTÁTIL ................... 44

FIGURA 36 – DEBUGGER PARA USB E SPI .......................................................... 45

FIGURA 37 - MENU DE OPÇÕES DO OSCILOSCÓPIO DESENVOLVIDO ............ 46

FIGURA 38 - USO DO SEGUNDO CANAL E DE AMBOS SIMULTANEAMENTE ... 46

FIGURA 39 - RECURSO TRIGGER PARA BORDA DE DESCIDA .......................... 47

FIGURA 40 - TESTE DO RECURSO TIME/DIV DE 50 MS, 5 MS E 0,5 MS ............ 47

FIGURA 41 - MODO DC ........................................................................................... 48

7

FIGURA 42 – SINAL COM AMPLITUDE DE 12 V PICO A PICO .............................. 48

FIGURA 43 - FREQUÊNCIA MÁXIMA DE AMOSTRAGEM ..................................... 49

FIGURA 44 - TEMPO/DIV 50 MS - SINAIS DE 4 HZ A 40 HZ .................................. 49

FIGURA 45 - TEMPO/DIV 5 MS - SINAIS DE 40 HZ A 400 HZ ................................ 49

FIGURA 46 - TEMPO/DIV 0,5 MS - SINAIS DE 400 HZ A 4 KHZ ............................. 50

FIGURA 47 - MODO USB ......................................................................................... 50

FIGURA 48 - ENVIANDO OS DADOS DO CARTÃO SD/MMC ATRAVÉS DO USB 51

8

LISTA DE QUADROS

QUADRO 1 - COMPARATIVO ENTRE MICROCONTROLADORES ......................... 7

QUADRO 2 - RELAÇÃO ENTRE TAD E FOSC ........................................................ 13

QUADRO 3 - INTRUÇÕES DE CONTROLE DO NT7108 ........................................ 16

QUADRO 4 - REGISTRADORES DO CARTÃO SD ................................................. 26

QUADRO 5 - COMANDOS COMPATÍVEIS DO CARTÃO SD NO MODO SPI ......... 27

QUADRO 6 - FORMATO DO COMANDO NO MODO SPI ....................................... 27

QUADRO 7 - RELAÇÃO DE CONSUMO POR RECUROS DO MCU ....................... 33

QUADRO 8 - RELAÇÃO DE CONSUMO PARA GLCD E LM7805, .......................... 34

QUADRO 9 - LISTA DE COMPONENTES................................................................ 36

QUADRO 10 - BIBLIOTECAS UTILIZADAS ............................................................. 42

9

LISTA DE ABREVIATURAS E SIGLAS

ADC - Analog to Digital Converter

ANSI - American National Standards Institute

Byte - Equivalente a 8 bits

CDC - Custom Device Class

CRC - Cyclic Redundancy Check

DPI - Dot Per Inch

E/S - Entrada e Saídas

HID - Human Interface Device

IDE - Integrated Development Environment

IRQ - Interrupt-Request

FAT - File Alocation Table

FFT - Fast Fourrier Transform

FOSC - Frequência de oscilação

GLCD - Graphic Liquid Crystal Display

GND - Ground

JEDEC - Joint Electron Device Engineering Council

kSPS - kilo Samples Per Second

LSb - Less Significant bit

MCU - Microcontrolador

MHz - MegaHertz

MIPS - Milhões de Instruções Por Segundo

MMC - MultiMediaCard

MSb - Most Significant bit

OTG - On-The-Go

PCI - Placa de Circuito Impresso

PDA - Personal Digital Assistant

SD - Secure Digital

RAM - Random Access Memory

RISC - Reduced Instructions Set Computer

ROM - Read Only Memory

TAcQ - Tempo de aquisição do ADC

USB - Universal Serial Bus

USB-IF - USB Implementers Forum

10

SUMÁRIO

1 INTRODUÇÃO ......................................................................................................... 1 1.1 OBJETIVOS .......................................................................................................... 1

1.1.1 Objetivo Geral .................................................................................................... 1 1.1.2 Objetivo Específico ............................................................................................. 2 1.2 JUSTIFICATIVA .................................................................................................... 2 2 CONCEITOS ............................................................................................................ 3 2.1 OSCILOSCÓPIO DIGITAL .................................................................................... 3

2.1.1 Discretização do sinal contínuo .......................................................................... 4 2.2 MICROCONTROLADOR ....................................................................................... 6 2.2.1 Ambiente de desenvolvimento integrado - IDE .................................................. 9

2.3 CONVERSOR ANALÓGICO/DIGITAL ................................................................ 10 2.3.1 Faixa dinâmica ................................................................................................. 10 2.3.2 Resolução ........................................................................................................ 11 2.3.3 Sensibilidade .................................................................................................... 12

2.3.4 Taxa de amostragem ....................................................................................... 12 2.4 DISPLAY GRÁFICO DE CRISTAL LÍQUIDO (GLCD) ......................................... 14

2.4.1 Funcionamento ................................................................................................. 15 2.5 USB ..................................................................................................................... 17

2.5.1 Tipos de conectores ......................................................................................... 18 2.5.2 Enumeração ..................................................................................................... 20 2.5.3 Classes de dispositivos .................................................................................... 20

2.6 SERIAL PERIPHERAL INTERFACE BUS (SPI) ................................................. 21

2.6.1 Modos de operação .......................................................................................... 22 2.7 CARTÕES DE MEMÓRIA SD/MMC ................................................................... 23 2.7.1 Registradores internos do cartão SD ............................................................... 25

2.7.2 Operação no modo SPI .................................................................................... 26 2.8 AMBIENTE DE DESIGN DE CIRCUITOS E SIMULAÇÃO ................................. 30

3 PROJETO .............................................................................................................. 31 3.1 HARDWARE ....................................................................................................... 31 3.1.1 ADC e armazenamento na memória ................................................................ 31

3.1.2 Display gráfico .................................................................................................. 32 3.1.3 Armazenamento em cartão SD/MMC ............................................................... 32

3.1.4 USB .................................................................................................................. 33 3.1.5 Consumo .......................................................................................................... 33 3.1.6 Esquema elétrico, relação de componentes e preços ...................................... 35

3.2 PROTÓTIPO ....................................................................................................... 36 3.3 FIRMWARE ......................................................................................................... 38 3.3.1 Funções ............................................................................................................ 39 3.4 SIMULAÇÃO ....................................................................................................... 43

4 RESULTADOS ....................................................................................................... 46 4.1 DIFICULDADES .................................................................................................. 51 5 CONCLUSÃO ........................................................................................................ 53 5.1 RECOMENDAÇÕES PARA TRABALHOS FUTUROS ....................................... 53 REFERÊNCIAS ......................................................................................................... 54 ANEXO A – ESPECIFICAÇÕES GLCD WINSTAR WG12864A .............................. 55 ANEXO B – FLUXOGRAMA DE INICIALIZAÇÃO SD/MMC ................................... 56

ANEXO C – ESQUEMA ELÉTRICO DO OSCILOSCÓPIO DIGITAL PORTÁTIL .... 57

1

1 INTRODUÇÃO

Os osciloscópios são equipamentos de instrumentação eletrônica capazes

de medir sinais elétricos em tempo real permitindo uma análise detalhada dos

mesmos. Atualmente, existem no mercado os osciloscópios analógicos e os digitais.

Os primeiros são baseados em circuitos analógicos e tubos de raios catódicos cujo

projeto é dependente principalmente do hardware. Já os digitais são compostos por

elementos da eletrônica digital como conversores analógico/digital, memórias e

microprocessadores além de um visor de cristal líquido, por exemplo. Estes

apresentam um projeto mais integrado e dependem de uma lógica digital pré-

programada, o chamado software ou firmware, permitindo uma otimização do

equipamento para determinadas aplicações.

Com a evolução dos componentes digitais e integração cada vez maior

destes circuitos, os osciloscópios digitais têm se tornados mais eficientes e

compactos, mas normalmente com faixas de preços inacessíveis a técnicos,

hobistas e aprendizes em eletrônica. O presente projeto tem a intenção de oferecer

um instrumento com características do osciloscópio digital e recursos simplificados a

baixo custo que possa atender necessidades básicas do referido público alvo.

1.1 OBJETIVOS

Para este trabalho, certos objetivos foram definidos para que o

desenvolvimento pudesse ser viável e organizado.

1.1.1 Objetivo Geral

O objetivo geral deste projeto é desenvolver um osciloscópio digital portátil a

baixo custo de montagem com funções básicas de um equipamento equivalente

comercial.

2

1.1.2 Objetivo Específico

Desenvolver o equipamento baseado em microcontrolador utilizando-se de

dispositivos de fácil aquisição no mercado nacional e que atenda os seguintes

requisitos:

Portátil, sendo independente de outros equipamentos;

Resolução de conversão analógico/digital de 8 bits;

Display GLCD;

Função armazenamento de dados em cartão SD/MMC;

Comunicação USB;

Alimentação à bateria.

1.2 JUSTIFICATIVA

São notáveis os recursos que um osciloscópio pode oferecer, permitindo

uma análise mais detalhada de um sinal elétrico. Porém, o custo de aquisição de um

equipamento de grande utilidade como este, torna-se inviável ao usuário comum,

estando tais instrumentos destinados a laboratórios acadêmicos e industriais.

Portanto, um projeto que pretende adequar componentes eletrônicos capazes de

executar tais funções a um custo baixo, dentro de certas limitações, mas não menos

funcionais, pode auxiliar o público a que este trabalho se refere. Além das funções

básicas de um equipamento comum, agrega-se ao presente desenvolvimento, o uso

de tecnologias como comunicação USB e armazenamento em cartão SD/MMC,

tornando-o um instrumento relativamente moderno.

3

2 CONCEITOS

A seguir, serão apresentados os equipamentos e dispositivos em que este

projeto se baseia, definindo certos componentes que serão utilizados no trabalho

proposto.

2.1 OSCILOSCÓPIO DIGITAL

O osciloscópio digital é um tipo de instrumento que tem a capacidade de

amostrar sinais em tempo contínuo para o tempo discreto através de um conversor

analógico/digital, armazenando os valores de tais conversões para posterior

processamento e exibição em tela, ao contrário do osciloscópio analógico cujo sinal

lido é traçado em um tudo de raios catódicos (figura 1). A amostragem é realizada

em determinada resolução e em pequenos intervalos de tempo, de modo que se

possa restaurar um sinal semelhante ao original através destes.

FIGURA 1 - DIFERENÇA ENTRE OSCILOSCÓPIO ANALÓGICO E DIGITAL FONTE: TEKTRONIX (2009)

Em tais equipamentos observam-se as seguintes especificações:

Resolução do conversor A/D (bits);

Taxa de amostragem (kSPS);

Largura de banda (MHz);

4

2.1.1 Discretização do sinal contínuo

Um sinal analógico pode ser representado por uma curva contínua no tempo

e, quando discretizado, poderá ser representado por interpolações entre pontos

adquiridos a partir das amostragens. Ao discretizar um sinal, deve-se levar em conta

a frequência do sinal com a quantidade de amostragens que serão executadas para

que se possa representar um sinal próximo do original.

2.1.1.1 Análise no domínio do tempo

A análise no domínio do tempo permite observar o sinal de acordo com suas

amplitudes que variam durante o tempo. Quando um sinal é discretizado, várias

amostragens são feitas em intervalos pré-definidos. Ao quantizar um sinal, as

amplitudes são convertidas para valores que são múltiplos de unidades definidas

como sensibilidade (apresentado no item 2.3.3 ). A figura 2 representa um sinal

contínuo e sua respectiva discretização e quantização (RIBEIRO, 2000).

FIGURA 2 - TIPOS DE SINAIS FONTE: RIBEIRO (2000)

2.1.1.2 Critério de Nyquist

Existe um fenômeno que pode acontecer na discretização de um sinal

amostrado chamado de Aliasing (sub-amostragem): ocorre quando a quantidade de

amostras por segundo é menor que o dobro da maior frequência que compõe o

5

sinal. Neste caso a restauração do sinal através das amostras não corresponderá ao

sinal original e o sinal restaurado será dado como apresentado na figura 3, dada

pela eq. (1) (MARLIO, 2010):

| | EQ. (1)

onde:

= frequência do sinal original

= frequência de amostragem

= frequência do sinal restaurado = número inteiro ≥ 1

FIGURA 3 - SINAL COM ALIASING FONTE: MARLIO (2010)

Para evitar o Aliasing, deve-se atender ao critério de Nyquist dado na eq.

(2):

EQ. (2)

Isso garante que as amostras tenham condições de representar o sinal

original, mas será dependente do tipo de interpolação gráfica utilizada na

reconstrução do mesmo.

Existem dois tipos principais de interpolações gráficas utilizadas entre duas

amostras para reconstrução de um sinal amostrado: linear e sinc(x).

6

FIGURA 4 - PRINCIPAIS TIPOS DE INTERPOLAÇÃO GRÁFICA FONTE: MARLIO (2010)

Considerando as restrições e necessidades do projeto, optou-se pela

interpolação linear pela vantagem de ser mais simples e rápida de ser calculada e

desenhada (figura 4).

Percebe-se, neste caso, que quanto maior a quantidade de pontos, melhor

será a representação gráfica do sinal restaurado. Portanto, num projeto de um

osciloscópio digital, não é recomendável atender apenas ao critério de Nyquist para

obter um bom resultado na representação do sinal. Desta forma, para o presente

projeto, a máxima frequência que poderá ser amostrada será 10 (dez) vezes menor

que a taxa máxima de amostras por segundo que o referido instrumento será capaz

de executar, sendo este um valor razoável para um bom desempenho do mesmo.

2.2 MICROCONTROLADOR

É o elemento encarregado de executar funções pré-programadas de acordo

com uma lógica definida em código compilado para tal dispositivo. Suas

características são definidas pela arquitetura, quantidade de memória de programa e

de dados, frequência de operação, instruções por ciclo de clock, periféricos

embarcados, quantidade de E/S, entre outros.

Normalmente quando se especifica um MCU para um projeto, devem-se

observar os periféricos integrados que atendam aos requisitos das tarefas que serão

executadas. Desta forma, o projeto torna-se mais integrado e econômico. Para

7

atender os objetivos específicos deste trabalho, compararam-se alguns MCUs

disponíveis atualmente no mercado para o varejo, relacionados no quadro 1:

PIC18F2550 PIC18F4550 AT90USB646 AT89C5131M

Fabricante Microchip Atmel

Máx. FOSC 48 MHz 16 MHz 48 MHz

MIPS 12 MIPS 16 MIPS 4 MIPS

Periféricos

10 ADC 10-bits 2 CCP

MSSP (SPI/I2C)

EUSART Comparators 1 Timer 8-bits

3 Timer 16-bits

13 ADC 10-bits CCP/ECCP/PWM

SSP MSSP (SPI/I

2C)

EUSART Comparators 1 Timer 8-bits 3 Timer 16-bits

8 ADC 10-bits 9 PWM

SPI TWI

USART Comparator

2 Timer 8-bits 2 Timer 16-bits

CCP/PWM SPI TWI

EUART Comparator

3 Timer 16-bits

ADC (máx.) 92 kSPS1 15 kSPS -

USB V 2.0

Low Speed e Full Speed

E/S 24 35 48 34

Memória de Programa

Flash: 32 kB

Memória de Dados

SRAM: 2 kB EEPROM: 256 B

SRAM: 4 kB EEPROM: 2 kB

SRAM: 1280 B EEPROM: 1 kB

Soquete PDIP 28 e SOIC 28

PDIP 40, TQFP 44 e

QFN 44

TQFP 64 e VQFN 64

VQFN 32 LQFP 64 PLCC 52

Disponibilidade **** **** * *

Preço2 R$ 19,76 R$ 20,95 R$ 63,78 R$ 41,60

QUADRO 1 - COMPARATIVO ENTRE MICROCONTROLADORES

Pelas especificações relacionadas no quadro 1 e considerando os recursos

e o preço, o PIC18F45503 apresenta uma boa relação custo x benefício, dentro dos

modelos comparados. Além disso, a experiência técnica do autor com este

1 Valor teórico para utilização de FOSC até 40 MHz, considerando temperatura menor que 25 oC, impedância máxima de saída do sinal de 2,5 kΩ para uma conversão com resolução

de 10 bits.

2 Cotação realizada pelo site da Farnell Newark Brasil em 04/MAIO/2011.

3 Caso deseje uma amostra deste componente, basta possuir um endereço de correio eletrônico vinculado a uma instituição de ensino cadastrada no sítio da Microchip em <http://www.microchip.com/samples/Default.aspx> e efetuar a solicitação.

8

microcontrolador contribuiu com a escolha, pois o dispositivo já fora utilizado em

outros projetos desenvolvidos durante sua graduação.

FIGURA 5 - PINAGEM DO PIC18F4550 PARA O SOQUETE TQFP FONTE: MICROCHIP (2009, PÁG. 2)

O modelo selecionado é considerado de alto desempenho dentro da família

de 8 bits da fabricante. Possui arquitetura Harvard modificada com barramento de 16

bits para instruções e 8 bits para dados separados. Baseia-se na arquitetura RISC

oferecendo 75 instruções padrões mais 8 no modo de instruções estendidas, sendo

a maioria executada em apenas um ciclo de máquina. Possui uma pilha de 32

estágios e multiplicador 8 x 8 via hardware. Sua distribuição de pinos está

representada na figura 5 (MICROCHIP, 2009).

A velocidade de processamento é calculada pela quantidade de instruções

por segundo de que o MCU é capaz de executar. Para os PIC’s, cada ciclo de

máquina equivale a 4 ciclos de clock devido aos estágios internos realizados por

este MCU (pipeline), conforme apresentado na figura 6.

9

FIGURA 6 - CLOCK/CICLO DE INSTRUÇÃO FONTE: MICROCHIP (2009, PÁG. 63)

Portanto, a capacidade de processamento deste PIC é calculada pela

frequência de oscilação dividida por quatro, cujo valor máximo será de 48 MHz

resultando em 12 MIPS o que equivale a dizer que o MCU executa uma instrução a

cada 83,33 nS (nano segundos) que é o tempo de um ciclo de máquina.

A programação do componente pode ser realizada diretamente via circuito,

através do ICSP disponível pelos pinos compartilhados para tal, especificados no

datasheet.

2.2.1 Ambiente de desenvolvimento integrado - IDE

A Microchip oferece uma IDE para download em seu sítio1 de forma gratuita,

o MPLAB 8.66 para MS Windows, na qual vários recursos estão disponíveis como

compilador para linguagem assembly, simulador de execução de código, debugger,

entre outros, além de integrar os diversos programadores e debugadores fabricados

pela mesma empresa. Disponibiliza também o MPLAB C18, incluindo uma versão

para estudantes sem limitações, apenas com redução da otimização da compilação

do código em linguagem ANSI C.

1 MPLAB IDE 8.66 disponível em < http://www.microchip.com/stellent/idcplg?IdcService= SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002>. Acesso em: 13/3/2011.

10

Apesar desta conveniência, utilizou-se a IDE CCS C Compiler1, um

compilador de linguagem C, versão PCWHD de demonstração para MS Windows,

que suporta todos os MCUs da Microchip, com nenhuma restrição de suas

funcionalidades, em relação à versão completa, por 45 dias. Uma das vantagens

desta IDE é a grande variedade de bibliotecas disponibilizadas para uso com

diversos periféricos, contendo todas as necessárias para a os recursos utilizados

neste projeto, além de oferecer diversos exemplos de uso de bibliotecas e funções

em C comumente encontradas em outros compiladores de mesma linguagem. Outro

ponto favorável é o arquivo de ajuda do aplicativo, na qual diversas funções são

explicadas e exemplificadas, facilitando a utilização de recursos novos.

2.3 CONVERSOR ANALÓGICO/DIGITAL

O osciloscópio digital baseia-se na conversão do sinal em tempo contínuo

para o discreto. São realizadas n amostras em t segundos de maneira que tais

valores possam recompor um sinal semelhante ao original. Tal amostra é quantizada

na mesma proporção que a resolução do conversor utilizado dentro de uma escala

compatível com o intervalo de tensões aceitáveis do dispositivo. Esse processo é

chamado de conversão analógico/digital cujo resultado dependerá dos seguintes

parâmetros do conversor: faixa dinâmica, resolução e tempo de conversão.

A seguir, serão detalhados tais parâmetros baseando-se no ADC disponível

no MCU selecionado (PIC18F4550);

2.3.1 Faixa dinâmica

A faixa dinâmica corresponde às tensões de referências máxima e mínima,

cujos valores podem ser configurados para uma maior sensibilidade. Ela implica a

adequação da amplitude do sinal para esta faixa de tensões para que o conversor

possa amostrar o sinal em toda sua amplitude.

1 CCS Compiler Demo disponível em <http://www.ccsinfo.com/downloads.php>. Acesso em: 15/4/2011.

11

O conversor A/D disponível no PIC18F4550 pode ser referenciado entre os

intervalos VSS até VDD (tensões de referência e de alimentação do PIC). A tensão de

referência mínima poderá ser qualquer valor entre GND e 1,8V e a tensão de

referência máxima poderá ser qualquer valor entre 3 V a VDD. No presente caso, os

valores estarão referenciados entre GND e VDD de 5 V.

2.3.2 Resolução

A resolução de um conversor analógico digital refere-se à amplitude do sinal

amostrado em termos da digitalização do mesmo, ou seja, converter um valor

analógico em um valor digital. Esta característica define a quantidade máxima de

valores que uma conversão pode alcançar. O valor desta especificação é dado em

bits, ou seja, os valores possíveis serão 2 elevado a potência da resolução indicada.

No projeto deste trabalho o conversor utilizado tem resolução máxima de 10

bits, ou seja, 210=1024 possíveis valores para cada amostragem, mas configurado

para 8 bits de modo a otimizar a performance devido o MCU especificado ter

barramento de dados de 8 bits, além de ser comum esta resolução nos osciloscópios

digitais disponíveis no mercado. A figura 7 mostra a relação entre o valor

correspondente do sinal de entrada (eixo horizontal) e o valor correspondente de

saída.

FIGURA 7 - FUNÇÃO DE TRANSFERENCIA A/D FONTE: MICROCHIP (2009, PÁG. 269)

12

2.3.3 Sensibilidade

A sensibilidade do conversor A/D é definida como o menor valor de tensão

capaz de incrementar o resultado da conversão em uma unidade, conforme eq. (3):

EQ. (3)

As referências de tensão máxima e mínima no projeto são 5 volts e GND,

respectivamente, e a resolução utilizada é de 8 bits, resultando em uma

sensibilidade calculada na eq. (4):

EQ. (4)

Para o resultado da eq. (4) temos que para cada 19,53 mV o valor

digitalizado será incrementado em uma unidade, sendo 0 para uma amplitude nula e

255 para uma amplitude de 5 V.

2.3.4 Taxa de amostragem

A taxa de amostragem definirá a máxima frequência do sinal que poderá ser

amostrado sendo caracterizada pela quantidade de amostras que o ADC é capaz de

realizar em um segundo. No presente caso, o valor máximo teórico desta taxa pode

ser obtido a partir das equações contidas no datasheet do PIC18F4550. Conforme

demonstrado na figura 8, para temperaturas de até 25 oC, temos um TACQ = 1,25 µs,

considerando a impedância máxima recomendada para a entrada da porta analógica

de 2,5 kΩ e resolução de 10 bits. Mas este valor apenas define o tempo mínimo para

que o ADC inicie o processo de conversão de modo preciso. O tempo de conversão

por bit é dado por TAD, o qual deve ser o menor possível acima de 0,8 µs, e é

calculado a partir da FOSC, conforme quadro 2.

13

FIGURA 8 - CÁCULO DO TEMPO MÍNIMO DE AQUISIÇÃO DO ADC FONTE: MICROCHIP (2009, PÁG. 270)

QUADRO 2 - RELAÇÃO ENTRE TAD E FOSC FONTE: MICROCHIP (2009, PÁG. 270)

Para uma FOSC de 48 MHz, temos que TAD = 1,33 µs (64 / 48 MHz).

Considerando a resolução de 10 bits pode-se calcular o tempo total de conversão,

baseando-se na figura 9, onde TCY representa o tempo de um ciclo de máquina

(equivalente a 83,3 nS para a FOSC mencionada anteriormente - TCY = 4/FOSC),

observa-se que são necessários 1 TCY + 12 TAD para que uma conversão seja

realizada por completo, ou seja, 16,08 µs.

14

FIGURA 9 - TEMPO DE CONVERSÃO DO ADC FONTE: MICROCHIP (2009, PÁG. 273)

Logo, o tempo total para que o PIC18F4550 complete uma amostragem é a

soma do tempo de aquisição mais o tempo de conversão, resultando em 17,33 µs,

considerando as condições apresentadas. Este valor representa uma taxa de

amostragem equivalente de 57 kSPS. Como dito no item 2.1.1.2 , o projeto

executará no mínimo 10 amostragens por cada ciclo do sinal amostrado, restringindo

o projeto para um sinal com componente máxima de 5,7 kHz de frequência.

Este valor só será capaz de ser atingido se o MCU executasse apenas as

conversões sem nenhuma outra tarefa. Conforme desenvolvimento do firmware, a

máxima taxa de amostragem será definida de acordo com as funções selecionadas

durante a execução do código.

2.4 DISPLAY GRÁFICO DE CRISTAL LÍQUIDO (GLCD)

O GLCD exibe pontos (pixels) de acordo com os dados armazenados em

sua memória interna. O dispositivo possui controladores que acionam os pixels

distribuídos em uma matriz de linhas por colunas. Para os objetivos do projeto

buscou-se um GLCD monocromático, cuja resolução fosse relativamente suficiente

para representar uma curva com clareza, com comunicação paralela para não

impactar no desempenho do MCU além de ter um custo de aquisição baixo.

Dentro destas especificações, o dispositivo escolhido foi o modelo

WG12864A da Winstar (Anexo A), com resolução de 128 por 64 pixels que possui 2

controladores NT7018 (compatíveis com as instruções do KS0108B da Samsung,

comumente utilizados em GLCD's) capazes de comutar 64 canais de saídas

15

(colunas) com capacidade de 512 bytes de memória RAM cada uma, e um

controlador comum NT7107 (compatível com o KS0107B) com 64 canais de saída

(linhas), conforme diagrama da figura 10. A comunicação é feita paralelamente byte

a byte onde cada bit corresponde a um pixel, sendo 1 para ativo e 0 para inativo. O

modelo ainda possui backlight verde.

FIGURA 10 - DIAGRAMA DE BLOCOS DO GLCD FONTE: WINSTAR (2006)

Por utilizar controladores compatíveis com os mais utilizados em GLCD’s

equivalentes, não é difícil encontrar bibliotecas prontas para os diversos

compiladores disponíveis para MCUs.

2.4.1 Funcionamento

A memória do dispositivo é distribuída em 8 páginas com 64 bytes,

totalizando 8x64=512 bytes por controlador. Para ativar um pixel é necessário

primeiro enviar instruções de comando para o controlador do GLCD com o endereço

da página do eixo horizontal (ativando em nível lógico alto o CS do controlador

correspondente) e o endereço da linha do eixo vertical. Após esta etapa, envia-se o

valor do byte referente ao pixel a ser ativado. Para cada escrita ou leitura, o

controlador comum do GLCD, no caso o NT7107, incrementa automaticamente para

a próxima linha a ser controlada (WINSTAR, 2006).

16

QUADRO 3 - INTRUÇÕES DE CONTROLE DO NT7108 FONTE: WINSTAR (2006)

O controlador do GLCD obedece às instruções apresentadas no quadro 3. A

biblioteca disponível na IDE (item 2.2.1 ) utilizada possui algumas funções básicas

para desenho de gráficos como linha, circunferências, retângulos e fontes,

facilitando a utilização do dispositivo.

FIGURA 11 - REPRESENTAÇÃO DAS CARACTERÍSTICAS DO GLCD

17

2.5 USB

O barramento serial universal se tornou um dos padrões de comunicação

mais utilizados entre computadores e dispositivos periféricos devido à facilidade de

uso do mesmo, desde o momento da conexão física até a utilização propriamente

dita do dispositivo. Tal fato se deve ao grande suporte pela maioria dos sistemas

operacionais disponíveis para computadores que suportam nativamente diversos

dispositivos conectados no barramento USB na forma Plug’n Play (plugue e use).

O padrão de comunicação USB apresenta como características (IBRAHIM,

2008):

Diversos dispositivos podem ser conectados ao mesmo barramento

(até 127, incluindo hubs);

Configuração automática pelo sistema operacional sem necessidade

de configurações adicionais como Jumpers ou IRQ's;

Dispositivos são conectados sem a necessidade de abertura do

computador através de conectores no gabinete ou hubs;

Conectores são pequenos, compactos, fáceis de identificar e

conectar;

Comprimento dos cabos pode chegar a 5 m dependendo da

velocidade do barramento ou até 30 m através de hubs;

Versão sem fios para o barramento;

Podem ser conectados ou desconectados sem a necessidade de

desligar o computador ou o dispositivo;

Dispositivos podem ser alimentados apenas pelo barramento (Bus

Powered) a + 5 V, drenando no máximo a 100 mA (USB 2.01) ou 150

mA (USB 3.0);

Velocidade: 1,5 Mbps (Low Speed - USB 1.0, USB 1.1 e USB 2.0), 12

Mbps (Full Speed - USB 1.1 e USB 2.0), 480 Mbps (High Speed –

USB 2.0) e 5 Gbps (SuperSpeed – USB 3.0);

Um dispositivo pode ter mais de uma função, como uma

multifuncional que tem função de impressora e scanner.

Algumas limitações em relação a este padrão de comunicação estão no

comprimento do cabo que não pode exceder 5 m ou 30 m através de Hubs e não há

1 Em alguns Hosts a máxima corrente fornecida pode chegar a 500 mA para USB 2.0 e 900 mA para USB 3.0 (high-power device), conforme AXELSON (2009).

18

suporte ponto-a-ponto (Host a Host) ou broadcasting (comunicação com apenas um

dispositivo por vez). Outra desvantagem está na complexidade do protocolo, tanto

para o desenvolvimento do lado do Host (software e driver) quanto do lado do

dispositivo (firmware).

Para desenvolvedores, o uso protocolo USB se tornou uma necessidade,

pois a grande adoção deste padrão pelo mercado tem limitado padrões de

comunicações obsoletos, como a serial RS-232 e a paralela IEEE 1284 encontradas

em computadores antigos, atualmente restritos a adaptadores ou equipamentos

específicos, pois os computadores atuais já não oferecem essas portas em suas

interfaces de comunicação.

2.5.1 Tipos de conectores

A escolha do tipo de conector USB a ser usado em um dispositivo

dependerá do tamanho do equipamento, não havendo restrição em relação ao

conector, mas havendo em relação ao tipo de cabo utilizado, ou seja, cabos para o

padrão USB 1.1 não alcançarão as taxas High Speed da versão US 2.0 e

SuperSpeed da versão USB 3.0, apesar da semelhança do mesmo para o caso do

conector padrão-A. Os conectores possuem 4 pinos e o cabo é composto por 4 fios

em uma blindagem. Exemplos de conectores podem ser vistos na figura 12.

FIGURA 12 - CONECTORES: PADRÃO-A, PADRÃO-B, MINI-B E MICRO-B FONTE: AXELSON (2009)

19

2.5.1.1 Tipos de transferências

Em uma comunicação USB o Host é quem inicia o processo de transferência

de dados. Cada formato de transferência pode conter dados, endereço, CRC e

informações de status e controle, e varia com o tipo e direção da transferência. Um

endpoint é um buffer que contém um dado com uma numeração, direção e o valor

do número máximo de bytes que o endpoint pode transportar. Conforme IBRAHIM

(2008), os tipos podem ser:

Control

É um modo de transferência de dados bidirecional, utilizando endpoints de

entrada e saída. Geralmente é utilizado pelo Host para a configuração

inicial do dispositivo requisitando uma série de estrutura de dados,

chamadas de descritores. Este modo de transferência possui três estágios:

SETUP, DATA e STATUS;

Bulk

Este modo destina-se a transferência de uma quantidade grande de dados

com CRC, mas não há garantias de largura de banda, ou seja, para

operações em que a taxa de transferência baixa não seja um problema. Em

full-speed pode-se transferir de 8 a 64 pacotes de dados e em high-speed,

512 pacotes;

Interrupt

Quando há a necessidade de transferência de dados a máxima taxa de

transferência com baixa latência, este modo é o indicado para uma

quantidade não muito grande de dados, onde há garantia de largura de

banda. Os pacotes, neste modo, podem ter de 1 a 8 bytes em low-speed, 1

a 64 bytes em full-speed e até 1MB em high-speed; e

Isochronous

Neste modo não há garantias de CRC do dado transferido, mas há garantia

de largura de banda. Normalmente, este modo é utilizado em aplicações

como streaming de áudio, onde velocidade é importante, mas a perda ou

corrupção de alguns dados não. Em full-speed os pacotes podem conter

até 1023 bytes e em high-speed até 1MB.

20

2.5.2 Enumeração

Ainda de acordo com IBRAHIM (2008), enumeração é o processo de

configuração inicial do dispositivo conectado à porta USB do Host, na qual este

“aprende” sobre o dispositivo, utilizando o tipo de transferência control. A partir deste

momento, o sistema operacional carregará o driver correspondente à sua função

dentro de uma classe de dispositivo.

2.5.3 Classes de dispositivos

Existem diversas classes aprovadas pelo Fórum de Implementadores do

barramento USB (USB-IF) como interface de áudio, comunicação (CDC), interface

humana (HID), armazenamento em massa, impressora, Smart card, entre outros.

Apenas para comparação, será explanado sobre o Human Interface Device (HID) e o

Communication Device Class (CDC), este último atenderá as necessidades do

presente trabalho.

HID

Os dispositivos de interface humana (HID) são os periféricos que fazem a

interface com o usuário, como teclados, dispositivos apontadores (tablete e

mouse, por exemplo), controladores de jogos, leitores de código de barras,

etc. A grande vantagem desta classe é a inclusão dos respectivos drivers

por diversos sistemas operacionais nas quais reconhecem tais dispositivos

e já os disponibilizam para uso, sem a necessidade de configurações ou

drivers adicionais.

CDC

A classe de dispositivos de comunicações (CDC) engloba diversos

equipamentos com funções de telecomunicações e de redes, como

telefones e modems, terminais ISDN e ADSL, adaptadores Ethernet, hubs

e porta de comunicação virtual (VCP). Tipicamente necessitam de drivers

específicos pelo sistema operacional, muitas vezes já incluída em sua base

de drivers.

21

2.6 SERIAL PERIPHERAL INTERFACE BUS (SPI)

Esta interface é um padrão de comunicação serial síncrona e opera de

modo full duplex, ou seja, envia e recebe dados ao mesmo tempo. Para tanto,

deverá existir um elemento Master e um ou mais elementos Slaves (figura 13): O

Master será responsável pela frequência, polaridade e fase do clock (modos de

operação), na qual a comunicação será realizada. Este comandará os dispositivos

Slaves, conectados ao barramento, que responderão aos comandos recebidos, mas

apenas um Slave poderá ser acionado por vez, segundo MICROCHIP (2009).

Baseia-se em quatro linhas de conexão:

MOSI – Master Output, Slave Input

MISO – Master Input, Slave Output

SCLK – Serial Clock

SS – Slave Select

Comumente, tais linhas também podem ser representadas como:

DO/SDO/SO – Data Out/Serial Data Out/Serial Out

DI/SDI/SI – Data In/Serial Data In/Serial In

CLK/SCK – Clock/Serial Clock

CS/CE/STE – Chip Select/Chip Enable/Slave Transmit Enable

FIGURA 13 - VÁRIOS DISPOSITIVOS SLAVES NO BARRAMENTO SPI FONTE: IBRAHIN (2008, PÁG. 375)

22

O Master será o host, normalmente um microcontrolador, e determinará a

velocidade de comunicação do barramento, cujo valor máximo pode chegar até 70

Mbps (12 Mbps no caso do PIC18F4550). Já o Slave pode ser um microcontrolador

(figura 14), memória EEPROM, memória Flash, sensores diversos, conversores A/D,

LCD's, entre outros, que responderão aos comandos enviados pelo Master.

Fisicamente, a conexão entre o Master e o Slave é, usualmente, no mesmo circuito

(PCI), diferente no que pode acontecer em uma comunicação RS-232 ou RS-485,

onde distâncias de interligações podem chegar a mais de 1 km, no caso deste

último.

FIGURA 14 - CONEXÃO SPI MASTER/SLAVE FONTE: MICROCHIP (2009, PÁG. 201)

2.6.1 Modos de operação

Existem quatro modos de operação na comunicação SPI: modo 0, modo 1,

modo 2 e modo 3, representados na figura 15. Cada modo diferencia-se pela

polaridade e fase do pulso como se segue, conforme BONFIM (2011):

Modo 0:

CPOL/CKP = 0 (valor de referência do clock é “0”)

CPHA/CKE = 0 (dado lido na subida e propagado na descida do

clock)

Modo 1:

CPOL/CKP = 0 (valor de referência do clock é “0”)

CPHA/CKE = 1 (dado lido na descida e propagado na subida do

clock)

23

Modo 2:

CPOL/CKP = 1 (valor de referência do clock é “1”)

CPHA/CKE = 0 (dado lido na subida e propagado na descida do

clock)

Modo 3:

CPOL/CKP = 1 (valor de referência do clock é “1”)

CPHA/CKE = 1 (dado lido na descida e propagado na subida do

clock)

O tamanho dos dados enviados pode ser de 8, 12 e 16 bits. A comunicação

é iniciada quando o Master ativa o referido Slave pela linha SS, sinaliza em sua linha

SCLK, envia comandos pela linha MOSI e ao receber um comando válido, o Slave

responde pela linha MISO, em Full-duplex, sendo o MSb o primeiro bit enviado e o

LSb o último.

FIGURA 15 - FORMAS DE ONDAS DOS MODOS SPI (MODO MASTER) FONTE: MICROCHIP (2009, PÁG. 203)

2.7 CARTÕES DE MEMÓRIA SD/MMC

Os cartões de memória SD e MMC são unidades de armazenamento digital

do tipo flash que possuem um controlador integrado cuja função é gerenciar o

acesso à referida memória. Encontram-se disponíveis nas capacidades de 4 MB a

24

64 GB1 e em três tamanhos: padrão, mini e micro (figura 16). A velocidade de

comunicação varia entre 2 MB/s a 312 MB/s2. A tensão de alimentação pode variar

entre 2,7V a 3,6V e comunicam-se ao Host (unidade que utilizará o cartão) de modo

serial utilizando protocolos proprietários (normalmente uma linha de clock, uma de

comando e quatro para dados) e são compatíveis também com o protocolo SPI

(IBRAHIN, 2010).

FIGURA 16 - SD, MINI SD E MICRO SD FONTE: IBRAHIN (2010, PÁG. 114)

Os cartões MMC eram comuns quando os cartões de memória foram

inseridos no mercado, mas atualmente caíram em desuso pelas grandes indústrias

de eletrônicos que adotaram o padrão SD. O padrão MMC foi desenvolvido pela

MultiMediaCard Association (MMCA), mas que passou todos seus direitos para

JEDEC Solid State Technology disponibilizando em seu site3 o acesso a

documentações de suas tecnologias de forma gratuita através de registro.

1 Versão para os cartões de extra capacidade, o SDXC. Maiores informações em: <http://www.sdcard.org/developers/tech/sdhc/>. Acesso em: 25/5/2011.

2 Disponíveis para os cartões SDHC UHS e SDXC UHS. Maiores informações em: < http://www.sdcard.org/developers/tech/speed_class/>. Acesso em 25/5/2011.

3 <http://www.jedec.org/standards-documents>;

25

Já os cartões SD, baseados nos MMC's, são mais comuns de serem

encontrados no mercado atualmente, devido à grande aceitação do dispositivo por

oferecerem mais tecnologia em comparação com os MMC's, como proteção contra

gravação, criptografia dos dados gravados e CRC (verificação cíclica de

redundância), além de serem compatíveis com o MMC (figura 17). Diversos

equipamentos fazem uso do mesmo, como celulares, câmeras digitais, filmadoras,

tocadores de mídia, entre outros, inclusive em aplicações militares e hospitalares. O

padrão de utilização destes cartões é definido pela SD Association, que exige um

contrato de licença para o uso comercial de sua tecnologia.

FIGURA 17 - COMPATIBILIDADE ELÉTRICA ENTRE SD E MMC FONTE: CHAN (2008)

2.7.1 Registradores internos do cartão SD

FIGURA 18 - ARQUITETURA DO CARTÃO SD

FONTE: SANDISK (2000)

26

Internamente, o cartão SD possui um controlador integrado o qual possui

registradores que contem informações das especificações do dispositivo. A

arquitetura interna do cartão SD está representada na figura 18.

Os registradores disponíveis pelo controlador do cartão SD, são

apresentados no quadro 4.

Registrador Tamanho (bits) Descrição

OCR 32 Condição da operação

CID 128 Informação do cartão

CSD 128 Informação específica do cartão

RCA 16 Endereço relativo do cartão

DSR 16 Registrador de estágio do driver

SCR 64 Recursos especiais

Status 512 Bits de status

QUADRO 4 - REGISTRADORES DO CARTÃO SD FONTE: IBRAHIM (2010)

Cada registrador será resumidamente1 descrito a seguir:

OCR: Descreve o intervalo da tensão de operação e o status da alimentação;

CID: Contém informações de identificação específica sobre o fabricante do cartão;

CSD: Contém informações necessárias para acessar os dados no cartão;

RCA: Contém o endereço do cartão no modo SD;

DSR: Não é implementado na maioria dos cartões;

SCR: Fornece informações dos recursos especiais do cartão, como estrutura do

número da versão, especificação da camada física, o algoritmo de segurança

utilizada e o comprimento do barramento;

Status: Define o status e recursos do cartão.

O registrador mais importante é o CSD2, que contém os dados necessários

para o controle do cartão, como acesso às funções do mesmo.

2.7.2 Operação no modo SPI

Para o interfaceamento com o MCU selecionado, utilizaremos o cartão SD

no protocolo SPI, modo 0, a 3 Mbps, facilitando o uso do cartão SD ao custo da

redução da velocidade máxima. O buffer é de 8 bits para o caso do PIC18F4550 e

1 As descrições detalhadas podem ser encontradas em IBRAHIN (2010).

2 Mais detalhes em IBRAHIM (2010).

27

do cartão SD no modo SPI. Os comandos aceitos neste modo estão descritos no

quadro 5.

Comando Argumento Resp. Dado Abreviação Descrição

CMD0 Nenhum (0) R1 Não GO_IDLE_STATE Software reset.

CMD1 Nenhum (0) R1 Não SEND_OP_COND Inicia processo de inicialização.

CMD9 Nenhum (0) R1 Sim SEND_CSD Lê registrador CSD.

CMD10 Nenhum (0) R1 Sim SEND_CID Lê registrador CID.

CMD12 Nenhum (0) R1b Não STOP_TRANSMISSION Para de ler dados.

CMD16 Comprimento do bloco [31:0]

R1 Não SET_BLOCKLEN Muda tamanho do bloco de L/E (R/W).

CMD17 Endereço [31:0] R1 Sim READ_SINGLE_BLOCK Lê um bloco.

CMD18 Endereço [31:0] R1 Sim READ_MULTIPLE_BLOCK Lê múltiplos blocos.

CMD24 Endereço [31:0] R1 Sim WRITE_BLOCK Escreve um bloco.

CMD25 Endereço [31:0] R1 Sim WRITE_MULTIPLE_BLOCK

Escreve múltiplos blocos.

CMD58 Nenhum (0) R3 Não READ_OCR Lê OCR.

QUADRO 5 - COMANDOS COMPATÍVEIS DO CARTÃO SD NO MODO SPI FONTE: CHAN (2010)

QUADRO 6 - FORMATO DO COMANDO NO MODO SPI FONTE: IBRAHIN (2010, PÁG. 133)

Toda instrução deve estar no formato de 6 bytes apresentado no quadro 6,

cujas formas de ondas das sinalizações nas linhas do SPI, na qual cada quadro

corresponde a 1 byte, estão representadas na figura 19. Ao final de cada comando

do Host, uma resposta é enviada pelo Slave: R1, R2 ou R3 (figura 20).

R1: tem o comprimento de 1 byte e é enviado pelo cartão para todos

os comandos, exceto para o comando SEND_STATUS (IBRAHIN,

2010), e indica o tipo de erro, quando houver;

R1b: semelhante ao R1 mais o sinal de ocupado (busy);

R2: tem o comprimento de 2 bytes e responde ao comando

SEND_STATUS;

R3: tem 5 bytes de comprimento e responde ao comando

READ_OCR, contendo o primeiro byte no formato R1 e o restante os

dados do registrador OCR.

28

FIGURA 19 - COMANDO E RESPOSTA DO SD NO MODO SPI FONTE: CHAN (2010)

FIGURA 20 - FORMATO DE RESPOSTA R1 E R3 FONTE: CHAN (2010)

2.7.2.1 Inicialização

Ao alimentar o cartão SD, este inicia no modo nativo SD e ao menos 74

pulsos de clock com CS e DO em nível lógico “1”. Este estará configurado no modo

SPI quando a linha CS estiver em nível lógico baixo e o comando CMD0 for enviado

ao cartão pelo Host. Uma vez no modo SPI o cartão somente poderá voltar ao modo

SD quando desligado e ligado novamente. Neste modo o recurso de criptografia de

dados não está disponível e o CRC é opcional, porém somente no comando CMD0,

se torna obrigatório incluir o valor correspondente CRC da instrução no respectivo

campo. Resumidamente, para inicializarmos o cartão SD no modo SPI dever-se

executar as seguintes etapas (fluxograma completo no Anexo B):

1. Alimentar o cartão SD no intervalo de 2,7V a 3,6 V;

2. Configurar o Host para uma frequência entre 10 kHz a 400 kHz;

3. Enviar ao menos 74 pulsos de Clock com CS e DO em “1”;

4. CS em “0”;

5. Enviar o comando CMD0 (“40h 00h 00h 00h 00h 95h”);

6. Verificar a resposta R1 se houve erros;

7. Enviar repetidamente o comando CMD1 até que o bit 0 da resposta R1

seja “0” e não houve erros; e

8. Frequência do Host de até 25 MHz e o cartão SD estará inicializado no

modo SPI.

29

2.7.2.2 Transferência de dados

Os dados são transferidos pelo barramento através de pacotes constituídos

de Tokens, bloco de dados e CRC (figura 21) após uma resposta a um comando

válido de leitura ou escrita. Neste trabalho, utilizaram-se blocos de dados de 512 kB,

tamanho encontrado normalmente nos cartões SD de até 2 GB. Cada acesso pode

executar leituras ou gravações por blocos ou múltiplos de blocos.

FIGURA 21 - FORMATO DO PACOTE DE DADOS FONTE: CHAN (2010)

Leitura

Para leitura dos dados contidos no cartão, devem ser enviados os

comandos CMD17 para leitura por unidade de bloco com o endereço como

argumento e CMD18 para leitura de múltiplos blocos em sequência com o

endereço inicial como argumento, e ao final do último bloco de interesse,

enviar o comando CMD12, onde o byte posterior a este deverá ser

descartado.

Escrita

A escrita acontece após um comando CMD24 com o endereço no campo

argumento com sua respectiva resposta, a partir da qual o Host deverá

aguardar um espaço equivalente a 1 byte em pulsos de clock e, em

seguida, enviar o pacote de dados. Ao final deste pacote, aguardar a

resposta do cartão de confirmação. Para a escrita de múltiplos blocos, o

comando CMD25 deverá ser enviado com o endereço como argumento e

aguardar um espaço de um byte após a resposta do cartão e, em seguida,

enviar os pacotes de dados com o Stop Tran ao final da escrita.

30

2.8 AMBIENTE DE DESIGN DE CIRCUITOS E SIMULAÇÃO

A Suite de Design Proteus1, desenvolvida pela Labcenter Electronics, é uma

valiosa ferramenta para a criação de projetos eletrônicos e possui dois principais

aplicativos:

ISIS (Intelligent Schematic Input System) – ambiente de

desenvolvimento do esquemático e de simulação (VSM – Virtual

System Modelling) baseado no proSpice, possuindo uma ampla gama

de modelos esquemáticos e de simulação de componentes

eletrônicos analógicos e digitais, tanto para lógicas TTL e CMOS,

incluindo suporte a MCU’s como os das famílias 8051, ARM, PIC,

além de virtualizar porta USB e oferecer diversos instrumentos como

osciloscópio, gerador de sinais, analisadores IIC, SPI, USB, entre

outros; e

ARES (Advanced Routing & Editing Software) – baseia-se na lista de

nós projetadas no esquemático para desenho da placa de circuito

impresso (PCI), com auto roteamento, verificação de conflitos,

renderização 3D, entre outros recursos, além de exportar a PCI para

o formato Gerber, amplamente utilizado por indústrias na confecção

automatizada de PCI's.

A importância deste software quando se desenvolve aplicações utilizando

MCUs, principalmente os da família PIC, está na possibilidade de simulação do

projeto com a intenção de encontrar erros de programação, evitando a gravação

desnecessária do MCU físico. Outro ponto favorável é a disponibilidade de

instrumentos virtuais, os quais apenas laboratórios de maior porte possuem

fisicamente.

1 Versão de demonstração pode ser encontrada em: < http://www.labcenter.com/download/ prodemo_download.cfm#professional>. Acesso em 17/4/2011.

31

3 PROJETO

3.1 HARDWARE

A definição dos componentes para atender aos requisitos do projeto deverá

obedecer às necessidades apresentadas no diagrama de blocos da figura 22:

FIGURA 22 - DIAGRAMA EM BLOCOS DO PROJETO PROPOSTO

A partir do diagrama proposto, os componentes serão definidos por etapas

conforme a seguir.

3.1.1 ADC e armazenamento na memória

Conforme já definido no texto, o MCU escolhido é o PIC18F4550, utilizando

o ADC do mesmo para a aquisição do sinal com armazenamento temporário na

memória SRAM interna quando no modo de exibição em display gráfico e no modo

de armazenamento em cartão SD/MC. No modo USB, as aquisições são enviadas

ao término de cada amostragem. São utilizadas duas portas para leitura do sinal:

AN0 e AN1 (pinos RA0 e RA1, respectivamente).

32

3.1.2 Display gráfico

O display gráfico utilizado é o apresentado no item 2.4 , alimentado a 5 V

(VCC). Deve-se atentar quanto à conexão do potenciômetro (10 kΩ a 20 kΩ) de

regulagem do contraste: um terminal deve ser ligado ao pino 18 (-Vout – regulador

de tensão interno que gera 5 V negativos), outro no pino 2 (VCC) e o terminal de

ajuste no pino 3 (V0). Para diminuir o consumo de energia, o backlight foi mantido

desligado.

3.1.3 Armazenamento em cartão SD/MMC

O cartão utilizado no projeto é um cartão SD da marca SanDisk, no formato

microSD com um adaptador para o tamanho padrão SD, com capacidade de 1 GB,

inserido em um conector SD de 9 vias com pino de detecção da trava contra

gravação. Sua alimentação será derivada da tensão principal do circuito VCC de 5 V

com um LED vermelho que quando polarizado diretamente, têm uma queda de

tensão típica entre 1,6 V a 2,2 V, resultando em uma tensão de alimentação do SD

de 2,8 V a 3,4 V.

Como o MCU está alimentado por VCC, devem-se converter as sinalizações

de saída das linhas de comunicação SPI do MCU para as compatíveis com as do

cartão SD/MMC. Para tanto, o recurso utilizado é baseado em divisores de tensão

nas linhas MOSI, SCLK e CS, com resistores de 1,2 kΩ ligados ao MCU e cartão

SD/MMC, e 3,3 kΩ ligados ao cartão e GND, resultando em tensões de 3,15 V em

cada linha quando em nível lógico “1”, que para o MCU é equivalente a 4,3 V,

conforme MICROCHIP (2009, pág.380). Este resultado é suficiente para produzir um

nível lógico alto de acordo com as especificações do cartão SD/MMC, cujo valor

mínimo é de 2,0625 V quando alimentado em 3,3 V. Para a linha MISO não há

necessidade de conversão, de acordo com IBRAHIN (2008, pág. 387), a tensão

mínima produzida pelo cartão SD/MMC para nível lógico alto é de 2,475 V, suficiente

para excitar a entrada Schmitt-Trigger do MCU.

33

3.1.4 USB

O conector utilizado no projeto é um receptáculo do tipo-B de 4 pinos. O

pino 1, referente à tensão do barramento USB (5 V), é utilizado para detectar a

inserção do conector USB induzindo a execução para o modo USB. Para que as

linhas de dados estejam dentro das especificações do barramento, conforme

recomendado em MICROCHIP (2009, pág. 170), ao ativar o regulador interno de

3,3V referentes aos resistores de pull-ups para atender aos requisitos low-speed ou

full-speed, este último selecionado nas configurações, um capacitor de 220 nF é

necessário para estabilidade.

3.1.5 Consumo

O cálculo teórico de consumo resulta em um valor estimado para especificar

o tipo de bateria necessária para atender às condições de uso típico esperado do

equipamento. Baseado nas configurações e uso dos recursos do MCU pode-se

calcular o consumo médio do dispositivo, considerando VDD = 5 V, temperatura

ambiente a 25 oC e FOSC = 48 MHz. O quadro 7 relaciona os modos de operação do

MCU, o tempo de execução do mesmo e a corrente consumida durante o processo.

Modo Tempo no modo

(mS)1

Corrente (mA)2

Tempo de carga * corrente (mA.S)

MCU Run 346 25 8,65

ADC On 1,8 0,002 3,6E-6

SPI On 4,3 4*3 5,16E-2

GLCD (14 E/S) 98 14*3 4,116

Total 4503 12,8176036

QUADRO 7 - RELAÇÃO DE CONSUMO POR RECUROS DO MCU

Para os modos de exibição em display e armazenamento em cartão, temos

um consumo médio de (considerando apenas para o MCU):

1 O tempo foi calculado a partir da simulação do circuito executando o código baseado em breakpoints inseridos no ISIS.

2 Corrente de consumo típicos extraídos das especificações DC em MICROCHIP (2009).

3 Tempo de execução total para um ciclo do loop principal do código.

34

EQ. (5)

Modo Tempo no modo

(mS)1

Corrente (mA)2

Tempo de carga * corrente (mA.S)

GLCD 450 18 8,1

LM7805 450 1 0,45

Total 4503 8,55

QUADRO 8 - RELAÇÃO DE CONSUMO PARA GLCD E LM7805,

Resolvendo para o consumo do GLCD e do regulador de tensão LM7805,

temos

EQ. (6)

Somando as equações eq. (5) e eq. (6), resulta em 0,0475 mA de consumo

médio com picos de 42 mA.

3.1.5.1 Bateria

A bateria deve ter uma tensão entre 7,5 V e 20 V para que o regulador de

tensão LM7805 (NATIONAL, 2003) tenha em sua saída 5 V. Desta forma, um tipo de

bateria que forneça uma tensão dentro desta faixa e que seja de dimensões e

massa compatíveis com o objetivo do projeto, é a bateria alcalina de 9 V -6LR61

(figura 23). Tipicamente este componente possui capacidade de 550 mAh, portanto

a autonomia para o equipamento apresentado será de:

EQ. (7)

A eq. (7) equivale a dizer que a autonomia média será de,

aproximadamente, 1 ano e 4 meses.

1 O tempo foi calculado a partir da simulação do circuito executando o código baseado em breakpoints inseridos no ISIS.

2 Baseado nos valores obtidos a partir das folhas de dados dos respectivos componentes.

3 Tempo de execução total para um ciclo do loop principal do código.

35

FIGURA 23 - BATERIA ALCALINA 9 V - 6LR61

3.1.6 Esquema elétrico, relação de componentes e preços

O esquema elétrico foi desenhado através do software ISIS, o qual contém

todos os periféricos e conectores utilizados no projeto. Além disso, foi possível

também a simulação do conjunto antes da montagem propriamente dita do protótipo.

No anexo C encontra-se o esquemático do circuito completo.

Uma das preocupações deste trabalho é o custo final total do equipamento

para que seja uma alternativa viável ao público a que se destina. O quadro 9

relaciona a lista de componentes e seus respectivos preços para o varejo.

Logicamente, quando comprado em lotes os preços tendem a ser significantemente

menores dos apresentados aqui.

Item Descrição Quantidade Preço un. Preço total

1 MCU PIC18F4550 1 20,54 20,54

2 GLCD WG12864A 1 65,00 65,00

3 Regulador de tensão LM7805 1 1,26 1,26

4 Conector SD 1 6,68 6,68

5 Receptáculo USB tipo-B 1 3,28 3,28

6 OSC Crystal 20MHZ 1 1,99 1,99

7 LED vermelho 1 0,32 0,32

8 Capacitor cerâmico 22 pF 2 0,43 0,86

9 Capacitor cerâmico 220 nF 1 0,43 0,43

10 Capacitor cerâmico 1 µF 2 0,43 0,86

11 Capacitor eletrolítico 1 µF 1 0,88 0,88

12 Capacitor eletrolítico 4,7 µF 1 0,88 0,88

13 Resistor 5% 1/2W 150 Ω 1 0,01 0,01

14 Resistor 5% 1/2W 1,2 kΩ 3 0,01 0,03

continua

36

conclusão

Item Descrição Quantidade Preço un. Preço total

15 Resistor 5% 1/2W 3,3 kΩ 3 0,01 0,03

16 Resistor 5% 1/2W 10 kΩ 4 0,01 0,04

17 Potenciômetro/Trimmer 10 kΩ 1 3,82 3,82

18 Diodos 1N4148 2 0,05 0,10

19 Chave táctil 4 0,33 1,32

20 Barra de 20 pinos 180 graus 1 1,00 1,00

21 Mini “modu” PCI 20 pinos 1 1,50 1,50

22 Conector J2 PCI 2 0,95 1,90

23 Caixa plástica 85 mm x 100 mm x 3 mm 1 3,93 3,93

24 Conector para bateria 9 V 1 1,02 1,02

25 Bateria alcalina 9 V 1 9,99 9,99

26 Cartão SD 1 GB 1 14,99 14,99

27 Cabo flat 10 vias (m) 2 1,50 3,00

Total 52 145,66

QUADRO 9 - LISTA DE COMPONENTES1

3.2 PROTÓTIPO

As figuras figura 24 e figura 25 mostram o desenho da placa de circuito

impresso (em escala) do projeto, feito através do programa ARES do respectivo

ambiente de design de circuitos e simulação. As figuras Figura 26 e Figura 27

apresentam o circuito montado e dentro da caixa plástica.

FIGURA 24 - PCI - LADO DA SOLDA

1 Baseado em cotações realizadas em 4/5/2011 nas lojas Farnell Newark (on-line) e Beta Comercial Eletrônica (loja física no Centro de Curitiba/PR), exceto GLCD (RCL Componentes Eletrônicos). Não foi considerado o custo do frete. Valores em Reais (R$).

37

FIGURA 25 - PCI - LADO DOS COMPONENTES

FIGURA 26 - CIRCUITO MONTADO

FIGURA 27 - PROTÓTIPO MONTADO

38

3.3 FIRMWARE

O desenvolvimento do firmware deve ser baseado nas funções em que o

dispositivo se propõe a executar. Em seguida, é necessário verificar especificações

de cada periférico utilizado para a correta configuração do mesmo. No presente

desenvolvimento, serão utilizados os seguintes recursos do MCU: ADC, SPI e USB.

Para permitir uma maior fluidez na execução do código, a frequência máxima de

operação permitida pelo PIC18F4550 será utilizada (FOSC = 48 MHz), na qual os

periféricos mencionados se baseiam.

O ADC será configurado para a resolução de 8 bits (conforme justificado no

item 2.3.2 ) com um TAD = FOSC/64 e tensões de referências mínima de 0 V (GND) e

máxima de 5 V (VDD). O barramento SPI será configurado como Master para o modo

0, com frequência de FOSC/4. O modo USB será configurado para full-speed a 48

MHz, utilizando o regulador de tensão interno de 3,3 V (VUSB). Trechos do código

referente à configuração do MCU são apresentados a seguir:

#include <18f4550.h>

#fuses PLL5,CPUDIV1,USBDIV,HSPLL,VREGEN,NOWDT,NOMCLR,NOPBADEN

#device ADC=8

#use DELAY(clock=48M)

.

.

. setup_timer_0(T0_INTERNAL|T0_OFF);

setup_spi(SPI_MASTER|SPI_SS_DISABLED|SPI_H_TO_L|SPI_CLK_DIV_4|SPI_XMIT_L_

TO_H);

setup_comparator(NC_NC_NC_NC);

setup_adc(ADC_CLOCK_DIV_64);

setup_adc_ports(AN0_TO_AN1|VSS_VDD);

enable_interrupts(PERIPH);

enable_interrupts(INT_EXT2);

enable_interrupts(INT_USB);

enable_interrupts(GLOBAL);

As funções propostas para o funcionamento do equipamento seguem o

fluxograma apresentado na figura 28.

39

FIGURA 28 - FLUXOGRAMA DO FIRMWARE

3.3.1 Funções

As funções que o osciloscópio executará como conversão A/D (figura 29),

modo trigger, cálculos de máximo, mínimo e média RMS (figura 30), cálculo da

frequência e escalonamento tempo por divisão de 0,5 mS, 5 mS e 50 mS (figura 31),

modo de um canal e dois canais simultâneos, modo de armazenamento em cartão

SD (datalogger) e modo USB (figura 32), foram desenvolvidas de modo que

coubesse na memória de programas e de dados do MCU escolhido (32 kB e 2 kB

respectivamente). A figura 33 mostra o percentual de memória de programas e de

dados utilizado pelo firmware, ao término de sua compilação (valores próximos à

capacidade máxima do MCU).

40

FIGURA 29 - FLUXOGRAMA DA CONVERSÃO A/D

FIGURA 30 - FLUXOGRAMA DO PROCESSAMENTO DO SINAL

41

FIGURA 31 - FLUXOGRAMA DO CÁLCULO DA FREQUÊNCIA

FIGURA 32 - FLUXOGRAMA DO MODO USB

FIGURA 33 - RESULTADO DA COMPILAÇÃO

42

Para o funcionamento correto das funções utilizadas, algumas bibliotecas

devem ser incluídas na compilação do código. O quadro 10 apresenta as bibliotecas

disponíveis na IDE PCWHD utilizadas no projeto.

Biblioteca Descrição

18F4550.h Definições do MCU utilizado

stdlib.h Biblioteca de uso geral

math.h Funções matemáticas

usb_common.h Definições USB

usb_cdc.h Funções da classe de comunicações

HDM64GS12.c1 Biblioteca do GLCD

GRAPHICS.c2 Funções de uso do GLCD

mmcsd.c3 Biblioteca do SD/MMC

QUADRO 10 - BIBLIOTECAS UTILIZADAS

A figura 34 mostra os percentuais dos recursos utilizados por cada código

fonte, sendo um indicador para o desenvolvedor durante a otimização do firmware.

Observe que além da função principal main.c, as bibliotecas para USB e SD/MMC

são as que mais consomem recursos do MCU.

1 Modificado as temporizações de leitura/escrita no modo de utilização da memória RAM do GLCD.

2 Inserido tipo de fontes menores (3x5) para melhor utilização da área do GLCD. Disponível em <http://mckoss.com/jscript/tinyalice.htm>. Acesso em: 10/5/2011.

3 Inserido 74 pulsos no começo da função de inicialização do cartão e removido o comando de desabilitar a função CRC (após a inicialização em modo SPI, este já se encontra desabilitado).

43

FIGURA 34 - UTILIZAÇÃO DE RECURSOS POR BIBLIOTECAS

3.4 SIMULAÇÃO

Para realização dos testes do circuito projetado, utilizou-se novamente o

software ISIS, utilizando seus instrumentos virtuais de simulação como um terminal

virtual (para “debugação” do código), dois geradores de funções e um osciloscópio.

A figura 35 apresenta o ambiente de simulação do respectivo software.

44

FIGURA 35 - SIMULAÇÃO DO OSCILOSCÓPIO DIGITAL PORTÁTIL

Outra grande vantagem deste programa é a possibilidade de simular a

comunicação USB através de uma porta USB virtual instalada por este ambiente de

trabalho, a partir da qual se podem verificar todos os endpoints transferidos entre o

computador e o MCU, facilitando a compreensão dos conteúdos dos dados

trafegados em um barramento USB.

Para a comunicação SPI, o ISIS oferece um “debugador” capaz de analisar

todos os comandos emitidos pelo MCU. Desta forma tornam-se inteligível, de certa

forma, as instruções enviadas para o cartão SD/MMC, possibilitando a verificação de

erros. A figura 36 apresenta as janelas dos respectivos debugadores, estando o

projeto em execução, transferindo dados pela USB e gravando no cartão SD/MMC.

45

FIGURA 36 – DEBUGGER PARA USB E SPI

46

4 RESULTADOS

Os resultados apresentados são baseados nas simulações feitas no

software ISIS, devido à disponibilidade de instrumentos que serviram de

comparação. Para teste das funções oferecidas, foi utilizado um gerador de sinais, o

qual foi ajustado de acordo com os recursos testados. O menu de opções do

equipamento desenvolvido está apresentado na figura 37.

FIGURA 37 - MENU DE OPÇÕES DO OSCILOSCÓPIO DESENVOLVIDO

O osciloscópio possui dois canais de entrada para sinais. A figura 38

apresenta o uso do segundo canal e o uso simultâneo de ambos. Quando neste

ultimo modo, os sinais são alternadamente amostrados e, consequentemente, a taxa

de amostragem é reduzida, pois as entradas são multiplexadas pelo MCU para cada

mudança de porta.

FIGURA 38 - USO DO SEGUNDO CANAL E DE AMBOS SIMULTANEAMENTE

Outro recurso testado foi o modo trigger para a borda de descida (figura 39)

e para a borda de subida (figura 40).

47

FIGURA 39 - RECURSO TRIGGER PARA BORDA DE DESCIDA

Foi especificado inicialmente, para este protótipo, que o sinal deverá ter

amplitudes de no máximo 2,5 V em modo AC (5 V pico a pico) ou de 5 V em modo

DC. Cada divisão vertical equivale a 1 V. Em três testes, ajustou-se o gerador de

funções para um sinal senoidal com amplitude de 5 V pico a pico em três

frequências distintas: 10 Hz, 100 Hz e 1 kHz. Para cada faixa de frequência, foi

configurado a escala temporal para 50 mS, 5 mS e 0,5 mS, respectivamente. Os

resultados estão representados na figura 40 (observe a diferença em relação à

escala temporal indicada no canto inferior direito do GLCD).

FIGURA 40 - TESTE DO RECURSO TIME/DIV DE 50 MS, 5 MS E 0,5 MS

Quando no modo AC, a tensão de referência é 2,5 V e para o modo DC a

tensão de referência é conectada ao VSS (GND), sendo esta a única configuração

para alteração da escala vertical. Um resultado utilizando o modo DC está

apresentado na figura 41, para um sinal senoidal com amplitude de 4 V.

48

FIGURA 41 - MODO DC

Na figura 42 observa-se uma amostragem para um sinal com amplitude de

12 V pico a pico, resultando no corte nos picos do sinal medido.

FIGURA 42 – SINAL COM AMPLITUDE DE 12 V PICO A PICO

Para testar a máxima frequência especificada de aquisição, foi ajustado um

sinal senoidal com frequência de 5,5 kHz com 5 V pico a pico. Como são

armazenadas 100 amostras por ciclo do laço principal do código, a tela foi divida em

5 divisões horizontais, resultando em 20 pontos por cada divisão. Pode-se observar

na figura 43 que, no intervalo de uma divisão, há dois ciclos completos da senóide

amostrada. Portanto, conforme caracterizado durante o texto, 10 amostras foram

realizadas para cada ciclo do sinal lido.

49

FIGURA 43 - FREQUÊNCIA MÁXIMA DE AMOSTRAGEM

De acordo com cada divisão por tempo, foram testados sinais variando-se a

frequência e os resultados estão mostrados nas figuras figura 44, figura 45 e figura

46 (observe a escala temporal indicada no canto inferior direito de cada figura).

FIGURA 44 - TEMPO/DIV 50 MS - SINAIS DE 4 HZ A 40 HZ

FIGURA 45 - TEMPO/DIV 5 MS - SINAIS DE 40 HZ A 400 HZ

50

FIGURA 46 - TEMPO/DIV 0,5 MS - SINAIS DE 400 HZ A 4 KHZ

Ao conectar o cabo USB ao computador, neste será criado uma porta virtual

serial, e as amostras começarão a ser enviadas por esta porta. A figura 47 mostra o

modo USB em funcionamento com um terminal da porta serial.

FIGURA 47 - MODO USB

Quando ativado o modo “LOG MODE”, as amostras lidas começam a ser

gravadas no cartão SD/MMC sem sistema de arquivos, ou seja, somente será

possível a leitura dos dados gravados via modo USB ao enviar o caractere “R” via

terminal serial, como mostra a figura 48.

51

FIGURA 48 - ENVIANDO OS DADOS DO CARTÃO SD/MMC ATRAVÉS DO USB

4.1 DIFICULDADES

Durante o desenvolvimento do código, percebeu-se que algumas funções

das bibliotecas disponíveis no software PCWHD utilizavam uma quantidade maior de

memória SRAM, que quando compiladas isoladamente, não apresentavam

problemas, mas quando as funções começaram a ser compiladas em conjunto, o

compilador acusava erro por falta de memória de dados e/ou de programas também.

Um exemplo está na biblioteca de controle do GLCD, que para aumentar

consideravelmente a taxa de atualização do display, armazenava os dados de tela

inteira na memória SRAM do MCU como buffer para serem enviados de uma única

vez ao GLCD. Este buffer ocupava 1 kB de SRAM, ou seja, 50% da memória de

dados do dispositivo. Para contornar este problema, foi necessário alteração do

52

código da referida biblioteca para utilização da memória RAM do GLCD ao custo de

uma taxa de atualização menor, mas que não interfere no funcionamento do mesmo.

Outra dificuldade encontrada foi na tentativa de utilização do sistema de

arquivos FAT, baseado na biblioteca FAT.c da IDE utilizada: o compilador acusou

falta de memória de programas durante a compilação.

53

5 CONCLUSÃO

De acordo com os resultados obtidos, conclui-se que o equipamento

desenvolvido atende às especificações projetadas, com funções básicas de um

osciloscópio digital com recursos adicionais como comunicação via USB e

armazenamento em cartão SD/MMC. Em relação à taxa de amostragem teórica

calculada no item 2.3.4 , foi constado nas simulações de que a frequência máxima

que o dispositivo é capaz de amostrar dentro do que foi especificado está de acordo

com o calculado. Em comparação a outros equipamentos que executam as mesmas

funções, o uso do cartão SD/MMC para armazenamento é um diferencial deste

trabalho, somado ao uso do GLCD para exibição em tempo real do sinal analisado.

O recurso de comunicação USB também foi um objetivo alcançado de modo

satisfatório, possibilitando o processamento do sinal pelo microprocessador

computador.

5.1 RECOMENDAÇÕES PARA TRABALHOS FUTUROS

No decorrer do projeto, algumas funções desejadas inicialmente não

puderam ser implementadas, devido às restrições apresentadas pelo MCU. Outras

por não haver tempo hábil para conclui-las. Estão listados a seguir os itens quem

podem ser aprimorados e adicionados:

Condicionamento do sinal;

Otimização do código;

Utilização de um sistema de arquivos no uso do cartão SD/MMC,

como FAT;

MCU dedicado a processamento de sinais, por exemplo, dsPIC, o

qual é capaz de executar funções matemáticas mais eficientemente,

podendo ser implementado FFT, além de seu ADC possuir maior taxa

de amostragem;

GLCD de maior resolução para maior detalhamento do sinal

quantizado;

Desenvolvimento de um software para PC capaz de ler os dados via

USB;

54

REFERÊNCIAS

AXELSON, J. L., 2009 – USB Complete: Everything You Need to Develop USB Peripherals. 4th ed. Madison, WI: Lakeview Research.

BONFIM, Márlio J. C. – Interfaces Seriais. Notas de aula (Disciplina Instrumentação Eletrônica). Curso de Engenharia Elétrica, Setor de Tecnologia, Universidade Federal do Paraná. Disponível em: < http://www.eletr.ufpr.br/marlio/te149/ aula15.pdf>. Acesso em 20/5/2011.

CHAN, 2010 – How to Use MMC/SDC. Disponível em: <http://elm-chan.org/docs/ mmc/mmc_e.html>. Acesso em: 4/4/2011.

IBRAHIN, Dogan, 2008 – Advanced PIC Microcontroller Projects in C. Burlington, MA: Newnes.

IBRAHIN, Dogan, 2010 – SD Card Projects Using The Pic Microcontroller. Burlington, MA: Newnes.

JEDEC – MultiMediaCard Electrical Standard, Standard Capacity. Disponível em: <http://www.jedec.org/sites/default/files/docs/JESD84-B41.pdf>. Acesso em 25/4/2011.

MICROCHIP, 2009 – PIC18F2455/2550/4455/4550 Folha de dados. Disponível em: <http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf>. Acesso em: 31/3/2011.

NATIONAL – LM340/LM78XX Series 3-Terminal Positive Regulators. Folha de dados. 2003. Disponível em: < www.national.com/ds/LM/LM340.pdf>. Acesso em: 3/4/2011.

RIBEIRO, E. P., 2000 – Processamento Digital de Sinais. Notas de aula (Disciplina Processamento Digital de Sinais). Curso de Engenharia Elétrica, Setor de Tecnologia, Universidade Federal do Paraná. Disponível em: <http://www.eletrica.ufpr.br/edu/pds_/slides/>. Acesso em 15/5/2011.

SANDISK, 2000 – MultiMediaCard Product Manual. Folha de dados. Disponível em: <http://www.compsys1.com/support/docs/sandisk.pdf>. Acesso em: 15/4/2011.

TEKTRONIX – XZYs of Oscilloscopes. Disponível em: <http://www2.tek.com/ cmsreplive/tirep/2280/03W-8605-5%20low%20res_2011.01.18.17.21.26_2280_EN. pdf>. Acesso em: 21/4/2011.

USB – USB 2.0 Specifications. Disponível em: < http://www.usb.org/developers/ docs/usb_20_021411.zip>. Acesso em: 15/4/2011.

WINSTAR, 2006 – Display Gráfico WG12864A. Folha de dados. Disponível em: <http://www.winstar.com.tw/products_detail_ov.php?lang=pt&ProID=48>. Acesso em: 31/3/2011.

55

ANEXO A – ESPECIFICAÇÕES GLCD WINSTAR WG12864A

56

ANEXO B – FLUXOGRAMA DE INICIALIZAÇÃO SD/MMC

FONTE: CHAN (2010)

57

ANEXO C – ESQUEMA ELÉTRICO DO OSCILOSCÓPIO DIGITAL PORTÁTIL