Universidade do Vale do Paraíba Faculdade de Engenharias

Propaganda
Universidade do Vale do Paraíba
Faculdade de Engenharias Urbanismo e Arquitetura
Curso de Engenharia Elétrica/Eletrônica
GIGA DE TESTES PARA RIB
Teste dos circuitos Óptico e Ethernet
GUILHERME CERON BENTO
Relatório do Trabalho de Conclusão de Curso
apresentado à Banca Avaliadora da Faculdade de
Engenharias Urbanismo e Arquitetura da
Universidade do Vale do Paraíba, como parte dos
requisitos para obtenção do Título de Bacharel em
Engenharia Elétrica/Eletrônica.
São José dos Campos – SP
Novembro 2014
GIGA DE TESTES PARA RIB
GUILHERME CERON BENTO
Banca Avaliadora
Presidente
Orientador Alessandro Corrêa Mendes
Membro A
Membro B
______________________________________
Alessandro Corrêa Mendes
Orientador Acadêmico
______________________________________
José Ricardo Abalde Guedes
Coordenador da Disciplina de TCC
Data:
Agradecimentos
Agradeço primeiramente a Deus, Senhor da
minha vida, que me fez a vocação para empregar e
desenvolver pelo estudo e pelo trabalho os dons
Dele recebidos. A Maria, minha Mãe, que me deu
paciência e sabedoria para nunca recuar perante o
cansaço e as dificuldades. A esta universidade, sеu
corpo docente, direção е administração quе
oportunizaram а janela pela qual hoje vislumbro
um horizonte superior. Aos meus pais e à minha
noiva, pelo amor, incentivo е apoio incondicional.
Meus agradecimentos também аоs amigos Fábio e
Marcos, companheiros dе trabalhos, sem os quais
este projeto não teria acontecido. A todos que
passaram pela minha vida acadêmica nestes cinco
anos, “muito obrigado!”.
Resumo
Foi desenvolvido um projeto de uma estação de teste para uma placa específica
da empresa Ericsson Telecomunicações S.A. de São José dos Campos, tendo o nome
técnico RIB (Placa de Interface de Rádio, do inglês “Radio Interface Board”). A RIB é
uma placa interna de uma RRU (Unidade de Rádio Remoto, do inglês “Remote Radio
Unit”) e tem como função realizar a interface de sinais analógicos e digitais entre a
RRU e a BTS (Estação Base de Transmissão, do inglês “Base Transceiver Station”). A
placa possui como principais conexões a Ethernet, transceptores ópticos, sinais de
alarmes externo e conectores usados somente em instalações e manutenções da RRU,
assim, através do microcontrolador da família MSP430 (Texas Instruments)
desenvolveu-se uma estação em que são testados funcionalmente os sinais de
comunicações e alarmes externos, e tendo como principais objetivos, abranger todos os
tipos de simulações possíveis semelhantes ao seu funcionamento em campo e ao mesmo
tempo minimizar o custo do projeto com soluções simples, porém eficaz. Neste projeto
serão abordados os testes nos circuitos Óptico e Ethernet da RIB.
Palavras-chave: Microcontrolador; MSP430; Ethernet; RIB; Fibra-óptica.
Abstract
Develops a design of a test station for a specific board of the company Ericsson
Telecommunications SA of São José dos Campos, the technical name is RIB (Radio
Interface Board). The RIB is an internal board of RRU (Remote Radio Unit) and has the
function to interface of analogue and digital signals between the RRU and BTS (Base
Transceiver Station). The board has as main connections to Ethernet, optical
transceivers, external alarm signals and connectors used only in installation and
maintenance of RRU, thus by the MSP430 microcontroller family (Texas Instruments)
developed a station where are functionally tested signals communications and external
alarms, and having as main objectives reach all similar functions like field operation
while minimizing possible simulations project cost with simple but effective solutions.
In this project will be covered the test in the RIB’s optical circuit and RIB’s Ethernet
circuit.
Keywords: Microcontroller; MSP430; Ethernet; RIB; Fiber-optics.
Sumário
BANCA AVALIADORA ............................................................................................... II
AGRADECIMENTOS ................................................................................................ III
RESUMO ....................................................................................................................... IV
ABSTRACT .................................................................................................................... V
ÍNDICE DE FIGURAS .............................................................................................VIII
ÍNDICE DE TABELAS ................................................................................................ IX
LISTA DE ABREVIAÇÕES......................................................................................... X
INTRODUÇÃO ............................................................................................................. 11
1.1 ANTECEDENTES .................................................................................................. 11
1.2 DESCRIÇÃO DO PROBLEMA ........................................................................... 12
1.3 OBJETIVO .............................................................................................................. 13
1.4 RESTRIÇÕES......................................................................................................... 13
1.5 ORGANIZAÇÃO O TRABALHO........................................................................ 13
EMBASAMENTO TEÓRICO .................................................................................... 14
2.1 CONHECIMENTOS BÁSICOS SOBRE A RIB ................................................. 14
2.2 CONCEITOS BÁSICOS ........................................................................................ 15
2.2.1 MSP-EXP430F5529LP ...................................................................................... 15
2.2.2 Redes .................................................................................................................. 16
2.2.3 Ethernet .............................................................................................................. 17
2.3 METODOLOGIA ................................................................................................... 21
DESENVOLVIMENTO ............................................................................................... 24
3.1 MATERIAIS ........................................................................................................... 24
3.1.1 Circuito Principal ............................................................................................... 24
3.1.2 Circuito Óptico ................................................................................................... 26
3.1.3 Circuito Ethernet ................................................................................................ 27
3.2 PROJETO DETALHADO ..................................................................................... 27
3.3 PROGRAMAÇÃO.................................................................................................. 32
3.4 FLUXOGRAMA ..................................................................................................... 33
RESULTADOS ............................................................................................................. 37
4.1.1 Teste Funcional .................................................................................................. 37
CONCLUSÕES ............................................................................................................. 42
REFERÊNCIAS BIBLIOGRÁFICAS ........................................................................ 43
ANEXO 1 – ESQUEMA ELÉTRICO......................................................................... 44
ANEXO 2 – CÓDIGO MAIN ...................................................................................... 50
Índice de Figuras
Figura 1 – Desenho simplificado dos conectores da RIB ............................................... 14
Figura 2 - MSP-EXP430F5529LP LaunchPad ............................................................... 16
Figura 3 - Rede com Ethernet em uma arquitetura de barramento ................................. 18
Figura 4 - Comparação entre codificação binária e Codificação Manchester ................ 19
Figura 5 - Quadro Ethernet ............................................................................................. 20
Figura 6 – Diagrama esquemático da Giga de Teste da placa RIB ................................ 22
Figura 7 – Bloco Principal .............................................................................................. 29
Figura 8 - Bloco Óptico .................................................................................................. 30
Figura 9 - Bloco RS485 / Ethernet.................................................................................. 31
Figura 10 - PCB Circuito RS485/Ethernet (TOP) .......................................................... 39
Figura 11 - PCB Circuito RS485/Ethernet (BOT) .......................................................... 39
Figura 12 – Giga de Testes ............................................................................................. 40
Figura 13 - Redução do tempo de produção por lote ...................................................... 41
Figura 14 - Ganho em tempo .......................................................................................... 41
Índice de Tabelas
Tabela 1 - Estudo dos principais defeitos possíveis na RIB ........................................... 28
Tabela 2 - Resultados dos testes no circuito Ethernet ..... Erro! Indicador não definido.
Tabela 3 - Resultados dos testes no circuito Óptico ....................................................... 38
Lista de Abreviações
RIB
Radio Interface Board
RRUS
Remote Radio Unity
RBS
Radio Base Station
BTS
Base Transmission Station
HW
Hardware
LED
Light Emitting Diode
NC
Not connected
OVP
Over Voltage Protection
PCB
Printed Circuit Board
RET
Remote Electrical Tilt
SFP
Small Form Pluggable transceiver
XALM
External Alarm
CI
Circuito integrado
AC
Corrente Alternada
DC
Corrente Contínua
MAC
Media Access Control
LLC
Logic Link Control
CSMA/CD
Carrier Sense Multiple Access with Collision Detection
Capítulo 1
Introdução
1.1 Antecedentes
A RIB (Placa de Interface de Rádio, do inglês “Radio Interface Board”),
produzida atualmente na empresa Ericsson, é uma placa interna essencial das RRUS
(Unidades de Rádio Remoto, do inglês “Remote Radio Unity”), que, por sua vez, tem a
função de ampliar o alcance da RBS (Estação Rádio-Base, o inglês “Radio Base
Station”) em dezenas de quilômetros.
A RIB é um dos dispositivos que procuram solucionar a problemática do
crescente aumento de demanda de banda larga e tráfego de redes móveis. Segundo
Umehara e Villas-Bôas:
O tráfego de dados móveis atualmente já ultrapassou o de voz e
continua crescendo segundo as tendências globais. Em regiões como Oriente
Médio, África e América Latina o tráfego de banda larga móvel tem quase
que dobrado a cada ano e a projeção para os próximos anos indica um
crescimento exponencial [3]. A Ericsson prevê um aumento de dez vezes no
tráfego de dados até 2019 em relação aos dados de 2013, resultado de vários
fatores, como o crescimento global em dispositivos sem fio em redes, o
aumento no uso de “smartphones”, e a implantação de redes mais rápidas que
os padrões atuais 2G e 3G em todo o mundo [4].
Os serviços de 4G / LTE e 5G prometem a solução para o aumento
da demanda com a ampliação da largura de banda, o que de fato, é muito
importante, no entanto cada vez mais no meio técnico-científico tem crescido
também outra escola de pensamento que sugere como solução uma melhoria
na eficiência das redes e defende o uso de um modelo híbrido (redes
heterogêneas ou “Het Nets”), geralmente composto de várias tecnologias de
acesso de rádio, diferentes arquiteturas, soluções de transmissão e estações
rádio-base com vários níveis de potência de transmissão. As redes
heterogêneas fazem o “offload” da rede e favorecem a cobertura “indoor”,
pois funcionam com uma cobertura de pequenas células (“small cells”)
subjacente à cobertura de células macro e com a integração de tecnologia
Wi-Fi [5].
Para que se compreenda melhor o problema da ineficiência da rede
convém citar o exemplo recente quando na abertura da Copa do Mundo, na
partida
entre
Brasil
e
Croácia,
segundo
a
SindiTelebrasil
(SINDITELEBRASIL, 2014), a tecnologia 3G teve picos de tráfego e
11
congestionamentos momentâneos devido a grande concentração de usuários
conectados num mesmo lugar [8]. E vale ressaltar que na arena de São Paulo,
a cobertura “indoor” contava com 337 antenas interligadas por 12
quilômetros de fibras ópticas e a área externa do estádio ainda foi reforçada
com mais 22 antenas móveis.
Para os sistemas públicos, especialmente ao ar livre e se a rede
macro existente é demasiado escassa para atender a demanda de tráfego e a
cobertura adequada, a implantação de nós de baixa potência ao ar livre é o
mais adequado, pois podem oferecer cobertura a uma vasta área com vários
edifícios e abranger vários locais fechados (“indoor”).
Existem vários tipos de nós de baixa potência, cada um com
exigências diferentes do “backhaul” (infraestrutura de conexão dos pontos de
concentração da rede de acesso com o núcleo de alta capacidade de
transmissão da rede, também conhecido como “backbone”). Para redes onde
o “backhaul” tem características de baixa latência e alta capacidade, a
implantação de RRUS é a abordagem mais praticada. (UMEHARA e
VILLAS-BÔAS, 2014) [6]
A RIB possui conectores utilizados na instalação e manutenção da RRU e tem
como principal função realizar a interface de sinais analógicos e digitais entre a RRU e
a BTS (Estação Base de Transmissão, do inglês “Base Transceiver Station”).
1.2 Descrição do problema
É indispensável que haja planos de amostragem e procedimentos para inspeção
por atributos dos lotes de RIBs devido à sua complexidade e à sua importância na RRU.
O teste de inspeção deve ser o mais simples possível para ser aplicado na linha de
produção; nesse teste a unidade de produto (uma placa amostral) seja classificada como
defeituosa ou não em relação a um dado requisito ou conjunto de requisitos.
Atualmente a inspeção de um lote na linha de produção da Ericsson é feita com a
montagem completa de uma RRU, e em seguida são feitos vários ensaios das principais
funções do dispositivo para verificar se a RIB não apresenta falhas.
Apesar de eficaz, este processo ocasiona minutos de linha parada enquanto se
espera o resultado do teste, e consequentemente, diminui a produtividade na linha.
Umehara e Villas-Bôas desenvolveram o projeto da Giga de Teste que não
possui concorrentes no mercado e também apresentou eficácia nos resultados [6]. Em
12
seu projeto foram estudados e testados alguns circuitos da RIB, mas ainda faltou o
circuito óptico e de Ethernet.
1.3 Objetivo
Projetar uma melhoria na estação de teste (Giga de Teste) sem comprometer o
baixo custo para simular e testar as funções dos circuitos Óptico e Ethernet da RIB.
Automatizar o processo de inspeção na linha de produção da RIB, apresentando
ao usuário o resultado do teste de maneira mais simples.
Obter resultados do teste de inspeção mais rapidamente para diminuir o tempo
de linha parada, aumentar a produtividade e reduzir o custo de fabricação da RIB.
1.4 Restrições
Este trabalho irá se dedicar somente ao estudo dos circuitos Óptico e Ethernet da
RIB, não se aprofundando nos testes de outros blocos da placa tais como os que já
foram apresentados por Umehara e Villas-Bôas [6].
Como já foi esclarecido, este projeto tem como finalidade a redução de custo no
processo de fabricação da RIB, portanto a principal restrição para este trabalho é que o
custo da Giga de Teste não prejudique sua viabilidade para a empresa.
Sob autorização das gerências da empresa, os estudos puderam ser realizados
nas dependências da Ericsson, algumas placas RIB puderam ser utilizadas para os testes
e a Giga de Teste pôde ser retirada da empresa para a apresentação deste trabalho.
Contudo, por motivo de sigilo empresarial, a empresa Ericsson não forneceu as
especificações (“datasheets”) da RIB, normas de processo, os documentos e
equipamentos envolvidos em seu processo de fabricação.
1.5 Organização o Trabalho
O capítulo 2 apresenta o embasamento teórico do funcionamento da RIB e da
Giga de Teste e os principais conceitos utilizados na solução do problema. O capítulo 3
apresenta os materiais e a metodologia utilizada no processo de teste dos circuitos
Óptico e Ethernet da RIB no projeto da Giga de Teste. O capítulo 4 apresenta os
resultados obtidos e faz uma discussão usando-se dos conhecimentos adquiridos. O
último capítulo traz as conclusões gerais sobre o projeto e apresenta as proposições para
novos estudos e futuros desafios.
13
Capítulo 2
Embasamento Teórico
2.1 Conhecimentos básicos sobre a RIB
A RIB tem como principal função realizar a interface de sinais analógicos e
digitais na instalação e manutenção da RRU, por isso trabalha com diferentes tipos de
sinais e níveis de tensão simultaneamente e possui vários conectores, que estão listados
a seguir e são mostrados na Figura 1:

RJ-45 (8 pinos)

RET (6 pinos)

XALM (4 pinos)

Conector de teste (24 pinos)

SFP A (20 pinos)

SFP B (20 pinos)

Conector RIB (80 pinos)
Figura 1 – Desenho simplificado dos conectores da RIB
14
Para facilitar o seu estudo podemos dividir a RIB em quatro circuitos, de acordo
com os sinais e conectores envolvidos: circuito de sinal digital RS485, circuito de
comunicação no padrão Ethernet, circuito de comunicação óptica e circuito de sinal
analógico RET VCC.
O procedimento de inspeção da RIB na linha de produção deve testar cada um
destes quatro circuitos e o requisito para que a amostra e, assim também, o lote sejam
classificados como não defeituosos é que todos os quatro circuitos não apresentem
falha, ou seja, se um ou mais destes circuitos apresentar mau funcionamento, o lote deve
ser classificado como defeituoso e não pode ser liberado para a próxima fase.
Como já foi mencionado na introdução, este trabalho irá se dedicar somente ao
estudo de como serão testados na Giga de Teste os circuitos Óptico e Ethernet da RIB.
Este processo envolve como componentes principais dois microcontroladores da família
MSP430 (Texas Instruments), um CI que faz a medição indireta da corrente do circuito
mensurando o efeito hall e um módulo conversor de sinal digital RS232 / RS485.
2.2 Conceitos Básicos
2.2.1 MSP-EXP430F5529LP
O MSP-EXP430F5529LP LaunchPad ou simplesmente “F5529 LaunchPad”
ilustrado na Figura 2, é um kit de desenvolvimento para o microcontrolador USB
MSP430F5529 que oferece emulação “on-board” para programação e “debug” e dispõe
de LEDs para simplificar a interface com o usuário.
O microcontrolador 16-bit MSP430F5529 tem 128KB de memória “flash”, 8KB
RAM e velocidade de processamento de 25MHz, USB integrado e a possibilidade de
trabalhar com diversos periféricos, a critério do usuário. Sua tensão de operação é de
1,8V a 3,6V.
15
Figura 2 - MSP-EXP430F5529LP LaunchPad
Seus principais recursos são:

Cinco “timers”

Sistema de “clock” até 25MHz

Possibilidade de trabalhar com até quatro interfaces de comunicação
serial (SPI, UART, I²C).

Conversor analógico-digital (AD) de 12 bits

Entradas analógicas e digitais com função de “pull up” e ”pull down”
internos.
2.2.2 Redes
Uma rede, em sua definição mais genérica, é um conjunto de dispositivos
interligados para enviar e receber dados. O uso das redes atualmente se tornou tão
comum que muitas vezes não são nem notadas; a comunicação entre um monitor e o
controle remoto, por exemplo, por mais simples que seja, consiste numa rede. Sem o
uso das redes é impossível para um dispositivo fazer compartilhamento de recursos,
16
enviar e receber informações de outros equipamentos, trabalhar com telecomunicação
ou acessar internet, por exemplo. A Internet é o maior exemplo de rede de
computadores, com milhões de máquinas interconectadas ao redor do mundo, por outro
lado as pequenas redes LAN desempenham um papel também importante no acesso
diário de informações [7].
As tecnologias de rede podem ser divididas em dois grupos básicos:

Rede local, na qual as tecnologias LAN (Local Area Network) conectam
muitos dispositivos que estão relativamente próximos, geralmente num ambiente
fechado, ou no mesmo prédio.

Rede de longa distância, na qual as tecnologias WAN (Wide Area
Network) conectam dispositivos que podem estar separados por milhares de
quilômetros.
Em comparação às WANs, as LANs são mais rápidas e confiáveis. A tecnologia,
porém, se desenvolve rapidamente, e as diferenças entre WAN e LAN estão cada vez
menores. Os cabos de fibra ótica permitem uma conexão de alta taxa de transferência
entre dispositivos separados por quilômetros de distância. Esses cabos também
melhoram a velocidade e a confiabilidade das redes WAN.
Com o desenvolvimento das redes cada vez mais foi se tornando necessário que
houvesse padronização dos meios de conexão, dos parâmetros elétricos dos sinais, dos
tipos de conectores e cabeamento, das estruturas de dados a serem enviados, etc. Aos
poucos as grandes organizações foram criando as normas, que depois se ajuntavam e
formavam protocolos.
2.2.3 Ethernet
A Ethernet é uma arquitetura de interconexão baseada na norma IEEE 802.3 que
define padrões de transmissão de dados e interconexões para redes locais (LAN) [2]. A
tecnologia surgiu em 1972 com uma largura de banda de 10Mbps e foi desenvolvido
pela Xerox, DEC (Digital Equipment) e Intel para arquiteturas tipo barramento, na qual
todos os dispositivos da rede estão conectados ao barramento principal, por onde
trafegam todos os pacotes de dados, conforme Figura 3.
Desde a década de 90 a Ethernet vem sendo a tecnologia de LAN mais
amplamente utilizada e tem tomado grande parte do espaço de outros padrões de rede
como Token Ring, FDDI e ARCNET. Inicialmente limitava-se a pequenas redes com
17
algumas centenas de metros e arquitetura de barramento, mas, com os avanços da
tecnologia, atualmente a Ethernet é capaz de oferecer cobertura para dezenas de
quilômetros e velocidades de 10/100/1000 Mbit/s (Fast Ethernet e Gigabit Ethernet),
com possibilidade de chegar até 10Gbit/s (10 Gigabit Ethernet), e utiliza uma topologia
em estrela, na qual cada nó (dispositivo) está conectado ao outro através de
equipamentos ativos de rede, tais como switches e roteadores [1].
Figura 3 - Rede com Ethernet em uma arquitetura de barramento
Esta tecnologia abrange uma série de padrões e, basicamente, consiste de três
elementos:

LLC (Controle do Link Lógico, do inglês “Logic Link Control”):
conforme IEEE 802.2, inclui informações do protocolo de alto nível que
entregou o pacote de dados a ser transmitido. Possibilita que a máquina
receptora saiba para qual protocolo de alto nível ela deve entregar os
dados de um quadro que ela acabou de receber.

MAC (Controle de Acesso ao Meio, do inglês “Media Access Control”):
conforme IEEE 802.3, monta o quadro de dados a ser transmitido pela
camada física, incluindo cabeçalhos próprios dessa camada aos dados
recebidos da camada de LLC.

Física: Transmite os quadros entregues pela camada de MAC usando o
método CSMA/CD CSMA/CD (do inglês “Carrier Sense Multiple
Access with Collision Detection”). Define como os dados são
transmitidos através do cabeamento da rede e também o formato dos
conectores usados na placa de rede.
18
Uma característica importante do Ethernet é o modo de transmissão, que está na
subcamada MAC e pode ser de dois tipos:

Half-duplex: cada estação transmite ou recebe informações, sem transmissão
simultânea;

Full-duplex: cada estação transmite e/ou recebe, podendo ocorrer transmissões
simultâneas.
2.2.3.1 Codificação
As redes que funcionam com padrões semelhantes a Ethernet não usam uma
codificação direta, ou seja, com 0V (zero volt) para representar um bit 0 (nível lógico
baixo) e 5V (cinco volts) para representar um bit 1 (nível lógico alto), pois esta
codificação pode gerar ambiguidade: se uma estação enviar uma palavra “00010000”,
outras poderão interpretá-la erroneamente como “10000”, pois não conseguem discernir
entre uma estação inativa e um bit 0, porque ambas estão em 0V.
Esse problema poderia ser resolvido usando-se, por exemplo, +1V para
representar um bit 1 e −1V para representar um bit 0. Mesmo assim, o receptor pode ter
problemas para delinear o início e fim de cada bit.
A solução para estes problemas veio com o uso da Codificação Manchester
mostrada na Figura 4, em que os valores (alto e baixo) para o padrão 802.3
correspondem a +0,85V e −0,85V.
Figura 4 - Comparação entre codificação binária e Codificação Manchester
19
2.2.3.2 Endereçamento
O endereçamento da rede é feito através de uma numeração única de 6 bytes
para cada “host” conhecida como “endereço MAC”. Os primeiros três bytes são o
endereço OUI (“Organizationally Unique Identifier”) que serve para a identificação do
fabricante e os três bytes seguintes são controlados por cada fabricante de placa de rede,
normalmente usados para numeração sequencial.
O endereço MAC é representado em números hexadecimais. Cada algarismo em
hexadecimal equivale a um número de quatro bits. Dessa forma, um byte é representado
por dois algarismos em hexadecimal e, com isso, o endereço MAC é sempre
representado por um conjunto de 12 algarismos em hexadecimal.
O endereço MAC é um controle universal, pois o fabricante que quiser produzir
uma placa de rede deve se cadastrar no IEEE para ganhar o seu número OUI e cada
fabricante é responsável por controlar a numeração MAC das placas de rede que
produz.
2.2.3.3 Quadro Ethernet
O quadro ethernet é dividido em campos. Os principais campos podem ser
descritos como na Figura 5.
Figura 5 - Quadro Ethernet
20

Preâmbulo: com 7 bytes que informa às estações receptoras que um frame está
começando;

SFD (“Start Frame Delimeter”) ou SOF (“Start-Of-Frame”): campo de 1 byte
denominado delimitador de início de frame. Este byte termina com 2 bits “1”
(10101011) consecutivos que servem para sincronizar a parte de recepção de
frame de todas as estações da LAN.

Endereço de Destino: campo de 6 bytes que contém o endereço MAC do
dispositivo de destino;

Endereço de Origem: campo de 6 bytes que contém o endereço MAC do
dispositivo que enviou o pacote;

Tamanho: campo de 2 bytes que indica o tamanho (em bytes) do campo de
dados;

Dados: contém os dados a ser passados para a próxima camada; deve ter
tamanho mínimo de 46 bytes e máximo de 1500 bytes. No caso da IEEE 802.3,
o protocolo deve ser definido dentro do campo de dado. Se o dado no frame for
insuficiente para preencher o mínimo de 64bytes (somados do endereço de
destino até o campo FCS), são inseridos bytes de preenchimento para garantir o
número mínimo de bytes.

FCS – Frame Check Sequence: Este campo de 4 bytes contém contém o valor de
CRC (Verificação de Redundância Cíclica, do inglês “Cyclic Redundancy
Check”). O CRC é criado pelo dispositivo transmissor e recalculado pelo
dispositivo receptor para verificar a integridade dos.
É importante observar que o endereço de origem (ou fonte) é sempre um
endereço “unicast” (nó único), enquanto o endereço de destino pode ser “unicast”,
“multicast” (a um grupo) ou “broadcast” (a todos).
2.3 Metodologia
Antes de iniciar o procedimento de inspeção da RIB com a Giga de Teste, o
operador liga a fonte alimentação (5V) para energizar os microcontroladores da estação
e encaixa a RIB que será testada.
21
Figura 6 – Diagrama esquemático da Giga de Teste da placa RIB
A Figura 6 apresenta o diagrama de blocos da Giga de Teste. Para dar início ao
teste pressiona-se o botão START. O microcontrolador chaveia o circuito do regulador
de tensão LM317 que energiza a RIB com 5V. Se houver curto-circuito o próprio
LM317, que possui proteção de sobrecorrente, abre o circuito instantaneamente.
Inicialmente, há o teste de corrente e dos circuitos DCDC e RS-485.
Logo em seguida inicia-se o teste do circuito Óptico da RIB. O MSP_B mede os
níveis de tensão aplicados pela RIB e pela Giga de Teste sobre os conectores A e B do
circuito óptico através dos pinos de entrada analógica P6.6 e P6.5, respectivamente.
Cada pino destes está ligado a um multiplexador, que por sua vez comuta o sinal de
treze pinos que vem de um dos conectores ópticos, ou seja, P6.6 e P6.5 verificam um
total de 26 pinos da RIB. O nível de tensão medido em cada pino é comparado ao
padrão de uma placa não defeituosa (placa “Master”). Caso haja alguma divergência nos
valores, o teste é encerrado e o LED “FAIL” é aceso. Se o teste não apresentar falhas,
conclui-se que o circuito Óptico não possui defeitos e passa-se para a próxima etapa de
teste.
22
O último teste realizado é o do padrão Ethernet. O MSP_A envia uma letra para
a placa RIB, passando pelo conector no padrão Ethernet, a Giga de teste provoca um
“backloop” e a RIB devolve instantaneamente o dado recebido para o microcontrolador.
Quando o MSP recebe o dado ele faz a verificação. Caso haja alguma divergência com
o dado recebido, ou se o tempo de espera tiver estourado, o teste é encerrado e o LED
“FAIL” é aceso. Se o dado foi enviado e voltou corretamente, termina-se o teste e
conclui-se que o circuito Ethernet não possui defeitos.
Ao final do teste, depois de todas as etapas, se em momento algum a amostra
não apresentar defeito, o LED “PASS” é aceso e o usuário pode remover a RIB da Giga
de Teste.
O botão RESET permite que o usuário reinicie um teste a qualquer instante.
23
Capítulo 3
Desenvolvimento
3.1 Materiais
O custo total deste projeto foi de R$440,00; no qual se incluem o custo dos
módulos e fretes dos componentes comprados no exterior e também o custo de
R$230,00 dos blocos para teste dos circuitos DCDC e RS485 conforme o projeto de
Umehara e Villas-Bôas [6].
3.1.1 Circuito Principal
O circuito principal já estava montado na Giga de Teste, no entanto é
conveniente citar mais uma vez os seus componentes principais e suas atualizações:
Peça
C2
C3
C4
C5
DCDC
Valor
100nF
100nF
100nF
100nF
10PIN
DRIVER
S
IC2
10 PIN
4052N
Ecapsulamento
C0402K
C0402K
C0402K
C0402K
PAK100/250010
-2510 PAK100/250010
4052N
DIL16
IC3
4052N
4052N
DIL16
JP1
ETH_LOOP_
0
ETH_LOOP_
1
UART_MSP
430
CTRL_LED1
CTRL_LED2
JP1E
JP1
Dual 4-channel ANALOG
MULTIPLEXER
Dual 4-channel ANALOG
MULTIPLEXER
JUMPER
JP1E
JP1
JUMPER
JP2Q
JP2Q
JUMPER
JP1E
JP1E
SSW-102-02S-D
SSW-102-02S-D
LEDCHIPLED_
0805
LEDCHIPLED_
0805
JP1
JP1
SSW-102-02-S-D
CHIPLED_0805
JUMPER
JUMPER
THROUGH-HOLE .025" SQ POST
SOCKET
THROUGH-HOLE .025" SQ POST
SOCKET
LED
CHIPLED_0805
LED
JP2
JP3
JP4
JP5
JP8
JP9
LED1
LED2
UART_CTRL
1
UART_CTRL
2
Dispositivo
C-EUC0402K
C-EUC0402K
C-EUC0402K
C-EUC0402K
-2510
SSW-102-02-S-D
Descrição
CAPACITOR, European symbol
CAPACITOR, European symbol
CAPACITOR, European symbol
CAPACITOR, European symbol
3M (TM) Pak 100 4-Wall Header
3M (TM) Pak 100 4-Wall Header
24
OPTCO
_A
OPTCO
_B
PAINEL
R1
R4
R6
R7
R8
R11
R12
R13
R14
R15
R16
R17
R18
R19
R20
R21
R22
R37
R39
R40
R41
R53
R54
R55
R56
R57
R58
R59
R60
R61
U2
20 PIN
20 PIN
-2510
33
33
2k2
2k2
33
1k
33
33
33
33
33
33
33
33
33
33
33
1K
2K2
1K
2K2
1K
2K2
1K
2K2
47K
470
470
470
470
MSP430
U4
MSP430
X200
QSE-040-02
-2520 PAK100/25003M (TM) Pak 100 4-Wall Header
20
-2520 PAK100/25003M (TM) Pak 100 4-Wall Header
20
-2510 PAK100/25003M (TM) Pak 100 4-Wall Header
10
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
R-US_R0402
R0402
RESISTOR, American symbol
MSPMSP-EXP430F5529LP
EXP430F5529
LP
MSPMSP-EXP430F5529LP
EXP430F5529
LP
QSE-040-02
QSE-040-02
0,80mm HI-SPEED SOCKET QSE
Serie
25
3.1.2 Circuito Óptico
Part
IC1
IC4
OPTCO_A
OPTCO_B
OPTICO_A
OPTICO_B
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R29
R30
R31
R32
R33
R34
R35
R36
R38
R42
Value
MPC506AP
MPC506AP
20 PIN
20 PIN
PIN 14
PIN 14
4,7K
4,7K
4,7K
4,7K
4,7K
4,7K
4,7K
4,7K
1K
1K
4,7K
4,7K
4,7K
4,7K
4,7K
4,7K
4,7K
4,7K
1K
1K
Device
MPC506AP
MPC506AP
-2520
-2520
-2514
-2514
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
R-US_R0402
Package
DIL28
DIL28
PAK100/2500-20
PAK100/2500-20
PAK100/2500-14
PAK100/2500-14
R0402
R0402
R0402
R0402
R0402
R0402
R0402
R0402
R0402
R0402
R0402
R0402
R0402
R0402
R0402
R0402
R0402
R0402
R0402
R0402
Description
CMOS Analog Multiplexers
CMOS Analog Multiplexers
3M (TM) Pak 100 4-Wall Header
3M (TM) Pak 100 4-Wall Header
3M (TM) Pak 100 4-Wall Header
3M (TM) Pak 100 4-Wall Header
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
RESISTOR, American symbol
26
3.1.3 Circuito Ethernet
Peça
Valor
C1
C2
C3
C4
C5
DRIVERS
100nF
100nF
1uF
1uF
100nF
10 PIN
IC5
MAX3232C
SE
DB9
MODULE
RS485
OPT1
OPT2
Dispositivo
Ecapsulam
ento
C-EUC0402K
C0402K
C-EUC0402K
C0402K
C-EUC0603K
C0603K
C-EUC0603K
C0603K
C-EUC0402K
C0402K
-2510 PAK100/25
00-10
MAX3232CSE
SO16
Descrição
F09HP
F09HP
CAPACITOR, European symbol
CAPACITOR, European symbol
CAPACITOR, European symbol
CAPACITOR, European symbol
CAPACITOR, European symbol
3M (TM) Pak 100 4-Wall
Header
True RS-232 Transceivers 3.0V
to 5.5V, Low-Power
SUB-D
FODM121
SFH6186-2
SMD4
FODM121
SFH6186-2
SMD4
R1
220 R-US_R0402
R2
220 R-US_R0402
RET_CABLE
DB9
F09HP
RS232
CON1
53047-03
RS232_RX/TX
JP2Q
RS232/ETHE
RNET
UART_ETHERNET
JP2Q
XALARM_CA F15
F15HDH
BLE
R0402
R0402
F09HP
53047-03
JP2Q
JP2Q
HDF15H
Optocoupler, Phototransistor
Output, Low Input Current
Optocoupler, Phototransistor
Output, Low Input Current
RESISTOR, American symbol
RESISTOR, American symbol
SUB-D
CONNECTOR
JUMPER
MODULE_RS232/ETHERNET
MODULE_ETHERNET
JUMPER
SUB-D
3.2 Projeto Detalhado
Para que se elaborem os procedimentos de inspeção de um produto, devem-se
conhecer antes de qualquer coisa os padrões de qualidade do produto a ser testado e os
principais defeitos que podem resultar num produto não conforme. Para isso estudou-se
os parâmetros de uma placa não defeituosa – comumente chamada na empresa de placa
“Master” – para que sirvam de referência.
Outro ponto importante a se observar quando se projeta uma estação de teste é
que a Giga de Teste deve ser capaz de “perceber” cada um dos defeitos, ainda que não
seja capaz de isolá-los, mas precisa garantir que a amostra, quando aprovada no teste, de
fato não possui nenhum defeito.
A seguir, na Tabela 1, o estudo de Umehara e Villas-Bôas sobre o assunto [6]:
27
Tabela 1 - Estudo dos principais defeitos possíveis na RIB
Causa
Componentes
com orientação /
polaridade
invertida
Efeito
Sintoma
Teste
O componente com orientação / polaridade invertida
irá se danificar e há pequena
possibilidade de danificar
outros componentes ligados
diretamente a ele.
Perda de sinal.
O bloco do circuito
onde o componente
estiver não funcionará corretamente. O
sinal “morre” nele.
Medição dos sinais de
entrada
e
saída
do
componente, em seguida
verificação
visual
da
serigrafia do componente.
Sinais ligados aos
terminais do componente faltando apresentarão variação nos
níveis de tensão ou
serão nulos.
O bloco do circuito
onde o componente
estiver não funcionará corretamente e
pode haver curtocircuito.
Apenas realizar inspeção
visual.
Aparecimento
de
ruídos no circuito
envolvido.
Identificar a região do
circuito que apresenta falha
através do multímetro e em
seguida com auxilio de um
microscópico realizar uma
inspeção
visual
até
identificar o problema na
solda.
Comparar os sinais de
entrada
e
saída
do
componente e comparar os
valores com valores de
uma placa de referência
(placa Master).
Componentes
Faltando
Ponte de Solda
(“Solde bridge”)
Outros problemas
relacionados à
solda (Solda fria,
insuficiência, etc)
Falha funcional
do componente
Em terminais de sinais
digitais, poderá danificar o
próprio componente com a
ponte de solda e em caso de
ponte de solda entre VCC e
GND a placa entrará em
curto-circuito, danificando o
circuito da fonte.
O circuito pode apresentar
“mau-contato” e intermitência.
O circuito relacionado ao
componente
defeituoso
apresentará mau funcionamento ou não funcionará.
Sinais de entrada no
componente estarão
funcionando perfeitamente, porém não
haverá sinal de saída.
Identificar o circuito com
falha com um ohmímetro e
realizar a inspeção visual
com um microscópio.
Os autores mencionados estudaram as causas e efeitos dos diversos defeitos em
lotes não liberados na empresa Ericsson para poder listar todos as falhas possíveis na
RIB, seus sintomas, ou seja, os principais indícios de que o defeito está presente e quais
os tipos de testes que a Giga de Teste deveria ser capaz de realizar para garantir a
qualidade da RIB.
Excetuando-se a verificação de componentes com o microscópio e a inspeção
visual, os testes que a Giga de Teste deve realizar para os circuitos estudados são
simples: medição de tensão, comparando com os níveis de uma placa Master e o
envio/recebimento de um dado para verificar a integridade da comunicação Ethernet.
Os dois microcontroladores estarão conectados aos quatro circuitos de teste da
Giga, como mostra a Figura 7. O circuito RS 485 é representado junto ao de padrão
28
Ethernet por utilizar o mesmo multiplexador. No entanto, como já foi mencionado, os
objetos de estudo deste trabalho serão somente os testes dos circuitos Óptico e Ethernet.
MSP430_A
UART
MSP430_B
UART
UART
DCDC
RS 485/Ethernet
Óptico
Painel LEDs
Figura 7 – Bloco Principal
Ao ligar a fonte de alimentação, a tensão é regulada em 5V pelo LM 317 para
energizar a Giga de Teste (seus microcontroladores). E ao ser pressionado o botão
START do microcontrolador, ele envia um sinal para um segundo LM317, que fecha o
circuito e alimenta a RIB que será testada. Os LM317 possuem proteção contra
sobrecorrente que abrem o circuito se a corrente extrapolar um limite, assegurando que
a RIB conectada à Giga de Teste não receba a corrente de curto.
Inicialmente, a Giga de Teste realiza os testes nos circuitos DCDC e RS-485.
Segundo Umehara e Villas-Bôas (2014):
“O MSP realiza uma medição da corrente que sai do LM317 e vai para a RIB
a fim de comparar com o valor da placa Master e detectar já nesse processo
inicial se há algum mau funcionamento na amostra e se esse for o caso,
encerra o teste e acende o LED ‘FAIL’”.
Em seguida, a Giga de Teste realiza o teste nos conectores ópticos, conforme
Figura 8. Foi utilizado um conector adaptador para que a Giga de Teste pudesse se
conectar aos conectores ópticos. A própria RIB internamente já energiza com 3V alguns
dos pinos dos conectores e possui resistores de “pull up” e “pull down”, a Giga de Teste
apenas completou os circuito de cada pino criando outro “pull down” ou “pull up”.
Cada um desses pinos está conectado internamente na RIB com um conector principal
(80 pinos), que por sua vez está ligado à Giga de Teste por meio de um multiplexador.
29
3V da RIB ou da
Giga de Teste
Divisor de
Tensão
Conector
Conector
Sinal analógico
que vem dos
conectores
MSP430
Multiplex
ADDRESS
Figura 8 - Bloco Óptico
Na Giga de Teste são utilizados dois multiplexadores MPC 506, cada um comuta
a entrada de treze pinos do circuito óptico nas portas analógicas P6.6 e P6.5 do MSP_B.
Durante o teste, o “enable” dos multiplexadores fica em nível alto e o MSP envia para
eles o endereço (“4bit address”) de cada pino em que se fará a leitura.
O microcontrolador faz a litura e compara os valores obtidos com os padrões de
uma placa Master e se não houver grandes variações passa-se para a próxima etapa.
Finalmente, para o teste do circuito Ethernet, mostrado na Figura 9, foi utilizado
um conversor Ethernet/UART para que o MSP pudesse enviar uma palavra através do
conector da RIB em sobrecarregar o código da Giga de Teste.
A Giga de Teste quando conectada à RIB, estabelece um “backloop” na
extremidade interna do circuito Ethernet, fazendo com que ao enviar um dado à RIB, o
MSP receba-o de volta. Neste momento final do teste da RIB o microcontrolador
enviará uma letra através circuito Ethernet e vai esperar seu retorno. Se a RIB devolver
o dado sem danos e dentro do tempo padrão da placa Master, finaliza-se o ciclo de
testes da RIB e os LEDs indicativos irão informar que a placa não possui defeitos.
30
MSP430_A
UART
UART_A
Multiplex
4052
UART_B
Placa RIB
Módulo
Ethernet / RS232
Módulo RS
232/485
Placa RIB
MAX 232
Backloop
MSP430_B
UART
Figura 9 - Bloco RS485 / Ethernet
31
3.3 Programação
O programa inicia em um “loop” de Decisão, no qual aguarda o
BOTAO_START ficar em nível alto, que acontece quando o operador deseja iniciar o
teste da RIB e aciona o BOTAO_START;
Após acionado o BOTAO_START, é feito a leitura da corrente consumida pela
RIB através de uma porta analógica (I_SUPERV) do MSP_A, e se a corrente for menor
que 90d ou maior que 120d o teste é finalizado cortando a alimentação da RIB e
acionando o LED_FAIL(vermelho), e caso a corrente estiver entre 90d a 120d o teste
continua para próxima etapa;
Na etapa seguinte é testada a comunicação serial RS-485, na qual o MSP_A
configura o multiplexador para direcionar a saída serial do MSP_A para o módulo
conversor RS-232/RS485, através do “set”:A=0 e B=0; em seguida o MSP_A envia o
caracter “a” e aguarda uma resposta de um caracter “b” do MSP_B, nessa etapa o
MSP_B fica aguardando um caracter “a” via serial (interrupção) e em seguida envia um
caracter “b”. Ao receber o caracter “b”, o MSP_A deixa a porta de saída digital NEXT
em nível alto; caso não recebe o caracter “b”, o teste é finalizado indicando falha;
A seguir o MSP_B começa a atuar iniciando o teste de ETHERNET. O MSP_B
é iniciado em um “loop” de Decisão no qual aguarda a porta de entrada digital NEXT
ler um nível alto; logo após o MSP_B configura o multiplexador para o direcionamento
de sua saída UART para o módulo ETHERNET/UART, através do “set”: A=0, B=1.
Em seguida, o MSP_B envia o caracter “c” e aguarda o retorno do mesmo caracter
durante um tempo; caso exceda o tempo, o teste é finalizado indicando Falha, caso
contrário o teste passa para próxima etapa;
Nessa etapa o MSP_B testa os conectores do OPTICO_A e B, através de dois
multiplexadores de 1x16 e com duas portas analógicas; o MSP_B inicia o teste com um
“loop” de 13 repetições, na qual cada repetição é feita a comutação da saída do
multiplexador, uma leitura analógica e a comparação do valor lido com o limite de 1,5V
até 2,0V; caso todas 13 leituras estejam atendam o limite, essa etapa se repete para o
OPTICO_B e caso esteja também entre os limites, o teste é finalizado e aciona-se o
LED_PASS (verde) indicando aprovada. Se durante as 13 leituras de cada OPTICO o
valor esteja fora do limite de 1,5V até 2,0V, o teste é finalizado acionando o LED_FAIL
(vermelho) indicando NÃO aprovada.
32
3.4 Fluxograma
MSP430_A
INÍCIO
MSP430_B
BOTÃO_START =
1
DELAY_MS = 1000
LER I_SUPERV
90 <
I_SUPERV <
120
CALL FAIL
A = 0; B = 0
UART_A_TX = “a”
33
INTERRUPÇÃO UART_B
CALL FAIL
C=1; C<500; C++
RIB_ON/OFF = 0
UART_A_RX
== “b”
UART_B_RX
== “a”
NEXT = 1
UART_B_TX = “b”
FIM
FIM
LED_FAIL = 1
FIM
34
INÍCIO
NEXT == 0
A = 0; B = 1
CALL FAIL
UART_C_TX = “c”
C=1; C<500; C++
RIB_ON/OFF = 0
UART_C_RX
== “c”
LED_FAIL = 1
FIM
35
MULT_A=0;
MULT_A<12; MULT_A++
1,5V <
ANALOG_A
< 2V
CALL FAIL
MULT_B=0;
MULT_B<12; MULT_B++
1,5V <
ANALOG_B
< 2V
CALL FAIL
RIB_ON/OFF = 0
LED_PASS = 1
FIM
36
Capítulo 4
Resultados
4.1 Teste Conector Ethernet
4.1.1 Teste Funcional
O teste foi realizado utilizando a PCB mostrada nas Figuras 10 e 11 e
conectando a saída UART do MSP ao conector Ethernet enquanto no conector da RIB
foi conectado um loop, com este circuito loop montado enviamos um dado e o
recebemos no MSP via UART também. O teste baseia-se em comparar o dado enviado
ao dado recebido (deve ser o mesmo). Foram disponibilizadas outras 10 RIBs para
fazermos o teste e todas foram aprovadas.
4.1.2 Teste de Confiabilidade
Como também não é possível realizar este teste em bancada foi realizado o
seguinte teste: Não conectamos totalmente o cabo no conector Ethernet, simulando algum
problema de solda fria ou até mesmo falta de solda ou ainda a falta de um componente causando
problema na comunicação ou no recebimento do dado enviado, e a estação reprovou as
placas. Para confirmar os resultados fornecidos pela estação mostrada na Figura 12, as
placas testadas foram levadas para serem testadas em nível de rádio e todas foram
aprovadas.
37
4.2 Teste Conector Óptico
4.2.1 Teste Funcional
Este teste, devido a sua complexidade, foi projetado para trabalhar simplesmente
comparando tensões e com isso testando a continuidade do caminho percorrido pelo
dado enviado, como a nossa preocupação foi apenas verificar se havia empecilhos nesse
caminho, como por exemplo, a falta de solda em algum componente, ou até mesmo a
falta dele. Foram disponibilizadas outras 10 RIBs para realizarmos esse teste, e todas
foram aprovadas pela estação, conforme Tabela 3.
4.2.2 Teste de Confiabilidade
Devido à incapacidade de realizar este teste em bancada, em todas as placas
retiramos um resistor, deixando o caminho do dado impedido, assim simulando a falta
desse componente, e a estação respondeu bem a esse teste reprovando essas unidades.
Ainda assim montamos o resistor retirado e enviamos as unidades para o teste de
rádio, foram reprovadas três unidades do radio, que ao serem analisadas pelos técnicos
foi constatado falhas de processo produtivo em outros componentes do rádio, que não a
RIB, como demonstra a tabela abaixo.
Tabela 2 - Resultados dos testes no circuito Óptico
Resultado Teste
Ethernet
Pass
Pass
Pass
Pass
Pass
Resultado do
teste (RIB)
Pass
Pass
Pass
Pass
Pass
Resultado Teste
(RRU)
Pass
Pass
Pass
Pass
Pass
Pass
Pass
Failed
Pass
Pass
Pass
Pass
Pass
Failed
Pass
Pass
Pass
Pass
Pass
Failed
Observação Técnica
Componente deslocado na PAU (Power
Amplifier Unit)
Componente faltando na TRX
(Transciever)
Reconectaram os cabos e a unidade foi
aprovada
38
4.3 Placas Confeccionadas
As Figuras 10, e 11 mostram a placa de circuito impresso do Bloco Ethernet.
A Giga de Teste já finalizada é mostrada na Figura 12.
Figura 10 - PCB Circuito RS485/Ethernet (TOP)
Figura 11 - PCB Circuito RS485/Ethernet (BOT)
39
Figura 12 – Giga de Testes
4.4 Redução de Custos
Tendo como exemplo um lote de 100 peças, conseguimos uma redução de tempo
de linha, de aproximadamente 34%, o que representaria um aumento de 55 peças com o
mesmo tempo de produção, como demonstrado na figura 13.
Segundo informações da empresa a hora da linha custa R$1100,00; fabricando
250 peças (quantidade média produzida atualmente por turno), obtém-se um ganho de
aproximadamente 140min, conforme a Figura 14, ou seja, mais de R$2560,00.
40
Figura 13 - Redução do tempo de produção por lote
Figura 14 - Ganho em tempo
41
Capítulo 5
Conclusões
Com este projeto os autores puderam estudar o funcionamento da RIB e
trabalhar no projeto da estação de teste (Giga de Teste), que chegou a ser testada na
linha de produção da empresa Ericsson. Os resultados mostraram que dispositivo
fabricado é capaz de simular e testar corretamente as funções dos circuitos Óptico e
Ethernet da RIB.
A Giga de Teste automatizou o processo de inspeção na linha de produção e
melhorou a metodologia do teste, possibilitando que o usuário obtenha resultados de
maneira mais simples.
O tempo do teste que antes durava cerca de 50 minutos foi reduzido para
aproximadamente 5 minutos, e pode diminuir mais com treinamento dos operadores.
Isso resultou em menos tempo de linha parada, maior produtividade e redução no custo
de fabricação da RIB.
Em suma, todos os objetivos pré-estabelecidos foram alcançados com êxito e o
dispositivo fabricado mostrou-se como uma inovação de baixo custo.
Este projeto conseguiu também ampliar a visão dos envolvidos sobre o processo
de inspeção da RIB, deixando oportunidades de melhoria para implementação futura
das quais se destaca a criação de uma interface no computador ou tela de LCD para
melhorar a apresentação dos resultados.
42
Referências Bibliográficas
[1] - AXIS COMMUNICATIONS. Rede local e Ethernet. Disponível em:
http://www.axis.com/pt/products/video/about_networkvideo/ip_networks.htm Acesso
em: 10 nov. 2014
[2] - CIANET. Tecnologia Ethernet. Disponível em:
http://www.cianet.ind.br/pt/produtos/tecnologias/tecnologia-ethernet/ Acesso em: 10
nov. 2014
[3] - CISCO. Cisco Visual Networking Index: Global Mobile Data Traffic Forecast
Update, 2013–2018 Disponível em:
http://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-networkingindex-vni/white_paper_c11-520862.html Acesso em: 27 set. 2014.
[4] - CNET. Ericsson predicts tenfold increase in mobile data traffic in five years.
Disponível em: http://www.cnet.com/news/ericsson-predicts-tenfold-increase-inmobile-data-traffic-in-five-years/ Acesso em: 28 set. 2014.
[5] - E-THESIS. Small cells: você ainda vai ter a sua... Disponível em:
http://www.e-thesis.inf.br/index.php?option=com_content&task=view&id=7912&Itemi
d=52 Acesso em: 4 out. 2014.
[6] - F. UMEHARA , M. P. VILLAS-BÔAS. Giga de testes para RIB: Teste dos
circuitos DCDC e RS485. 2014. Relatório do Trabalho de Conclusão de Curso para
obtenção do Título de Bacharel em Engenharia Elétrica/Eletrônica – UNIVAP –
Universidade do Vale do Paraíba, São José dos Campos.
[7] - PIDGEON, NICK. How Stuff Works. Como funciona a Ethernet. Disponível em:
http://tecnologia.hsw.uol.com.br/ethernet1.htm Acesso em: 10 nov. 2014
[8] - SINDITELEBRASIL, SINDICATO NACIONAL DAS EMPRESAS DE
TELEFONIA E DE SERVIÇO MÓVEL CELULAR E PESSOAL. Copa 2014: mais de
1 milhão de comunicação de dados no jogo do Brasil x Croácia. Disponível em:
http://www.sinditelebrasil.org.br/sala-de-imprensa/na-midia/2210-copa-2014-mais-de1-milhao-de-comunicacao-de-dados-no-jogo-do-brasil-x-croacia Acesso em: 5 out.
2014.
43
Anexo 1 – Esquema Elétrico
44
45
46
47
48
49
Anexo 2 – Código Main
MSP_A
#include <msp430f5529.h>
volatile unsigned int results[10];
example
// Needs to be global in this
// Otherwise, the compiler
removes it
// because it is not used for
anything.
unsigned int c;
int Analog;
int RS485_check = 0;
int Ethernet_check = 0;
void Pass(void)
{
unsigned int a;
P2OUT |=
P1OUT |=
P6OUT &=
for(a=0;
BIT7;
BIT6;
~BIT6;
a<10000; a++);
while (!(UCA1IFG&UCTXIFG));
UCA1TXBUF = 'p';
//
//
//
//
DESLIGA VCC_RIB
SET UART MSPA=MSPB
SET UART MSPA=MSPB
delay
// USCI_A0 TX buffer ready?
// TX -> RXed character
}
void Fail(void)
{
unsigned int b;
P2OUT |=
P1OUT |=
P6OUT &=
for(b=0;
BIT7;
BIT6;
~BIT6;
b<10000; b++);
while (!(UCA1IFG&UCTXIFG));
UCA1TXBUF = 'f';
//DESLIGA VCC_RIB
// SET UART MSPA=MSPB
// SET UART MSPA=MSPB
// delay
// USCI_A0 TX buffer ready?
// TX -> RXed character
}
int main(void)
{
WDTCTL = WDTPW+WDTHOLD;
P2DIR |= BIT4;
P2OUT &= ~BIT4;
//Configuração portas
P2DIR |= BIT7;
// Stop watchdogtimer
// MSP_A FINISHED, MSP_B START
// RIB_ON/OFF
50
P2OUT |= BIT7;
// DESLIGA
P3DIR &= ~BIT1;
P3REN |= BIT1;
P3OUT |= BIT1;
// START_BUTTON
// ATIVA PULL UP/DOWN
// SET PULLUP
P6DIR &= ~BIT5;
// I_SUPERV (ANALOGICO)
P1DIR |= BIT6;
P6DIR |= BIT6;
// UART SELECT = A
// UART SELECT = B
//Configuração UART
P3SEL = BIT3+BIT4;
UCA0CTL1 |= UCSWRST;
UCA0CTL1 |= UCSSEL_2;
UCA0BR0 = 6;
UCA0BR1 = 0;
UCA0MCTL = UCBRS_0 + UCBRF_13 + UCOS16;
UCA0CTL1 &= ~UCSWRST;
machine**
UCA0IE |= UCRXIE;
__bis_SR_register(GIE);
//Configuração ADC
P6SEL = 0x0F;
ADC12CTL0 = ADC12ON+ADC12MSC+ADC12SHT0_2;
time
ADC12CTL1 = ADC12SHP+ADC12CONSEQ_1;
sequence
ADC12MCTL0 = ADC12INCH_0;
ADC12MCTL1 = ADC12INCH_1;
ADC12MCTL2 = ADC12INCH_2;
ADC12MCTL3 = ADC12INCH_3+ADC12EOS;
seq.
ADC12MCTL5 = ADC12INCH_5;
channel = A5
ADC12IE = 0x08;
ADC12CTL0 |= ADC12ENC;
//
//
//
//
//
//
//
P3.4,5 = USCI_A0 TXD/RXD
**Put state machine in reset**
SMCLK
1MHz 9600 (see User's Guide)
1MHz 9600
Modln UCBRSx=0, UCBRFx=0,
**Initialize USCI state
// Enable USCI_A0 RX interrupt
// interrupts enabled
// Enable A/D channel inputs
// Turn on ADC12, set sampling
// Use sampling timer, single
//
//
//
//
ref+=AVcc,
ref+=AVcc,
ref+=AVcc,
ref+=AVcc,
channel
channel
channel
channel
=
=
=
=
A0
A1
A2
A3, end
// ref+=AVcc,
// Enable ADC12IFG.3
// Enable conversions
while(1)
{
nok:
while((P3IN & BIT1)==0);// Aguarda o operador acionar o botão START
for(c=0; c<15000; c++);
// Delay
P2OUT &= ~BIT7;
// Acionada a alimentação da RIB
for (c=1; c<4000; c++);
// Delay para a RIB estabilizar
// Leitura da corrente
ADC12CTL0 |= ADC12SC;
// Start convn - software trigger
Analog = ADC12MEM5;
// Leitura analogica do I_Superv
if ((90 < Analog) && (Analog < 150))
// Limites de corrente de
uma placa ok
goto ok;
else
51
{
Fail();
goto nok;
// senão termina o teste
}
ok:
for(c=1; c<10000; c++);
//Inicio do teste RS485
P1OUT &= ~BIT6;
P6OUT &= ~BIT6;
// delay
// SET UART RS485
// MSP_A = UART_A / MSP_B = UART_D
for(c=1; c<10000; c++);
// delay
while (!(UCA1IFG&UCTXIFG));
UCA1TXBUF = 'a';
for(c=1; c<20000; c++)
{
if(RS485_check == 1)
{
RS485_check = 0;
goto ok1;
}
}
Fail();
goto nok;
// USCI_A0 TX buffer ready?
// TX -> RXed character
//RS485 ok!
ok1:
// TESTE ETHERNET
for(c=1; c<10000; c++);
// delay
P1OUT &= ~BIT6;
P6OUT |= BIT6;
// SET UART TO ETHERNET
// SET UART TO ETHERNET
for(c=1; c<10000; c++);
// delay
while (!(UCA1IFG&UCTXIFG));
// USCI_A0 TX buffer ready?
UCA1TXBUF = 'e';
// TX -> RXed character
for(c=1; c<20000; c++)
{
if(Ethernet_check == 1)
{
Ethernet_check = 0;
goto ok2;
// Ethernet ok!
}
}
Fail();
goto nok;
ok2:
for(c=1; c<10000; c++);
P2OUT |=
P1OUT |=
P6OUT &=
for(c=1;
P2OUT &=
BIT4;
BIT6;
~BIT6;
c<30000; c++);
~BIT4;
// delay
// TEST MSP_A FINISHED, START MSP_B
// SET UART MSPA=MSPB
// SET UART MSPA=MSPB
}
}
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
52
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR (void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(ADC12_VECTOR)))
#else
#error Compiler not supported!
#endif
{
switch(__even_in_range(ADC12IV,34))
{
case 0: break;
//
case 2: break;
//
case 4: break;
//
overflow
case 6: break;
//
case 8: break;
//
case 10: break;
//
case 12:
//
results[0] = ADC12MEM0;
//
results[1] = ADC12MEM1;
//
results[2] = ADC12MEM2;
//
results[3] = ADC12MEM3;
//
results[5] = ADC12MEM5;
__bic_SR_register_on_exit(LPM4_bits);
//
BREAKPOINT HERE
case 14: break;
//
case 16: break;
//
case 18: break;
//
case 20: break;
//
case 22: break;
//
case 24: break;
//
case 26: break;
//
case 28: break;
//
case 30: break;
//
case 32: break;
//
case 34: break;
//
default: break;
}
}
ADC12ISR (void)
Vector
Vector
Vector
0:
2:
4:
No interrupt
ADC overflow
ADC timing
Vector 6: ADC12IFG0
Vector 8: ADC12IFG1
Vector 10: ADC12IFG2
Vector 12: ADC12IFG3
Move results, IFG is cleared
Move results, IFG is cleared
Move results, IFG is cleared
Move results, IFG is cleared
Exit active CPU, SET
Vector
Vector
Vector
Vector
Vector
Vector
Vector
Vector
Vector
Vector
Vector
14:
16:
18:
20:
22:
24:
26:
28:
30:
32:
34:
ADC12IFG4
ADC12IFG5
ADC12IFG6
ADC12IFG7
ADC12IFG8
ADC12IFG9
ADC12IFG10
ADC12IFG11
ADC12IFG12
ADC12IFG13
ADC12IFG14
// Echo back RXed character, confirm TX buffer is ready first
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(USCI_A0_VECTOR))) USCI_A0_ISR (void)
#else
#error Compiler not supported!
#endif
{
switch(__even_in_range(UCA0IV,4))
{
case 0:break;
// Vector 0 - no interrupt
case 2:
// Vector 2 - RXIFG
if(UCA1RXBUF == 'b')
// RETORNO RS485
{
RS485_check = 1;
}
if(UCA1RXBUF == 'e')
// TESTE ETHERNET
53
{
Ethernet_check = 1;
}
if(UCA1RXBUF == 'd')
{
P2OUT |= BIT7;
}
break;
case 4:break;
default: break;
}
// DESLIGA VCC_RIB
// Vector 4 - TXIFG
}
MSP_B
#include <msp430f5529.h>
volatile unsigned int results[10];
example
// Needs to be global in this
// Otherwise, the compiler
removes it
// because it is not used for
anything.
unsigned int c;
unsigned Analog_opt_A;
unsigned Analog_opt_B;
void Pass(void)
{
unsigned int a;
P1OUT |= BIT4;
for(a=10000; a>0; a--);
while (!(UCA1IFG&UCTXIFG));
UCA1TXBUF = 'd';
// on
// delay
// USCI_A0 TX buffer ready?
// TX -> RXed character
}
54
void Fail(void)
{
unsigned int a;
P1OUT |= BIT5;
for(a=10000; a>0; a--);
while (!(UCA1IFG&UCTXIFG));
UCA1TXBUF = 'd';
// on
// delay
// USCI_A0 TX buffer ready?
// TX -> RXed character
}
int main(void)
{
WDTCTL = WDTPW+WDTHOLD;
P2DIR &= ~BIT4;
P2REN |= BIT4;
P2OUT &= ~BIT4;
// Stop watchdog timer
// START TEST MSP_B
// PULDOWN SET
//Configuração portas
P1DIR |= BIT4;
P1OUT &= ~BIT4;
// LED_PASS
// APAGA
P1DIR |= BIT5;
P1OUT &= ~BIT5;
// LED_FAIL
// APAGA
// OPTICO
P4DIR |=
P4DIR |=
P3DIR |=
P2DIR |=
CONTROL
BIT1;
BIT2;
BIT2;
BIT7;
//
//
//
//
CTRL
CTRL
CTRL
CTRL
A0
A1
A2
A3
BIT1;
BIT3;
BIT6;
BIT1;
//
//
//
//
CTRL
CTRL
CTRL
CTRL
B0
B1
B2
B3
P8DIR
P3DIR
P2DIR
P3DIR
|=
|=
|=
|=
//Configuração UART
P3SEL = BIT3+BIT4;
// P3.4,5 = USCI_A0 TXD/RXD
UCA0CTL1 |= UCSWRST;
// **Put state machine in
reset**
UCA0CTL1 |= UCSSEL_2;
// SMCLK
UCA0BR0 = 6;
// 1MHz 9600 (see User's Guide)
UCA0BR1 = 0;
// 1MHz 9600
UCA0MCTL = UCBRS_0 + UCBRF_13 + UCOS16;
// Modln UCBRSx=0, UCBRFx=0,
UCA0CTL1 &= ~UCSWRST;
// **Initialize USCI state machine**
UCA0IE |= UCRXIE;
// Enable USCI_A0 RX interrupt
__bis_SR_register(GIE);
// interrupts enabled
//Configuração ADC
P6SEL = 0x0F;
// Enable A/D channel inputs
ADC12CTL0 = ADC12ON+ADC12MSC+ADC12SHT0_2;
ADC12CTL1 = ADC12SHP+ADC12CONSEQ_1;
ADC12MCTL5 = ADC12INCH_5;
// ref+=AVcc, channel = A5
ADC12MCTL6 = ADC12INCH_6;
// ref+=AVcc, channel = A6
ADC12IE = 0x08;
ADC12CTL0 |= ADC12ENC;
// Enable ADC12IFG.3
// Enable conversions
55
while(1)
{
while((P2IN & BIT4)==0);
for(c=15000; c>1; c--);
// inicia TESTE EM MSP_B
// Delay
//************ Inicio teste optico_A *****************************
//start Optico_A test => 0
P4OUT &= ~BIT1;
// CTRL A0
P4OUT &= ~BIT2;
// CTRL A1
P3OUT &= ~BIT2;
// CTRL A2
P2OUT &= ~BIT7;
// CTRL A3
for(c=15000; c>1; c--);
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_A = ADC12MEM6;
for(c=15000; c>1; c--);
// Delay
// Start convn - software trigger
// Leitura analogica
// Delay
if (!(1168 < Analog_opt_A < 1490)) // Limites 1,45V ~ 1,85V =>
3,3V/2 = 1,65
Fail();
for(c=15000; c>0; c--);
// Delay
//start Optico_A test => 1
P4OUT |= BIT1;
P4OUT &= ~BIT2;
P3OUT &= ~BIT2;
P2OUT &= ~BIT7;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_A = ADC12MEM6;
for(c=15000; c>1; c--);
CTRL
CTRL
CTRL
CTRL
A0
A1
A2
A3
// Start convn - software trigger
// Leitura analogica
// Delay
if (!(1168 < Analog_opt_A < 1490))
=> 3,3V/2 = 1,65
Fail();
// Limites 1,45V ~ 1,85V
for(c=15000; c>1; c--);
// Delay
//start Optico_A test => 2
P4OUT &= ~BIT1;
P4OUT |= BIT2;
P3OUT &= ~BIT2;
P2OUT &= ~BIT7;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_A = ADC12MEM6;
for(c=15000; c>1; c--);
CTRL
CTRL
CTRL
CTRL
A0
A1
A2
A3
// Start convn - software trigger
// Leitura analogica
// Delay
56
if (!(1168 < Analog_opt_A < 1490))
=> 3,3V/2 = 1,65
Fail();
// Limites 1,45V ~ 1,85V
for(c=15000; c>1; c--);
// Delay
//start Optico_A test => 3
P4OUT |= BIT1;
P4OUT |= BIT2;
P3OUT &= ~BIT2;
P2OUT &= ~BIT7;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_A = ADC12MEM6;
for(c=15000; c>1; c--);
CTRL
CTRL
CTRL
CTRL
A0
A1
A2
A3
// Start convn - software trigger
// Leitura analogica
// Delay
if (!(1168 < Analog_opt_A < 1490))
=> 3,3V/2 = 1,65
Fail();
// Limites 1,45V ~ 1,85V
for(c=15000; c>1; c--);
// Delay
//start Optico_A test => 4
P4OUT &= ~BIT1;
P4OUT &= ~BIT2;
P3OUT |= BIT2;
P2OUT &= ~BIT7;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_A = ADC12MEM6;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_A < 1490))
3,3V/2 = 1,65
Fail();
CTRL
CTRL
CTRL
CTRL
A0
A1
A2
A3
// Start convn - software trigger
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_A test => 5
P4OUT |= BIT1;
P4OUT &= ~BIT2;
P3OUT |= BIT2;
P2OUT &= ~BIT7;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_A = ADC12MEM6;
for(c=15000; c>1; c--);
CTRL
CTRL
CTRL
CTRL
A0
A1
A2
A3
// Start convn - software trigger
// Leitura analogica
// Delay
57
if (!(1168 < Analog_opt_A < 1490))
3,3V/2 = 1,65
Fail();
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_A test => 6
P4OUT &= ~BIT1;
P4OUT |= BIT2;
P3OUT |= BIT2;
P2OUT &= ~BIT7;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
// Start convn - software
Analog_opt_A = ADC12MEM6;
for(c=15000; c>1; c--);
// Leitura analogica
// Delay
CTRL
CTRL
CTRL
CTRL
A0
A1
A2
A3
trigger
if (!(1168 < Analog_opt_A < 1490))
3,3V/2 = 1,65
Fail();
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_A test => 7
P4OUT |= BIT1;
P4OUT |= BIT2;
P3OUT |= BIT2;
P2OUT &= ~BIT7;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
// Start convn - software
Analog_opt_A = ADC12MEM6;
for(c=15000; c>1; c--);
// Leitura analogica
// Delay
CTRL
CTRL
CTRL
CTRL
A0
A1
A2
A3
trigger
if (!(1168 < Analog_opt_A < 1490))
3,3V/2 = 1,65
Fail();
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_A test => 8
P4OUT &= ~BIT1;
P4OUT &= ~BIT2;
P3OUT &= ~BIT2;
P2OUT |= BIT7;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
CTRL
CTRL
CTRL
CTRL
A0
A1
A2
A3
// Start convn - software trigger
58
Analog_opt_A = ADC12MEM6;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_A < 1490))
3,3V/2 = 1,65
Fail();
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_A test => 9
P4OUT |= BIT1;
P4OUT &= ~BIT2;
P3OUT &= ~BIT2;
P2OUT |= BIT7;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_A = ADC12MEM6;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_A < 1490))
3,3V/2 = 1,65
Fail();
CTRL
CTRL
CTRL
CTRL
A0
A1
A2
A3
// Start convn - software trigger
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_A test => 10
P4OUT &= ~BIT1;
P4OUT |= BIT2;
P3OUT &= ~BIT2;
P2OUT |= BIT7;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_A = ADC12MEM6;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_A < 1490))
3,3V/2 = 1,65
Fail();
CTRL
CTRL
CTRL
CTRL
A0
A1
A2
A3
// Start convn - software trigger
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_A test => 11
P4OUT |= BIT1;
P4OUT |= BIT2;
P3OUT &= ~BIT2;
P2OUT |= BIT7;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
CTRL
CTRL
CTRL
CTRL
A0
A1
A2
A3
// Start convn - software trigger
59
Analog_opt_A = ADC12MEM6;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_A < 1490))
3,3V/2 = 1,65
Fail();
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_A test => 12
P4OUT &= ~BIT1;
P4OUT &= ~BIT2;
P3OUT |= BIT2;
P2OUT |= BIT7;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_A = ADC12MEM6;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_A < 1490))
3,3V/2 = 1,65
Fail();
for(c=15000; c>1; c--);
CTRL
CTRL
CTRL
CTRL
A0
A1
A2
A3
// Start convn - software trigger
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
// Delay
//***************** Fim do teste Optico_A *************************
//************ Inicio teste optico_B *****************************
//start Optico_B test => 0
P8OUT &= ~BIT1;
// CTRL B0
P3OUT &= ~BIT3;
// CTRL B1
P2OUT &= ~BIT6;
// CTRL B2
P3OUT &= ~BIT1;
// CTRL B3
for(c=15000; c>1; c--);
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_B = ADC12MEM5;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_B < 1490))
3,3V/2 = 1,65
Fail();
// Delay
// Start convn - software trigger
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_B test => 1
P8OUT |= BIT1;
P3OUT &= ~BIT3;
P2OUT &= ~BIT6;
P3OUT &= ~BIT1;
//
//
//
//
CTRL
CTRL
CTRL
CTRL
B0
B1
B2
B3
60
for(c=15000; c>1; c--);
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_B = ADC12MEM5;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_B < 1490))
3,3V/2 = 1,65
Fail();
// Delay
// Start convn - software trigger
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_B test => 2
P8OUT &= ~BIT1;
P3OUT |= BIT3;
P2OUT &= ~BIT6;
P3OUT &= ~BIT1;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
// Start convn - software
Analog_opt_B = ADC12MEM5;
for(c=15000; c>1; c--);
// Leitura analogica
// Delay
CTRL
CTRL
CTRL
CTRL
B0
B1
B2
B3
trigger
if (!(1168 < Analog_opt_B < 1490))
3,3V/2 = 1,65
Fail();
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_B test => 3
P8OUT |= BIT1;
P3OUT |= BIT3;
P2OUT &= ~BIT6;
P3OUT &= ~BIT1;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_B = ADC12MEM5;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_B < 1490))
3,3V/2 = 1,65
Fail();
CTRL
CTRL
CTRL
CTRL
B0
B1
B2
B3
// Start convn - software trigger
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_B test => 4
P8OUT &= ~BIT1;
P3OUT &= ~BIT3;
P2OUT |= BIT6;
P3OUT &= ~BIT1;
//
//
//
//
CTRL
CTRL
CTRL
CTRL
B0
B1
B2
B3
61
for(c=15000; c>1; c--);
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_B = ADC12MEM5;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_B < 1490))
3,3V/2 = 1,65
Fail();
// Delay
// Start convn - software trigger
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_B test => 5
P8OUT |= BIT1;
P3OUT &= ~BIT3;
P2OUT |= BIT6;
P3OUT &= ~BIT1;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_B = ADC12MEM5;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_B < 1490))
3,3V/2 = 1,65
Fail();
CTRL
CTRL
CTRL
CTRL
B0
B1
B2
B3
// Start convn - software trigger
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_B test => 6
P8OUT &= ~BIT1;
P3OUT |= BIT3;
P2OUT |= BIT6;
P3OUT &= ~BIT1;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_B = ADC12MEM5;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_B < 1490))
3,3V/2 = 1,65
Fail();
CTRL
CTRL
CTRL
CTRL
B0
B1
B2
B3
// Start convn - software trigger
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_B test => 7
P8OUT |= BIT1;
P3OUT |= BIT3;
P2OUT |= BIT6;
P3OUT &= ~BIT1;
//
//
//
//
CTRL
CTRL
CTRL
CTRL
B0
B1
B2
B3
62
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_B = ADC12MEM5;
for(c=15000; c>1; c--);
// Start convn - software trigger
// Leitura analogica
// Delay
if (!(1168 < Analog_opt_B < 1490))
3,3V/2 = 1,65
Fail();
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_B test => 8
P8OUT &= ~BIT1;
P3OUT &= ~BIT3;
P2OUT &= ~BIT6;
P3OUT |= BIT1;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_B = ADC12MEM5;
for(c=15000; c>1; c--);
CTRL
CTRL
CTRL
CTRL
B0
B1
B2
B3
// Start convn - software trigger
// Leitura analogica
// Delay
if (!(1168 < Analog_opt_B < 1490))
3,3V/2 = 1,65
Fail();
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_B test => 9
P8OUT |= BIT1;
P3OUT &= ~BIT3;
P2OUT &= ~BIT6;
P3OUT |= BIT1;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_B = ADC12MEM5;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_B < 1490))
3,3V/2 = 1,65
Fail();
CTRL
CTRL
CTRL
CTRL
B0
B1
B2
B3
// Start convn - software trigger
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_B test => 10
P8OUT &= ~BIT1;
P3OUT |= BIT3;
P2OUT &= ~BIT6;
P3OUT |= BIT1;
//
//
//
//
CTRL
CTRL
CTRL
CTRL
B0
B1
B2
B3
63
for(c=15000; c>1; c--);
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_B = ADC12MEM5;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_B < 1490))
3,3V/2 = 1,65
Fail();
// Delay
// Start convn - software trigger
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_B test => 11
P8OUT |= BIT1;
P3OUT |= BIT3;
P2OUT &= ~BIT6;
P3OUT |= BIT1;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_B = ADC12MEM5;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_B < 1490))
3,3V/2 = 1,65
Fail();
CTRL
CTRL
CTRL
CTRL
B0
B1
B2
B3
// Start convn - software trigger
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
for(c=15000; c>1; c--);
// Delay
//start Optico_B test => 12
P8OUT &= ~BIT1;
P3OUT &= ~BIT3;
P2OUT |= BIT6;
P3OUT |= BIT1;
//
//
//
//
for(c=15000; c>1; c--);
// Delay
// Leitura analog
ADC12CTL0 |= ADC12SC;
Analog_opt_B = ADC12MEM5;
for(c=15000; c>1; c--);
if (!(1168 < Analog_opt_B < 1490))
3,3V/2 = 1,65
Fail();
for(c=15000; c>1; c--);
CTRL
CTRL
CTRL
CTRL
B0
B1
B2
B3
// Start convn - software trigger
// Leitura analogica
// Delay
// Limites 1,45V ~ 1,85V =>
// Delay
//***************** Fim do teste Optico_B *************************
Pass();
}
64
}
// Echo back RXed character, confirm TX buffer is ready first
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(USCI_A0_VECTOR))) USCI_A0_ISR (void)
#else
#error Compiler not supported!
#endif
{
switch(__even_in_range(UCA0IV,4))
{
case 0:break;
// Vector 0 - no interrupt
case 2:
// Vector 2 - RXIFG
if(UCA1RXBUF == 'a')
// RS485 TEST
{
while (!(UCA1IFG&UCTXIFG));
// USCI_A0 TX buffer ready?
UCA1TXBUF = 'b';
}
if(UCA1RXBUF == 'p') P1OUT |= BIT4; // LED_PASS ON
if(UCA1RXBUF == 'f')
break;
case 4:break;
default: break;
}
P1OUT |= BIT5; // FAIL_PASS ON
// Vector 4 - TXIFG
}
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR (void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(ADC12_VECTOR))) ADC12ISR (void)
#else
#error Compiler not supported!
#endif
{
switch(__even_in_range(ADC12IV,34))
{
case 0: break;
// Vector 0: No interrupt
case 2: break;
// Vector 2: ADC overflow
case 4: break;
// Vector 4: ADC timing
overflow
case 6: break;
// Vector 6: ADC12IFG0
case 8: break;
// Vector 8: ADC12IFG1
case 10: break;
// Vector 10: ADC12IFG2
case 12:
// Vector 12: ADC12IFG3
results[5] = ADC12MEM5;
// ANALOG OPTCO_B
results[6] = ADC12MEM6;
// ANALOG OPTCO_A
__bic_SR_register_on_exit(LPM4_bits);
// Exit active CPU, SET
BREAKPOINT HERE
case 14: break;
// Vector 14: ADC12IFG4
case 16: break;
// Vector 16: ADC12IFG5
case 18: break;
// Vector 18: ADC12IFG6
65
case 20:
case 22:
case 24:
case 26:
case 28:
case 30:
case 32:
case 34:
default:
}
break;
break;
break;
break;
break;
break;
break;
break;
break;
//
//
//
//
//
//
//
//
Vector
Vector
Vector
Vector
Vector
Vector
Vector
Vector
20:
22:
24:
26:
28:
30:
32:
34:
ADC12IFG7
ADC12IFG8
ADC12IFG9
ADC12IFG10
ADC12IFG11
ADC12IFG12
ADC12IFG13
ADC12IFG14
}
66
Download