OSCILOSCÓPIO DIGITAL PORTÁTIL DE BAIXO CUSTO · 2012-08-02 · interface with PC via USB....
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).
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.
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.