placa de controle de robôs móveis com comunicação por rádio

Transcrição

placa de controle de robôs móveis com comunicação por rádio
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO
CENTRO TECNOLÓGICO
DEPARTAMENTO DE ENGENHARIA ELÉTRICA
PLACA DE CONTROLE DE ROBÔS MÓVEIS COM
COMUNICAÇÃO POR RÁDIO FREQÜÊNCIA
EDUARDO HOFFMANN REIS
PROJETO DE GRADUAÇÃO
VITÓRIA – ES
AGOSTO/2006
EDUARDO HOFFMANN REIS
PLACA DE CONTROLE DE ROBÔS MÓVEIS COM
COMUNICAÇÃO POR RÁDIO FREQÜÊNCIA
Parte manuscrita do Projeto de Graduação
de Eduardo Hoffmann Reis, apresentado
ao Departamento de Engenharia Elétrica
do Centro Tecnológico da Universidade
Federal do Espírito Santo, para obtenção
do grau de Engenheiro Eletricista.
VITÓRIA – ES
AGOSTO/2006
EDUARDO HOFFMANN REIS
PLACA DE CONTROLE DE ROBÔS MÓVEIS COM
COMUNICAÇÃO POR RÁDIO FREQÜÊNCIA
COMISSÃO EXAMINADORA:
____________________________________
Prof. Dr. Hans-jorg schneebeli
Orientador
____________________________________
Profª. Drª. Raquel Frizera Vassallo
Examinadora
____________________________________
Prof. Dr. Edson de Paula Ferreira
Examinador
Vitória - ES, 29 de Agosto de 2006
AGRADECIMENTOS
Agradeço em especial ao professor Hans-Jorg Schneebeli por ter sido um
orientador prestativo em todas as fases do projeto.
Agradeço a minha família, aos meus amigos e aos colegas do curso de
Engenharia Elétrica.
Agradeço aos professores do Departamento de Engenharia Elétrica da UFES
que fazem com dedicação a honrosa profissão de transmitir o conhecimento.
i
LISTA DE FIGURAS
Figura 1.1 - Diagrama de blocos simplificado...........................................................10
Figura 3.1 - Diagrama de blocos do hardware...........................................................13
Figura 3.2 - Sistema de alimentação .........................................................................14
Figura 3.3 - Interface JTAG.......................................................................................15
Figura 3.4 - Interface RS232......................................................................................16
Figura 3.5 - Diagrama de ligação do circuito de controle dos motores.....................17
Figura 3.6 - Esquemático do circuito de controle dos motores..................................18
Figura 3.7 - Detalhes internos do TPIC0108B...........................................................18
Figura 3.8 - Conexão microcontrolador/módulo Xm1201A......................................19
Figura 3.9 - Arquitetura interna do MSP430F149.....................................................20
Figura 3.10 - Visão geral da placa de comunicação RF.............................................21
Figura 3.11 - Arquitetura interna do XE1201A.........................................................22
Figura 3.12 - Antena tipo loop retangular..................................................................22
Figura 3.13 - Transmissão de bits "0"........................................................................23
Figura 3.14 - Transmissão de bits "1"........................................................................23
Figura 4.1 - Diagrama de configuração do transceiver.............................................24
Figura 4.2 - Fluxograma da configuração do transceiver..........................................26
Figura 4.3 - Fluxograma da transmissão de dados.....................................................27
Figura 5.1 - Recepção dos bits "0".............................................................................28
Figura 5.2 - Recepção dos bits "1".............................................................................29
Figura 5.3 - Recepção da seqüência alternada de bits "0" e "1"................................29
Figura 6.1 - Ligações para teste da transmissão de dados..........................................30
Figura 6.2 - Ligação entre a placa PROTO430 e o módulo XM1201A.....................30
ii
LISTA DE TABELAS
Tabela 3.1 - Modos de alimentação...........................................................................15
Tabela 3.2 - Modos de operação dos motores...........................................................16
iii
GLOSSÁRIO
RF – RADIO FREQUENCY (RÁDIO FREQÜÊNCIA).
DC – DIRECT CURRENT (CORRENTE DIRETA).
FSK – FREQUENCY SHIFT KEYING (CHAVEAMENTO POR DESLOCAMENTO
DE FREQÜÊNCIA).
PWM – PULSE WIDTH MODULATION (MODULAÇÃO POR LARGURA DE
PULSO).
CI – CIRCUITO INTEGRADO.
iv
SUMÁRIO
AGRADECIMENTOS ................................................................................................ I
LISTA DE FIGURAS ................................................................................................ II
LISTA DE TABELA ............................................................................................. IIIII
GLOSSÁRIO ............................................................................................................IIV
SUMÁRIO ................................................................................................................... V
RESUMO ..................................................................................................................VII
1 INTRODUÇÃO.......................................................................................................8
1.1 Motivação....................................................................................................... ..8
1.2 Descrição do Problema.....................................................................................8
1.3 Metodologia......................................................................................................8
1.4 Estrutura do Trabalho..................................................................................... ..9
2 DESCRIÇÃO DO SISTEMA PROPOSTO .........................................................10
2.1 Escolha dos Componentes ..............................................................................110
2.1.1 Microcontrolador .........................................................................................11
2.1.2 Reguladores de Voltagem ......................................................................... 11
2.1.3 Controle dos Motores ................................................................................ 11
2.1.4 Comunicação por Rádio Freqüência ...................................................... 12
3 DESCRIÇÃO DO HARDWARE ..........................................................................13
3.1 Placa de controle ...............................................................................................14
3.1.1 Reguladores de voltagem...........................................................................14
3.1.2 Sistema de relógio........................................................................................15
3.1.3 Interfaces JTAG, RS232 e BSL...................................................................15
3.1.4 Ponte-H .......................................................................................................16
3.1.5 Microcontrolador.........................................................................................19
3.2 Placa de comunicação RF.................................................................................20
3.2.1 Transmissão/Recepção dos dados por rádio freqüência..............................20
3.2.2 Antena..........................................................................................................22
3.2.3 Espectro do sinal FSK.................................................................................23
v
4 DESCRIÇÃO DO SOFTWARE ...........................................................................24
4.1 Configuração do transceiver ( 3-Wire Bus ).....................................................24
4.2 Transmissão de dados .......................................................................................25
4.3 Recepção de dados ............................................................................................27
5 RESULTADOS .......................................................................................................28
6 CONCLUSÃO .........................................................................................................30
APÊNDICE A .............................................................................................................31
APÊNDICE B .............................................................................................................32
APÊNDICE C .............................................................................................................33
APÊNDICE D .............................................................................................................34
APÊNDICE E .............................................................................................................35
REFERÊNCIAS BIBLIOGRÁFICAS.....................................................................45
vi
RESUMO
O presente trabalho consiste no desenvolvimento de um sistema eletrônico
para comunicação em rádio frequência e controle de dois motores DC, possibilitando
o movimento e a troca de informações entre robôs móveis microcontrolados.
O movimento dos robos é feito utilizando o controle PWM e um circuito
Ponte H, que permitem o controle de velocidade e direção dos motores.
O enlace RF é conseguido através da montagem de uma placa de circuito
impresso - o módulo XM1201A - que possui transceiver, antena e demais
componemtes necessários para o estabelecimento do enlace RF e disponibilização de
dados para a comunicação com o microcontrolador. Este encontra-se em outra placa de
circuito impresso junto com outros dispositivos como fontes, reguladores, conectores,
e
demais
circuitos
integrados
e
componentes
discretos
transmissão/recepção de dados e controle dos motores DC.
vii
necessários
para
8
1
INTRODUÇÃO
1.1 Motivação
O projeto “Robôs Cooperativos”, que trata de robôs trabalhando em conjunto
para realizar determinadas tarefas, atualmente em desenvolvimento no DEL
(Departamento de Engenharia Elétrica), necessita que haja comunicação sem fio entre
os robôs para que possam ser trocadas informações úteis para a cooperação entre eles.
A comunicação por rádio freqüência apresenta vantagens em relação a outras formas
de comunicação sem fio (por ex. via sinais infra-vermelho ou ultra-som), como maior
largura de banda, maior alcance e menor interferência, sendo assim a solução mais
indicada para esta aplicação.
Cada robô móvel possui dois motores que possibilitam sua movimentação. O
acionamento de cada motor será feito por um sinal PWM, gerado pelo
microcontrolador e enviado ao motor através de um circuito Ponte-H, permitindo
assim, o controle de velocidade e direção dos robôs.
1.2 Descrição do Problema
Desenvolver o hardware de um sistema de controle de um robô móvel com as
seguintes características:
1- Processador de 16 bits;
2- Controle de dois motores de corrente contínua com PWM e com
possibilidade de reversão de movimento, sendo que a corrente máxima deve ser de 2A;
3- Um canal de comunicação usando rádio freqüência com taxas de dados da
ordem de 19200 bps;
4- Baixo consumo.
A placa de controle será projetada, porém, tendo em vista que já foi montada
com sucesso em um projeto anterior [1], não será montada neste projeto. Será usada
para testes, a placa de prototipagem PROTO430, desenvolvida pelo LAI (Laboratório
de Automação Inteligente - UFES) que utiliza o microcontrolador MSP430F149.
9
1.3 Metodologia
Este projeto está relacionado ao trabalho desenvolvido por Ronald van Gorcum
chamado “Cooperative Robot project – The building of the robot ”[1], projeto de
graduação – Universidade de Leeuwarden, Holanda – 2004. Neste projeto foi
construída a estrutura do robô e foram propostas soluções para o controle e para a
comunicação em rádio freqüência, esta porém, não implementada.
O hardware será dividido em duas placas de circuito impresso. Assim, torna-se
possível minimizar a interferência do circuito de acionamento dos motores sobre o
circuito de rádio freqüência.
Sendo alimentado por baterias, o hardware deverá também apresentar baixo
consumo de corrente. Sendo esta, portanto, uma premissa fundamental na escolha dos
componentes que constituirão o hardware do projeto.
1.4 Estrutura do trabalho
No Capítulo 2, será feita uma descrição do sistema contendo a solução proposta,
bem como a escolha dos principais componentes utilizados. No Capítulo 3, será
apresentada uma discussão sobre o projeto do hardware, com o esquemático do
circuito e o layout da placa de circuito impresso. O Capítulo 4, trata do software
utilizado no projeto. Os resultados obtidos serão mostrados no Capítulo 5 e,
finalmente, no Capítulo 6, serão apresentadas as conclusões do projeto.
10
2
DESCRIÇÃO DO SISTEMA PROPOSTO
2.1 Descrição da Solução
Para a realização do projeto, torna-se necessário desenvolver um hardware
contendo um microcontrolador, reguladores de voltagem, circuito para controle dos
motores e Transmissão/Recepção de dados por rádio freqüência.
O hardware será composto de duas placas: A placa 1 (placa de controle) deverá
conter um microcontrolador, interface para acionamento de dois motores DC,
reguladores de voltagem, interfaces BSL, JTAG e RS232 para programação,
depuração e para que possa ser usado como modem de RF e demais componentes
discretos e integrados necessários. A placa 2 (placa de comunicação RF) deverá conter
um transceiver, antena e os componentes discretos necessários para o envio e
recebimento de dados em rádio freqüência.
A figura seguinte mostra o diagrama de blocos simplificado do projeto.
Placa 2
ANTENA
Placa 1
ALIMENTAÇÃO
TRANSCEIVER
PONTE
H
µC
RS 232
BSL
JTAG
M2
Figura 1.1 – Diagrama de Blocos Simplificado
PC
11
2.2 Escolha dos Componentes
Para o projeto do hardware, devemos escolher os componentes a serem
utilizados em cada um dos blocos do diagrama que melhor atendem as premissas do
projeto.
2.2.1 Microcontrolador
O MSP430F149–Texas Instruments– possui arquitetura de 16 bits, canais PWM
e apresenta baixo consumo de corrente, atendento portanto, as premissas do projeto.
Devido à disponibilidade, será utilizada a placa de prototipagem (PROTO430), já
desenvolvida pelo LAI (Laboratório de Automação Inteligente - UFES) que utiliza o
microcontrolador MSP430F149.
2.2.2 Alimentação
Para alimentar o circuito são necessárias uma fonte de 3.6V e uma de 5V que
serão obtidas a partir de uma bateria de 6V.
Os reguladores TPS76901-Texas Instruments- possuem saídas que podem
variar de 1.2V a 5.5V, ajustadas a partir de resistores externos, e garantem boa
estabilidade na voltagem de saída.
Além disso, estes reguladores apresentam baixa corrente quiescente (17uA a
uma carga de 100mA), tornando-os ideais para aplicações em sistemas alimentados a
bateria e que requerem baixo consumo de corrente, como neste projeto.
Uma outra bateria de 12V será a fonte de potência para os motores.
2.2.3 Controle dos Motores
Para o controle dos motores serão usados circuitos Ponte-H e sinais PWM.
Existem circuitos integrados que implementam completamente a função Ponte–H. Os
motores precisam de uma corrente elétrica de aproximadamente 2A, assim, o CI
escolhido foi o TPIC0108B-Texas Instruments- que permite uma corrente de até 3A,
apresenta corrente quiescente de 20uA e proteção contra falhas como sobrecorrente,
sobretensão e sobretemperatura, diagnosticadas através dos pinos STATUS1 e
STATUS2.
12
2.2.4 Comunicação por rádio freqüência
Para a comunicação RF foi escolhido o módulo XM1201A-Xemics- que
contém o transceiver XE1201A, o ressonador RO2101A-RFM, antena impressa e
demais componentes necessários, e, apresenta as seguintes características:
• Opera na banda de 433MHz;
• Usa modulação FSK Half-duplex;
• Taxa de dados de até 64Kbps;
• Apresenta baixo consumo de corrente (8mA máx.);
• Possui um canal de configuração;
• Disponibilidade de informações de projeto;
• Protocolo não definido, possibilitando diversas aplicações.
13
3 DESCRIÇÃO DO HARDWARE
Neste Capítulo será descrita toda parte de hardware do projeto, bem como a
construção do esquemático e layout das placas. Serão descritos cada um dos blocos
que constituem o hardware.
A Figura 3.1 apresenta o diagrama de blocos do hardware desenvolvido. A
seguir, cada um deles será mostrado detalhadamente.
ANTENA
M2
BATERIA
REG3.6V
TRANSCEIVER
REG 5V
PONTE
H
BAT 12V
7
4
H
C
T
1
2
5
µC
M
A
X
3
2
4
3
PONTE
H
M1
Figura 3.1 – Diagrama de Blocos do Hardware
RS 232
BSL
JTAG
14
3.1 PLACA 1 - Placa de Controle
3.1.1 Reguladores de Voltagem
Para que o microcontrolador MSP430F149 opere a 8MHz (máximo
desempenho), é necessário que o mesmo seja alimentado com uma voltagem de 3.6V.
O transceiver pode ser alimentado com voltagens entre 2.4V e 5.5V, portanto
também será alimentado com os mesmos 3.6V, aproveitando assim o mesmo regulador
de voltagem usado para alimentar o MSP.
Para que seja alimentado o circuito de comunicação entre a Ponte-H e o
microcontrolador, é necessário de uma voltagem de 5V.
Para que sejam disponibilizadas estas voltagens, serão usados dois reguladores
TPS76901-Texas Instruments, cujas saídas podem ser ajustadas a partir de resistores
externos da seguinte maneira:
R1 = [(V0/Vref ) – 1] * R2 , onde Vref = 1.224V
Portanto para V0=3.6V, temos:
R1= 330KΩ e R2= 170KΩ
E para 5V, temos:
R1= 520KΩ e R2=170KΩ
Figura 3.2 - Sistema de Alimentação
15
O conector JP2 é feito de maneira que não há a possibilidade de ligação
invertida da fonte externa.
Os conectores JP1 e JP3 são utilizados para escolha do modo de alimentação
por Bateria ou por fonte externa, de acordo com a tabela abaixo. A fonte externa deve
ser conectada no conector JP2.
Jumper
1-2
2-3
Modos de alimentação
Fonte externa
Bateria
Tabela 3.1 – modos de alimentação
3.1.2 Sistema de relógio
O sistema de clock do MSP430F149 permite o uso de um DCO (DigitallyControled Oscillator) interno e dois cristais externos: um cristal de relógio de 32.768
KHz e um cristal de alta freqüência. Essas diferentes fontes de clock podem ser
alternadas, conforme a necessidade, e utilizadas nos periféricos do microcontrolador
(Timer, UART, etc.). Nesse projeto foi utilizado um cristal externo de 8MHz.
O transceiver XE1201 utiliza um oscilador externo de 4MHz.
3.1.3 Interfaces JTAG, RS232 e BSL
A interface JTAG permite a programação da memória flash do
microcontrolador MSP e a depuração do programa gravado no hardware. Este padrão
define um protocolo serial que utiliza cinco pinos (TDO,TDI, TMS, TCK e RST) para
a programação e depuração e estão disponíveis em um conector de 14 pinos. A Figura
3.3 mostra essa configuração.
Figura 3.3 – Interface JTAG
16
A placa disponibiliza interfaces BSL e RS232 que permitem estabelecer uma
conexão com um PC e a programação do MSP com uso de softwares apropriados. Para
tanto é necessária uma conversão de níveis de tensão entre o MSP e porta serial. O
dispositivo usado para interface foi o MAX3243- Texas Instruments, cuja tensão de
alimentação é de 3.6V. A figura 3.3b mostra a interface serial BSL e RS232.
Figura 3.4 – Interface RS 232 e BSL
3.1.4 Ponte-H
Esta parte do Hardware controla os motores. No circuito integrado TPIC0108B,
existem duas entradas IN1 e IN2 que recebem o sinal PWM. Usando estas entradas, o
microcontrolador pode controlar o modo de operação dos motores, como ilustra a
Tabela 3.2.
As duas saídas STATUS1 e STATUS2, indicam o estado das saídas.
Para alimentar os motores, O Circuito Ponte-H precisa de uma fonte de potência
com voltagem de 12V que pode vir diretamente de uma bateria.
IN1
0
0
IN2
0
1
OUT1
Z
LS
OUT2
Z
HS
1
1
0
1
HS
HS
LS
HS
MODO DE OPERAÇÃO
Modo de consumo quiescente
O motor gira no sentido horário
O motor gira no sentido anti-horário
Freio
Tabela 3.2 – Modos de operação dos motores [5]
17
Figura 3.5 – Diagrama de ligação do circuito de controle dos motores [5]
Existe ainda a necessidade de um conversor de nível para que seja possível a
comunicação entre o microcontrolador e o TPIC, uma vez que, este utiliza sinais em
nível TTL e o MSP utiliza sinais de 3.6V. Esta conversão é conseguida com a
utilização do CI 74HCT125-Texas Instruments- que possui quatro chaves internas
controladas por sinais enviados pelo microcontrolador e pelo TPIC0108B. Quando
este sinal está em nível lógico zero, a chave está fechada deixando passar o sinal
conectado em sua entrada que neste caso é zero volt. Se o sinal de controle estiver em
nível lógico alto, a chave fecha fazendo com que a voltagem conectada ao resistor de
pull-up em sua saída, seja aplicada no microcontrolador (3.6V), ou no TPIC (5V),
permitindo assim que os dois dispositivos se comuniquem. Este circuito está mostrado
na Figura 3.6.
18
Figura 3.6 – Esquemático do circuito de controle dos motores
Figura 3.7 – Detalhes internos do TPIC0108B [5]
19
3.1.5 Microcontrolador
O MSP430F149 é um microcontrolador de arquitetura RISC 16bits, de baixo
consumo e apresenta periféricos como conversor A/D, temporizadores e interfaces de
comunicação.
Os sinais do transceiver são diretamente ligados ao microcontrolador. Todas as
portas do MSP podem ser configuradas via software como entradas ou saídas. Será
escolhida a porta 1, pois permite uso de interrupções, que facilitam a programação
para o recebimento de dados do transceiver.
Figura 3.8 – Conexão MSP/móduloXm1201A
A porta serial não pode ser conectada diretamente ao PC pois os sinais estão em
diferentes níveis de voltagem. É necessário então o uso de um conversor de níveis.
Para tanto será utilizado o MAX3243–Maxim.
O MSP possui um módulo de hardware que permite a geração de um sinal
PWM a partir da utilização de um temporizador interno. O temporizador B da porta P4
está disponível e será portanto o utilizado. São necessárias duas portas para cada
ponte-H (IN1 e IN2), totalizando quatro sinais PWM, que são enviados ao circuito
Ponte-H pelos pinos P4.4, P4.5, P4.6 e P4.7 do MSP.
Para receber os dados de Status do TPIC0108B, são utilizados os pinos P5.6,
P5.7, P4.2 e P4.3 configurados como entradas do MSP.
20
Figura 3.9 - Arquitetura interrna do MSP430F149 [2]
3.2 Placa de comunicação RF
3.2.1 Transmissão / Recepção dos dados por rádio freqüência
O módulo XM1201A-Xemics- é composto pelo CI XE1201A, antena,
ressonador, oscilador, componentes discretos utilizados como filtros de banda e é
alimentado pelo regulador de 3.6V. Trabalha com taxa de dados de até 64Kbits/s,
modulação CPFSK – Continuous Phase, 2 level Frequency Shift Keying - e opera na
banda de 433MHz.
O Circuito integrado XE1201A, tem 8 linhas para comunicação com o
microcontrolador. EN: Chip enable. O software do microcontrolador pode desabilitar
(EN=0) o transceiver para reduzir o consumo da bateria. RX/TX: Receive/Transmit. O
módulo pode ser “setado” como receptor (1) ou transmissor (0). TXD: Transmit Data.
Entrada para os dados vindos do microcontrolador que serão modulados e transmitidos
em RF. RXD: Receive Data. Saída para o microcontrolador, dos dados recebidos pela
antena. CLK: Clock Data. Clock gerado para envio de dados para o microcontrolador.
SD: Serial Data. SC: Serial Clock. DE: Data Enable. Este três últimos formam o 3wire bus e configuram as principais funções do CI XE1201A, como a taxa de dados e
modo de funcionamento, através de três registradores internos A, B e C, de 16 bits,
acessados por um registrador de deslocamento que amostra os bits de dados na borda
de subida do sinal de clock SC. Os dois bits nais significativos indicam qual
registrador será acessado.
21
Figura 3.10 – Visão geral da placa de comunicação RF [6]
No modo de transmissão, os dados vindos do microcontrolador pelo pino TXD,
são enviados para o modulador, onde são modulados em um sinal FSK. A freqüência
deste sinal é gerada internamente. O sinal é convertido para um sinal analógico, passa
por um filtro passa-baixa e é então somado ao sinal de 433.92MHZ para em seguida
ser amplificado e aplicado à antena RF.
No modo de recepção, o sinal RF vindo da antena passa por um amplificador de
baixo ruído, é enviado para o quadrature down converter, passa pelo bloco de
cancelamento de auto recepção, que atenua sinais DC e baixas freqüências, segue para
o filtro de banda base passa-baixa, de freqüência de corte de 330KHz, segue para o
amplificador de banda base de 50db de ganho de voltagem, vai para o limitador e
segue para o demodulador FSK, onde é gerada a seqüencia de bits recebidos. O bloco
sincronizador de bit provê o sinal de relógio sincronizado com o sinal recebido para
serem diretamente lidos pelo microcontrolador.
22
Figura 3.11 – Arquitetura interna do XE1201A [6]
3.2.2 Antena
A antena utilizada na placa RF é do tipo loop, retangular e impressa na própria
placa, proporcionando praticidade e baixo custo. Porém, este tipo de antena apresenta
um ganho ruim (entre -20db e -5db) e um largura de banda muito estreita. Isto torna
crítica a sintonia, que deve ser feita através dos capacitores C-Loop1 e C-Loop2, como
mostrado na figura abaixo.
Figura 3.12 – Antena tipo Loop Impressa [7]
23
3.2.3 Espectro do sinal FSK
As Figuras 3.13 e 3.14 mostram, respectivamente, o espectro do sinal FSK
para a transmissão dos bits zero, transmitidos a 433.92MHZ - Fdev (freqüência de
desvio configurada a 125KHz), e para a transmissão dos bits 1, na freqüência de
433.92MHz + Fdev. Estas devem ser as formas de ondas medidas na saída do
transmissor RF do transceiver, e devem ser comparadas com as formas de ondas
recebidas pelo analizador de espectro para se verificar a realização da transmissão dos
bits.
Figura 3.13 – transmissão de bits 0 [6]
Figura 3.14 – Transmissão de bits 1 [6]
24
4 DESCRIÇÃO DO SOFTWARE DE TESTE
O software utilizado foi feito para o teste da trasmissão e recepção de dados
através dos módulos XM1201A. A idéia é construir o software em combinação com as
ISR (rotinas de interrupção) disponíveis no microcontrolador, assim o programa
principal pode ser simples. O software está escrito em linguagem C e foi construido
baseado no programa escrito no projeto “Cooperative Robot Project – The building of
the robot”[1] e encontra-se no Apêndice E do Projeto. Para que sejam testadas a
transmissão e a recepção dos dados pelos módulos XM1201A, o software configura
além de um módulo como transmissor, também um módulo como receptor.
Para a configuração do microcontrolador, algumas rotinas básicas são
necessárias, onde são definidas as portas de entrada e de saída e os modos de operação.
4.1 Configuração do Transceiver ( 3-Wire Bus )
A configuração do transceiver é feita atrvavés dos pinos SC, SD, DE (3-wire
bus). DE diz ao transceiver que há dados sendo transmitidos. Ele fica normalmente
alto. Durante a tranferência destes dados ele deve estar em nível lógico baixo. SC é o
sinal de clock de dados. A cada pulso de clock, na borda de subida, o transceiver lê o
dado no pino SD. A cada transferência, 16 bits são transmitidos, como ilustra a figura
abaixo. Os primeiros dois bits informam em qual registrador estão sendo escritos os
dados relativos à configuração do transceiver: A, B ou C. Os bit seguintes configuram
os modos de operação do transceiver, taxa de recebimento de dados, freqüência de
desvio, potência de saída, freqüência de offset do transmissor, entre outros.
Figura 4.1 – Diagrama de configuração do transceiver [6]
25
A Figura 4.2 mostra o fluxograma da rotina de programação que configura o
transceiver. Quando é gerada uma interrupção, é verificado se existem dados relativos
à configuração a serem enviados ao transceiver. Caso existam, e se for verificado que
este é o primeiro estágio, os dados são lidos do buffer e é habilitada a transmissão
colocando o pino DE em nível lógico zero. Em seguida, enquanto não é atingido o
último estágio (último bit transmitido), os bits são enviados serialmente, colocando-os
no pino SD e elevando o sinal de clock SC. Quando for atingido o último estágio o
pino DE é colocado em nível lógico alto, interrompendo a transmissão, o contador é
zerado e os dados são removidos do buffer.
4.2 Transmissão de Dados
A transmissão dos dados assim como na configuração é feita por interrupção e
utiliza os pinos RX/TX que coloca o transceiver nos modos transmissor(0) ou
receptor(1) e o pino TXD, por onde os dados são serialmente enviados do
microcontrolador ao transceiver.
A Figura 4.3 mostra o fluxograma da rotina de programação que permite o
envio de dados do MSP para o transceiver. Quando é gerada uma interrupção, é
verificado se existem dados a serem transmitidos. Caso existam e se for o primeiro bit
a ser enviado, o transceiver é colocado no modo de transmissão e o dado é lido do
buffer. Em seguida, enquanto não é atingido o último estágio (último bit transmitido),
os bits são enviados serialmente, através do pino TXD. Quando for atingido o último
estágio, o contador é zerado e os dados são removidos do buffer e o transceiver é
colocado no modo de recepção.
26
ISR Timer_A
Data in
Buffer?
no
yes
First stage?
no
yes
Get data from buffer
Give Data enable
Last stage
reached?
yes
no
Send bit?
yes
Make Data Enable
HIGH
no
Put next bit on
Next stage
Rise clock Signal
Reset stage counter
Remove sent
Byte from Buffer
End ISR
Figura 4.2 – Fluxograma para configuração do transceiver [1]
27
ISR Timer_A
no
Data in
Buffer?
yes
Last stage?
yes
no
No
First stage?
Remove sent
byte from buffer
yes
Set toTransmitter mode
Reset Stage Couter
Get byte from buffer
Set to Receiver mode
Put next bit on TX
Next stage
End ISR
Figura 4.3 – Fluxograma de transmissão se dados [1]
4.3 Recepção de dados
Para receber os dados enviados pelo módulo XM1201A, um segundo módulo
XM1201A, foi, através da inclusão no programa de uma rotina, configurado como
receptor. Para a confirmação do recebimento dos dados enviados, um osciloscópio foi
ligado aos pinos RXD e CLKD do módulo receptor, onde foi possível observar os bits
recebidos, sincronizados com o sinal de clock, gerado internamente.
28
5
RESULTADOS
Foram realizados testes para o envio de seqüências de bits “1”, seqüências de
bits “0” e seqüências de bits alternados, através do módulo XM1201A, conectado à
placa PROTO430. Os dados foram recebidos diretamente pelo analizador de espectro
(HP-8593A) através de uma antena (um fio de aproximadamente 10cm) conectado na
entrada “IMPUT 50Ω” e através de um segundo módulo XM1201A, configurado
como receptor. O programa foi carregado no MSP430F149 pela interface BSL da
placa PROTO430, através de um microcomputador no laboratório LAI-2, onde o
software foi compilado. A placa do microcontrolador MSP (placa de prototipagem
PROTO430) e a placa de comunicação RF foram conectadas no LABTEL-2. Através
do analizador de espectro, mostrado nas Figuras 5.1 e 5.2, foi possível observar o
deslocamento do sinal na freqüência de 433.92 MHz – 125 KHz (quando se
transmitem os bits “0”), e 433.92 MHz + 125 KHz (quando se transmitem os bits “1”).
Para observar os dados recebidos pelo módulo XM1201A, configurado como receptor,
um osciloscópio foi ligado aos pinos CLKD e RXD, onde foi possível confirmar a
recepção dos bits, sincronizados com o sinal de clock.
Figura 5.1 – Recepção dos bits “0”
29
Figura 5.2 – Recepção dos bits “1”
Figura 5.3 – Recepção da seqüência alternada de bits “0” e “1”
30
6
CONCLUSÃO
A transmissão e recepção dos bits foi realizada com sucesso, ficando como
sugestão para um futuro projeto, o aperfeiçoamento do software e o detalhamento do
protocolo de comunicação. Tem-se agora um sistema capaz de controar um robô
móvel que permite que haja comunicação RF entre robôs, posibilitando a realização de
tarefas em cooperação a partir de informações trocadas entre si e/ou entre os robôs e
uma central de processamento. Este sistema pode também ser utilizado como modem
de rádio freqüência, além de outras aplicações que utilizem RF. As Figuras 6.1 e 6.2
ilustram o sistema desenvolvido.
Figura 6.1 - Ligações para teste da transmissão dados
Figura 6.2 – Ligação entre a placa PROTO430 e o módulo XM1201A
31
APÊNDICE A – ESQUEMÁTICO DA PLACA 1
32
APÊNDICE B – LISTA DE COMPONENTES DA PLACA 1
Nome
C
C
C
C
C
Q1
Q2
U1
U2
U3
U4
U5
DZ1,DZ2
D3,D4
R1
R2
R
R
R
Tipo
Cap cerâmica
Cap eletrolitico
Cap eletrolitico
Cap eletrolitico
Cap eletrolítico
Cristal
Cristal
MSP430F149
TPIC0108b
MAX3243
TPS76901
CD74HCT125
Diodo Zenner
Diodo
Resistor
Resistor
Resistor
Resistor
Resistor
Valor
0.1 UF
1 UF
4.7 UF
47 UF
100 nF
8 MHz
32768 KHz
1N4148
330K
150K
20K
10K
523K
Encapsulamento
XT49U
PQFP64
SOIC 20
SOIC (DW) 28
5-Pin SOT 23(DBV)
DIL 14
0309
0411
0309
0309
0309
0309
0309
QTD
5
2
2
2
4
1
1
1
2
1
2
2
2
2
1
2
10
2
1
33
APÊNDICE C – ESQUEMÁTICO DA PLACA 2
34
APÊNDICE D - LISTA DE COMPONENTES DA PLACA 2
Nome
U1
Q1
T1
T2
SAW1
C2
C1,C3,C5,C6,
C9,C14,C19
C26
C7, C16
C4,C11,C13,C17,
C8,C18,
C12,C20
C15
C10
C23, CSant1
Csant2
CPant1
CPant2
L1,L2,L3,
L4,L5,L7
L6,L8,L9
Tipo
Transceiver
XTAL Quartz
NPN Transistor
PNP Transistor
SAW Ressonator
Capac. Acoplam.
Capacitor 0805
L10
R6
R1,R7
Indutor 0805
Resistor
Resistor
Capacitor 0805
Capacitor 0805
Capacitor 0805
Capacitor 0805
Capacitor 0805
Capacitor 0805
Trim-capacitor
Capacitor 0805
Capacitor 0805
Capacitor 0805
Capacitor 0805
Indutor 0805
Indutor 0805
Referência
XE 1201A
S0409745
BFQ67
BC808
RO-2101A
805NPO Ni
805NPO Ni
805NPO Ni
805NPO Ni
805NPO Ni
805NPO Ni
805NPO Ni
TZC03Z060A110
805NPO Ni
805NPO Ni
805NPO Ni
805NPO Ni
0805CS120-X
JBX 5%
0805CS180-X
JBX 5%
0805CS560-X
Valor
Encapsulam.
TQFP32
4MHz
SOT 23
SOT 23
SM-2
QTD
1
1
1
1
1
1
7
433,92MHz
10uF
10nF
Smd0805
0,68pF
470pF
1.5pF
2.2pF
4.7pF
100nF
2-6 pF
2.7pF
33pF
22pF
10pF
12nH
SMD0805
SMD0805
SMD0805
SMD0805
SMD0805
SMD0805
SMD0805
SMD0805
SMD0805
SMD0805
SMD0805
SMD0805
4
2
2
1
1
2
1
1
1
6
18nH
SMD0805
3
56nH
43KΩ
110KΩ
SMD0805
SMD1206
SMD1206
1
1
2
1
35
APÊNDICE E – SOFTWARE DE TESTES PARA A COMUNICAÇÃO RF
/*
* Arquivo: xemics_init.c
* Data: 29-08-2006
*
* Programa principal
*
*/
#include <msp430x14x.h>
#include "xemics_functions.c"
void main(void){
init_xemics1201();
//Initialize Xemics transceiver and timer-A for the communication
_EINT();
//Enable interrupts, necessary for 3-wire bus
wait_on_3wire();
//If buffer is empty, the transceiver is initialized
wait_on_3wire_1();
//If buffer is empty, the transceiver is initialized
while(1){
//Send continues the data to the transceiver
}
}
send_by_rf(0xffff);
//Send 16-bits high
send_by_rf(0x0000);
//Send 16-bits low
send_by_rf(0xf0f0);
//Send bits high and low
wait_on_rf();
//Wait till the data is sent by the transceiver
36
/*
* Arquivo: xemics_functions.c
* Data: 29-08-2006
*
* Arquivo com funções para um microcontrolador MSP430F149 controlar um transceiver Xemics 1201A.
* Este arquivo inclui uma inicialização para as IOs do microcontrolador, as rotinas para a transmissão de dados
* e
configura um transceiver como transmissor e um outro como receptor.
* Uma rotina de interrupção baseada no timer-A controla a comunicação com o transceiver.
*/
#include <msp430x14x.h>
#include "xemics_functions.h"
//Used variables
unsigned int w3_tx_buffer[W3_BUFFER_SIZE];
unsigned char w3_p_tx_buffer_rd;
unsigned char w3_p_tx_buffer_wr;
unsigned char w3_bit_counter;
unsigned int w3_int_to_send;
unsigned int w3_1_tx_buffer[W3_1_BUFFER_SIZE];
unsigned char w3_1_p_tx_buffer_rd;
unsigned char w3_1_p_tx_buffer_wr;
unsigned char w3_1_bit_counter;
unsigned int w3_1_int_to_send;
unsigned int rf_tx_buffer[RF_TX_BUFF_SIZE];
unsigned char rf_p_tx_buffer_rd;
unsigned char rf_p_tx_buffer_wr;
unsigned char rf_bit_counter;
unsigned int rf_int_to_send;
37
void init_xemics1201(void){
P1DIR |= XE_TXD | XE_RXTX | XE_SD | XE_SC | XE_EN;
//Choose on witch pins of P1 is a output
P1DIR &=~ XE_RXD | XE_CLKD;
//Choose on witch pins of P1 is a input
P5DIR |= XE_DE | XE_DE1 | XE_SC1 | XE_SD1;
//Choose on witch pins of P5 is a output
P1OUT &=~ XE_TXD | XE_SD | XE_SC;
//Lower 3-wire bus. No data to transceiver
P1OUT |= XE_EN | XE_RXTX;
//Enable transceiver in receiver mode
P5OUT &=~ XE_DE | XE_DE1 | XE_SC1 | XE_SD1;
//No data on 3-wire bus.
w3_p_tx_buffer_rd = 0;
//Reset read pointer of buffer
w3_p_tx_buffer_wr = 0;
//Reset write pointer of buffer
w3_bit_counter = 0;
//Reset bit pointer in value to send
w3_1_p_tx_buffer_rd = 0;
//Reset read pointer of buffer
w3_1_p_tx_buffer_wr = 0;
//Reset write pointer of buffer
w3_1_bit_counter = 0;
//Reset bit pointer in value to send
rf_p_tx_buffer_wr = 0;
//Reset the TX write pointer
rf_p_tx_buffer_rd = 0;
//Reset the TX read pointer
rf_bit_counter = 0;
WDTCTL = WDTPW + WDTHOLD;
//Stop WDT
TACTL = TASSEL1 + TACLR;
//SMCLK, clear TAR
CCTL0 = CCIE;
//CCR0 interrupt enabled
CCR0 = 200;
//Timer value
P1DIR |= 0x01;
//P1.0 output
TACTL |= MC0;
//Start Timer-A in up-mode
38
//Send by 3-wirebus the configuration of the transceiver
send_by_3wire(INIT_REG_A);
//Change this setting in xemics_functions.h
send_by_3wire(INIT_REG_B);
//Change this setting in xemics_functions.h
send_by_3wire(INIT_REG_C);
//Change this setting in xemics_functions.h
//Send by 3-wire bus the configuration of the transceiver for reception
send_by_3wire_1(INIT_REG_A1);
send_by_3wire_1(INIT_REG_B1);
send_by_3wire_1(INIT_REG_C1);
}
void send_by_3wire(unsigned int value){
w3_tx_buffer[w3_p_tx_buffer_wr] = value;
//Write value in buffer
w3_p_tx_buffer_wr = (++w3_p_tx_buffer_wr & W3_BUFFER_MASK);
//Move the write pointer to the next position
}
void send_by_3wire_1(unsigned int value){
w3_1_tx_buffer[w3_1_p_tx_buffer_wr] = value;
//Write value in buffer
w3_1_p_tx_buffer_wr = (++w3_1_p_tx_buffer_wr & W3_1_BUFFER_MASK);
//Move the write pointer to the next position
}
void send_by_rf(unsigned int value){
rf_tx_buffer[rf_p_tx_buffer_wr] = value;
//Write value in buffer
rf_p_tx_buffer_wr = (++rf_p_tx_buffer_wr & RF_TX_BUFF_MASK);
//Move the write pointer to the next position
}
void wait_on_3wire(void){
while(w3_p_tx_buffer_rd != w3_p_tx_buffer_wr);
//Wait till the pointers are the same, on that moment the buffer is empty
}
void wait_on_3wire_1(void){
while(w3_1_p_tx_buffer_rd != w3_1_p_tx_buffer_wr);
//Wait till the pointers are the same, on that moment the buffer is empty
}
void wait_on_rf(void){
while(rf_p_tx_buffer_rd != rf_p_tx_buffer_wr);
}
//Wait till the pointers are the same, on that moment the buffer is empty
39
// Timer A0 interrupt service routine for clocking the data to the Xemics transceiver
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void){
if(rf_p_tx_buffer_wr != rf_p_tx_buffer_rd){
if(rf_bit_counter<=15){
if(rf_bit_counter==0){
//Look if there is data to send
//Look if all the data is send
//Is it the first bit?
P1OUT = P1IN &~ XE_RXTX;
//Set transceiver in transmitting mode
rf_int_to_send = rf_tx_buffer[rf_p_tx_buffer_rd ];
//Read integer from buffer
}
if((rf_int_to_send&0x8000)==0x0000){
P1OUT = P1IN &~ XE_TXD;
//Look at the MSB of the integer
//MSB was a 0, send a 0
}
else{
P1OUT = P1IN | XE_TXD;
//MSB was a 1, send a 1
}
rf_int_to_send = rf_int_to_send<<1;
//Rotate next bit to MSB
rf_bit_counter++;
//Higher the bit counter
}
else{
rf_p_tx_buffer_rd = (++rf_p_tx_buffer_rd & RF_TX_BUFF_MASK);
//Higher the read-pointer
rf_bit_counter=0;
//Reset bit counter
if(rf_p_tx_buffer_rd == rf_p_tx_buffer_wr){
P1OUT = P1IN | XE_RXTX;
}
}
}
//No bits more of this integer to send
//Look if there is no more data in the buffer
//No more data in buffer so set transceiver in receiver mode again
40
// 3-wire configuration for transmission
if(w3_p_tx_buffer_wr != w3_p_tx_buffer_rd){
if(w3_bit_counter==0){
//Look if there is data to send
//Look if it is a new byte to send
//New integer to send, get this one and make the bus ready
P5OUT = P5IN &~ XE_DE;
//Start 3-wire bus communication
w3_int_to_send = w3_tx_buffer[w3_p_tx_buffer_rd];
//Get the integer
}
if(w3_bit_counter < 32){
if(w3_bit_counter & 0x01){
//By an odd number we put a clock pulse on the bus
P1OUT |= XE_SC;
//Give a clock signal
}
else{
//By an even number we put a bit of the data on the bus
P1OUT = P1IN &~ XE_SC;
//Make clock signal low
if((w3_int_to_send&0x8000)==0){
//Place the MSB of the value on the 3-wire bus
P1OUT = P1IN &~ XE_SD;
//MSB was a 0, make SD low
}
else{
P1OUT = P1IN | XE_SD;
//MSB was a 1, make SD high
}
w3_int_to_send = w3_int_to_send<<1;
//Set new bit ready
}
w3_bit_counter++;
}
else{
}
}
P1OUT = P1IN &~ XE_SC;
//Make the clock line low
P5OUT |= XE_DE;
//Stop 3-wire bus communication
w3_bit_counter=0;
//Reset the bit counter
w3_p_tx_buffer_rd = (++w3_p_tx_buffer_rd & W3_BUFFER_MASK);
//Move the read pointer to the next position
41
// 3-wire configuration for reception
if(w3_1_p_tx_buffer_wr != w3_1_p_tx_buffer_rd){
if(w3_1_bit_counter==0){
//Look if there is data to send
//Look if it is a new byte to send
//New integer to send, get this one and make the bus ready
P5OUT = P5IN &~ XE_DE1;
//Start 3-wire bus communication
w3_1_int_to_send = w3_1_tx_buffer[w3_1_p_tx_buffer_rd];
//Get the integer
}
if(w3_1_bit_counter < 32){
if(w3_1_bit_counter & 0x01){
//By an odd number we put a clock pulse on the bus
P5OUT |= XE_SC1;
//Give a clock signal
}
else{
P5OUT = P5IN &~ XE_SC1;
if((w3_1_int_to_send&0x8000)==0){
P5OUT = P5IN &~ XE_SD1;
//By an even number we put a bit of the data on the bus
//Make clock signal low
//Place the MSB of the value on the 3-wire bus
//MSB was a 0, make SD low
}
else{
P5OUT = P5IN | XE_SD1;
//MSB was a 1, make SD high
}
w3_1_int_to_send = w3_1_int_to_send<<1;
//Set new bit ready
}
w3_1_bit_counter++;
}
else{
}
}
}
P5OUT = P5IN &~ XE_SC1;
//Make the clock line low
P5OUT |= XE_DE1;
//Stop 3-wire bus communication
w3_1_bit_counter=0;
//Reset the bit counter
w3_1_p_tx_buffer_rd = (++w3_1_p_tx_buffer_rd & W3_1_BUFFER_MASK);
//Move the read pointer to the next position
42
/*
* Arquivo: xemics_functions.h
* Data: 29-08-2006
*
* Definição das constantes e funções utilizadas.
* Cabeçalho de xemics_functions.c
*
*/
//Defines for chip I/O and buffer sizes
#define XE_EN 0x01
//P1.0 Chip enable
#define XE_SC 0x04
//P1.2 3-wire bus clock
#define XE_SD 0x08
//P1.3 3-wire bus data
#define XE_SC1 0x08
//P5.3 3-wire bus clock
#define XE_SD1 0x04
//P5.4 3-wire bus data
#define XE_RXTX 0x10
//P1.4 Transceiver in Receiver of transmitter mode
#define XE_TXD 0x20
//P1.5 Data transmit pin
#define XE_CLKD 0x40
//P1.6 Receiver data clock
#define XE_RXD 0x80
//P1.7 Data receive pin
#define XE_DE 0x02
//P5.1 Bus data enable
#define XE_DE1 0x10
//P5.2 Bus data enable
#define W3_BUFFER_SIZE 4
//Buffer size for 3-wire bus
#define W3_BUFFER_MASK W3_BUFFER_SIZE-1
//Buffer mask for 3-wire bus
#define W3_1_BUFFER_SIZE 4
//Buffer size for 3-wire bus
#define W3_1_BUFFER_MASK W3_1_BUFFER_SIZE-1
//Buffer mask for 3-wire bus
#define RF_TX_BUFF_SIZE 4
//Buffer size for transmit buffer of transceiver
#define RF_TX_BUFF_MASK RF_TX_BUFF_SIZE-1
//Buffer mask for transmit buffer of transceiver
//Defines for configuring register A of the Xemics transceiver chip
43
#define REG_A 0x0000
//A15, A14: Select register A
#define CM 0x2000
//A13: Control mode bit
#define CC 0x1000
//A12: Internal clock start-up
#define CE 0x0800
//A11: Chip enable
#define TRM 0x0400
//A10: Transmit/Receive mode
#define A9 0x0200
//A9: Demodulator and bit synchronize bypassing
#define A8 0x0100
//A8: Demodulator and bit synchronize bypassing
#define A7 0x0080
//A7: Demodulator and bit synchronize bypassing
#define A6 0x0040
//A6: Demodulator and bit synchronize bypassing
#define A5 0x0020
//A5: Receiver data rate
#define A4 0x0010
//A4: Receiver data rate
#define A3 0x0008
//A3: Receiver data rate
#define A2 0x0004
//A2: Receiver data rate
#define A1 0x0002
//A1: Receiver data rate
#define A0 0x0001
//A0: Receiver data rate
//Defines for configuring register B of the Xemics transceiver chip
#define REG_B 0x4000
//A15, 14: Select register B
#define B13 0x2000
//B13: Offset frequency of the resonator
#define B12 0x1000
//B12: Offset frequency of the resonator
#define B11 0x08004
//B11: Offset frequency of the resonator
#define B10 0x0400
//B10: Offset frequency of the resonator
#define B9 0x0200
//B9: Offset frequency of the resonator
#define B8 0x0100
//B8: Offset frequency of the resonator
#define B7 0x0080
//B7: Offset frequency of the resonator
//No defines for B6-B0 because these bits have always to be zero
44
//Defines for configuring register C of the Xemics transceiver chip
#define REG_C 0x8000
//A15, 14: Select register C
#define C13 0x2000
//C13: Output power
#define C12 0x1000
//C12: Output power
#define DI 0x0800
//C11: Data inversion bit of the received stream
//No defines for C9 because this bit must be zero.
#define C10 0x0400
//C10: test bit
#define TAE 0x0100
//C8: Transmitted output amplifies enable
#define C7 0x0080
//C7: TXD via 3-wire bus
#define C6 0x0040
//C6: Modulator frequency deviation
#define C5 0x0020
//C5: Modulator frequency deviation
#define C4 0x0010
//C4: Modulator frequency deviation - FDEV = 3906.25 * n [Hz]
#define C3 0x0008
//C3: Modulator frequency deviation
#define C2 0x0004
//C2: Modulator frequency deviation - FDEV>DR FDEV<BW
#define C1 0x0002
//C1: Modulator frequency deviation
#define C0 0x0001
//C0: Modulator frequency deviation
#define INIT_REG_A REG_A | CC | CE | A8
//Always clock, Chip enabled, transmitter mode, demodulator bypassed
#define INIT_REG_B REG_B
//No offset
#define INIT_REG_C REG_C | C13 | C12 | TAE | C5 | C10
//+5dBm, amplifier enabled, FDEV = 125 kHz.
#define INIT_REG_A1 REG_A | CM | CC | CE | TRM | A4
//control mode, Always clock, Chip enabled, Receiver mode, data rate
#define INIT_REG_B1 REG_B
//No offset
#define INIT_REG_C1 REG_C | C13 | C12 | TAE | C5 | C10
//+5dBm, amplifier enabled, FDEV = 125 kHz
//Prototypes from functions
void send_by_3wire(unsigned int value);
void send_by_3wire_1(unsigned int value);
void init_xemics1201(void);
void send_by_rf(unsigned int value);
void wait_on_3wire(void);
void wait_on_3wire_1(void);
void wait_on_rf(void);
45
7
REFERÊNCIAS BIBLIOGRÁFICAS
[1] Ronald van Gorkum. Cooperative Robot Project – The building of the robot.
Projeto de Graduação – Universidade de Leeuwarden, Holanda – 2004.
[2] SLAS272F. MSP430F149 Mixed Signal Microcontroller. Texas Instruments –
2004. Disponível em www.ti.com.
[3] SLAU049F. MSP430x1xx Family User´s Guide. Texas Instruments - 2006.
[4] SLVS203E. TPS76901 Ultra Low Power 100mA Low Dropout Linear
Regulator. Texas Instruments – 2001.
[5] SLIS068A. TPIC0108B PWM Control intelligent H-Bridge. Texas Instruments 2002.
[6]
XE1201A
Transceiver
Databook.
Xemics
-
2003.
Disponível
em
www.xemics.com.
[7] Low Power UHF Transceiver XE1201A Datasheet. Xemics - 2002.
[8] Application Note. The XM1201. A module Reference Board for XE1201A.
Xemics – 2003.
[9] SCHS143C. CD74HCT125 High Speed CMOS Logic Quad Buffer, Three
State. Texas Intruments – 2003.
[10] SLLS350L. MAX3243 Multichannel R232 Line Driver/Receiver. Texas
Instruments - 2004.

Documentos relacionados