Download brujula cmps03

Document related concepts

Buffer triestado wikipedia , lookup

Motorola 68HC11 wikipedia , lookup

Serial Peripheral Interface wikipedia , lookup

MSP430 wikipedia , lookup

System Management Bus wikipedia , lookup

Transcript
BRUJULA CMPS03
La brújula digital CMPS03 es un sensor de campos magnéticos que una vez calibrado ofrece una
precisión de 3-4 grados y una resolución de décimas. Tiene dos interfaces, mediante pulsos
temporizados (modulación en anchura), o bien por medio de un bus I2C, Este sensor magnético
esta específicamente diseñado como sistema de navegación para robots. La brújula está basada
en los sensores KMZ51 de Philips que son lo suficientemente sensibles como para captar el campo
magnético de la tierra. Usando dos de estos sensores colocados en angulo de 90 grados, permite
al microprocesador calcular la dirección de la componente horizontal del campo magnético natural.
NORTE
CONEXIONADO Y FUNCIONAMIENTO

PIN 1, VCC
▫
SE DEBE ALIMENTAR CON 5 VDC

PIN 9, GND

PIN 7, 50/60 HZ, 50 HZ (PUESTA A CERO), 60 HZ (PUESTA A UNO).
▫

ESTO ES DEBIDO A UNA DESVIACIÓN ERRÓNEA DE UNOS 1,5º CAUSADA
POR EL CAMPO GENERADO POR LA RED ELÉCTRICA, CON LA
COMPENSACIÓN SE CONSIGUE DISMINUIR EL ERROR A TAN SOLO 0,2º. EL
PIN SI TIENE UN RESISTENCIA INTERNA DE PULL UP, POR LO QUE SI SE
DEJA SIN CONECTAR, FUNCIONARA A 60 HZ
PIN 6, CALIBRACIÓN POR PULSADOR
▫ PARA EFECTUAR LA CALIBRACIÓN SOLO ES NECESARIO LLEVAR ESTE PIN
A CERO POR UN INSTANTE, CUADO LA BRUJULA ESTA APUNTANDO A
CADA PUNTO CARDINAL. ESTE PIN TIENE UNA RESISTENCIA DE PULL UP,
POR LO CUAL UNA VEZ CALIBRADA LA BRUJULA, ESTE PIN SE PUEDE
DEJAR AL AIRE.



PIN 4, PWM
▫ LA BRUJULA ENTREGA UNA SEÑAL DE PWM PROPORCIONAL AL ANGULO,
QUE SE MANEJA ENTRE: 1MS (0º) HASTA 36,99 MS (359,9 º), 100 US POR
CADA GRADO MAS 1MS DE TARA, PERO LA SEÑAL PERMANECE BAJA POR
65 MS, LO QUE QUIERE DECIR QUE EL PERIODO DE LA SEÑAL ES DE 65 MS
+ EL ANCHO DE PULSO DE LA SEÑAL QUE INDICA EL ANGULO.
PIN 3, SCL
▫ SCL ES LA LINEA DE RELOJ DEL BUS I2C
PIN 4, SDA
▫ LINEA DE DATOS I2C
NOTA: ES IMPORTANTE PONER UNA RESISTENCIA DE 47 K ENTRE EL PIN 3, 4 Y VCC
COMO MEDIR LA SEÑAL DE PWM
EL IMPUT CAPTURE ES EL METODO MAS INDICADO PARA MEDIR LA SEÑAL DE PWM, EL
INPUT CAPTURE ES UN MUDULO DEL RELOJ DE LOS MICROCONTROLADORES QUE SE
ENCARGA DE MEDIR EL PERIODO DE LAS SEÑALES QUE INGRESAN A EL PIN.
PROTOCOLO I2C
EL BUS I2C, ES UN ESTÁNDAR QUE FACILITA LA COMUNICACIÓN ENTRE
MICROCONTROLADORES, MEMORIAS Y OTROS DISPOSITIVOS CON CIERTO NIVEL DE
"INTELIGENCIA", SÓLO REQUIERE DE DOS LÍNEAS DE SEÑAL Y UN COMÚN O MASA. FUE
DISEÑADO A ESTE EFECTO POR PHILIPS Y PERMITE EL INTERCAMBIO DE INFORMACIÓN
ENTRE MUCHOS DISPOSITIVOS A UNA VELOCIDAD ACEPTABLE, DE UNOS 100 KBITS POR
SEGUNDO.
LA METODOLOGÍA DE COMUNICACIÓN DE DATOS DEL BUS I2C ES EN SERIE Y
SINCRÓNICA. UNA DE LAS SEÑALES DEL BUS MARCA EL TIEMPO (PULSOS DE RELOJ) Y
LA OTRA SE UTILIZA PARA INTERCAMBIAR DATOS.
DESCRIPCIÓN DE LAS SEÑALES
SCL (SYSTEM CLOCK) ES LA LÍNEA DE LOS PULSOS DE RELOJ QUE SINCRONIZAN EL
SISTEMA.
SDA (SYSTEM DATA) ES LA LÍNEA POR LA QUE SE MUEVEN LOS DATOS ENTRE LOS
DISPOSITIVOS.
GND (MASA) COMÚN DE LA INTERCONECCIÓN ENTRE TODOS LOS DISPOSITIVOS
"ENGANCHADOS" AL BUS.
FUNCIONAMIENTO DEL BUS I2C
LAS LÍNEAS SDA Y SCL TRANSPORTAN INFORMACIÓN ENTRE LOS DISPOSITIVOS
CONECTADOS AL BUS. CADA DISPOSITIVO ES RECONOCIDO POR SU CÓDIGO
(DIRECCIÓN) Y PUEDE OPERAR COMO TRANSMISOR O RECEPTOR DE DATOS.
ADEMÁS, CADA DISPOSITIVO PUEDE SER CONSIDERADO COMO MASTER O SLAVE.
EL MASTER ES EL DISPOSITIVO QUE INICIA LA TRANSFERENCIA EN EL BUS Y GENERA LA
SEÑAL DE CLOCK.
EL SLAVE (ESCLAVO) ES EL DISPOSITIVO DIRECCIONADO.
LAS LÍNEAS SDA (SERIAL DATA) Y SCL (SERIAL CLOCK) SON BIDIRECCIONALES,
CONECTADAS AL POSITIVO DE LA ALIMENTACIÓN A TRAVÉS DE LAS RESISTENCIAS DE
PULL-UP. CUANDO EL BUS ESTÁ LIBRE, AMBAS LÍNEAS ESTÁN EN NIVEL ALTO.
LA TRANSMISIÓN BIDIRECCIONAL SERIE (8-BITS) DE DATOS PUEDE REALIZARSE A
100KBITS/S EN EL MODO LA CANTIDAD DE DISPOSITIVOS QUE SE PUEDEN CONECTAR AL
BUS ESTÁ LIMITADA, SOLAMENTE, POR LA MÁXIMA CAPACIDAD PERMITIDA: 400 PF.
Registros
La brújula tiene un total de 16 bytes de registros, algunos de los cuales forman registros de 2 bytes
tal y como puede verse en la siguiente tabla:
Registro Función
0
Numero de Revisión del Software
1
Dirección. en 1 byte 0-255 para 0 - 360º
2,3
Dirección. en 2 bytes 0-3599 para 0 - 359,9º
4,5
Test interno señal diferencial sensor 1
6,7
Test interno señal diferencial sensor 2
8,9
Test interno, valor de calibración 1
10,11
Test interno, valor de calibración 2
12
Sin usar, devuelve 0
13
Sin usar, devuelve 0
14
Sin usar, devuelve 0
15
Comando de calibración, escribir 255 para calibrar
El registro 0 es la Revisión del software que actualmente es el 8. El registro 1 es la dirección. En
grados convertida en un valor entre 0 y 255 y que puede ser muy útil en ciertas aplicaciones donde
resulta complicado utilizar la escala de 0 a 360 grados que requiere dos bytes y que está
disponible en los registros 2 y 3 (el 2 es el más significativo) con un valor que va entre 0 y 3599
que equivale a 0 -359,9º. Los registros 4 a 11 son de uso interno y del 12 al 14 no se usan, por lo
que no deberán leerse con el fin de no consumir el ancho de banda del bus I2C. El registro 15 se
usa para calibrar la brújula.
CALIBRACIÓN CON I2C
Ese Método consiste en escribir 255 en el registro 15 del módulo por cada uno de los cuatro puntos
cardinales. El valor 255 es borrado internamente cada vez que se completa la calibración Los
puntos de calibración pueden hacerse en cualquier orden, pero siempre es necesario calibrar los 4
puntos. Por ejemplo:
1
Apunte
el
circuito
hacia
el
Norte.
Escriba
2
Apunte
el
circuito
hacia
el
Este.
Escriba
3
Apunte
el
circuito
hacia
el
Sur.
Escriba
4 Apunte el circuito hacia el Oeste. Escriba 255 en el registro 15
255
255
255
en
en
en
el
el
el
registro
registro
registro
15
15
15