El acelerómetro digital BMA180

El acelerómetro digital de tres ejes BMA180 es producido por Bosch y se puede conseguir en Sparkfun. Puede medir aceleraciones tanto dinámicas como estáticas con una gran precisión. Debido a sus tres ejes perpendiculares da la posición absoluta en un campo de gravedad. Este sensor es un arreglo de dos chips. Un ASIC evalúa los tres canales de salida del elemento sensor micromecánico que funciona de acuerdo al principio de capacitancia diferencial.
El BMA180 proporciona una salida digital completa de 14 bits por medio de la interfaz SPI o I2C. Con el comando apropiado se puede elegir entre el rango completo de aceleraciones que va de 1g hasta 16g. Un filtro de segundo orden Butterworth que va desde los 10Hz hasta los 600Hz es incluido, que proporciona un pre-acondicionamiento de la señal medida. La resolución típica a 2g es de 0.5mg y una precisión por debajo de los 0.25° en aplicaciones de medida de la inclinación.  El consumo de corriente típico es de 650μA a 2.4V en el modo estándar. Además, el sensor puede ser puesto en modo de bajo consumo, donde informa al sistema hosts de un cambio en la aceleración por medio del pin de interrupción. Esta función puede ser utilizada para despertar (wake-up) al sistema host, del modo sleep.

Tiene las siguientes características:

     Acelerómetro de tres ejes con sensor de temperatura integrado.
     Interfaces digitales: 4 hilos SPI, I2C, pin de interrupción.
     Bajo consumo de corriente: 650μA incluso operando en modo de 14 bits.
     Rangos de aceleración programables (1g, 1.5g, 2g, 3g, 4g, 6g, 8g, 16g).  
     Filtros digitales integrados: 8 filtros pasa bajos, 1 filtro pasa altos, 1 filtro pasa b. 
     Interrupciones programables: wake-up, baja aceleración, alta aceleración, etc.
     Salto de muestras programable (para no sobrecargar el microcontrolador).
     14 bits o 12 bits ADC.
     256 bits EEPROM para datos de calibración y de usuario.
     Bajo voltaje de operación: +1.62V a +3.6 para VDD.
     Rango de temperatura: -40°C a 85°C.
    No se necesitan componentes externos, excepto para el filtrado de la fuente.
Se utiliza en la medición de inclinación, vibración y movimiento de:

    Dispositivos de navegación.
    Robótica.
    Reconocimiento de movimientos.
    Dispositivos apuntadores.
    Brújulas electrónicas.
    Teléfonos celulares.
    Dispositivos de manos.
    Periféricos de computadora.
    Realidad virtual.
    Medidores de inclinación de gran precisión (medidores de nivel).
A continuación un resumen de las funciones, modos de operación y registros más importantes.

Diagrama a bloques

Modos de operación

El sensor BMA180 es capaz de trabajar en diferentes modos de operación:
Modo de operación estándar
En el modo de operación normal, los registros pueden ser leídos y escritos, además de que los datos de la  EEPROM pueden ser cambiados. Hay cuatro sub modos de operación, de bajo consumo, de bajo ruido, y dos modos de operación intermedios. En modo de bajo consumo la operación es normal, con una gran resolución. En bajo ruido, el consumo es mayor pero la resolución es mejor.
Modo sleep
Al poner un bit especial de control a uno, el sensor se pone en modo sleep. La comunicación es posible pero reducida. El modo sleep se puede usar cuando no es necesario que el sensor este activo todo el tiempo. Ajustando el duty cycle (pasando del modo sleep a modo normal y de nuevo a modo sleep) se ahorra energía.
Modo Wake-up
El BMA180 proporciona la posibilidad de despertar (wake up) un sistema cuando valores de aceleración específicos son detectados. Entonces el sensor permanece en modo de ultra bajo consumo y periódicamente evalúa los datos de aceleración. Si la aceleración esta por encima de un cierto umbral, se genera una interrupción que acciona al sistema maestro. El modo wake-up es utilizado para aplicaciones de ultra bajo consumo, donde la aceleración puede generar un cambio de estado de actividad en el sistema host.

Conversión de datos

Datos de aceleración
Los datos de aceleración son convertidos por un ADC de 14 bits y están en formato de complemento a dos. Estos datos se dividen en dos registros de 8 bits LSB y MSB. Es posible leer solamente un solo registro o los dos (16 bits con 14 bits de datos y uno que indica que hay datos listos para ser leídos.
Hay dos formas de saber si hay datos nuevos disponibles:
  • El bit0 del LSB del registro de datos es un indica cuando se han leído o no los datos.
  • El pin de interrupción puede ser configurado para indicar cuando existen datos por leer.

Funciones lógicas internas

El circuito integrado puede informar al sistema host acerca de condiciones específicas, (por ejemplo, nuevos datos disponibles, o que el umbral de las aceleraciones han sudo superados) poniendo el pin de interrupción en alto, incluso si la comunicación con la interfaz no se lleva a cabo (no necesita un microcontrolador para funcionar). Esta característica puede ser usada como un indicador de baja aceleración, para despertar al microcontrolador, o que existen nuevos datos.
La ejecución de las interrupciones puede ser programada por medio de bits de control. Así se puede tener un sistema hecho a la medida.

Criterio para la interrupción por una baja en la aceleración (low-g)

Para la detección de una baja en la aceleración (low-g), los valores absolutos de todos los ejes son investigados (criterio global). Una situación de baja aceleración ocurrirá cuando todos los ejes caen por debajo del valor de umbral ( por ejemplo, en situaciones de caída libre). El pin de interrupción puede ser puesto en alto si el valor se mantiene por debajo del umbral por un mínimo de tiempo. La duración para la activación puede ser programado.
La interrupción por baja aceleración puede ser programada mediante un bit de control que esta almacenado en la memoria no volátil, de esta forma se  puede modificar la EEPROM para convertirlo en un valor por default, aunque también se puede cambiar en cualquier momento, sin necesidad de grabar los datos.
El restablecimiento de la interrupción por baja aceleración puede ser completada por medio de la bandera de interrupción (Latched INT) o por la señal de aceleración en sí (validando una “histéresis” programable) cuando deja de superar el umbral.
Criterio de aceleración alta (high-g)
Para indicar eventos de aceleración alta, los umbrales pueden ser programados de la misma forma que para el criterio de baja aceleración, con su bit de control para la activación, la duración, y el comportamiento de la interrupción.  Los criterios de alta y baja aceleración pueden ser combinados con lógica <OR>.
Detección de la inclinación (o detección de cualquier movimiento)
El algoritmo “cualquier movimiento” puede ser usado para detectar cambios en la aceleración. Así proporciona una evaluación relativa de las señales de aceleración. El criterio es como una gradiente de umbral de la aceleración a través del tiempo. En consecuencia se pueden distinguir entre eventos rápidos con una fuerte dinámica inercial (por ejemplo un golpe), cambios instantáneos en el balance (por ejemplo, caídas) y hasta pequeños cambios (el toque de un dispositivo móvil).
Gracias al gran ancho de bando y a la rápida repuesta de los dispositivos MEMS, el BMA180 es capaz de detectar situaciones donde los golpes alcancen hasta 1200Hz y 16g.
Detección de golpecitos (tap sensing)
La característica detección de golpecitos (tap sensing) esta muy relacionada con la característica detección de inclinación/cualquier movimiento. La detección de golpecitos es la generación de una interrupción, si dos detecciones de movimiento son detectadas en poco tiempo. La detección de golpecitos es también conocida como doble clic. Es ampliamente utilizada en laptops para abrir aplicaciones de software por medio del doble clic en el touch pad (a nivel de sistema).
Modo alerta
Es posible combinar el criterio cualquier movimiento con los criterios baja aceleración y alta aceleración para mejorar el tiempo de reacción. Por ejemplo en la detección de caída libre. Si el modo alerta es activado, los contadores de baja aceleración y de movimiento cuentan mucho antes que lo que contarían si no estuviera activado.

Asignación de la memoria global: Información general

La asignación de la memoria global del BMA180 proporciona tres niveles de acceso:
Región de la memoria Contenido Nivel de acceso
Registros operacionales Registros de datos, registros de control, registros de estado, configuración de las interrupciones. Acceso directo por la interfaz serial.
Registros de configuración por default Valores por default para los registros operacionales, valores de aceleración y compensación por temperatura. Acceso bloqueado por default; Se habilita su acceso mediante un bit de control en los registros operacionales mediante la interfaz serial.
Registros reservados de Bosch Sensortec Registros internos de compensación. Protegidos.
La memoria del BMA180 esta hecha en varias arquitecturas físicas Básicamente el BMA180 usa una registros que se encuentran en una memoria volátil para funcionar. La parte volátil de la memoria puede ser cambiada y leída rápidamente. Parte de esta memoria volátil (“imagen”) es una copia de la memoria no volátil (EEPROM).
La EEPROM puede ser usada para establecer los valores por default para la operación del sensor. La escritura en la EEPROM es de escritura indirecta solamente. Los valores de los registros de la EEPROM son copiados a los registros imagen después del encendido o de un reinicio por software.
Todos los registros operacionales y por default son accesibles a través de la interfaz serial con un protocolo estándar:
Tipo de registro
Función del registro
Comando
Volátil/no volátil
Registro de datos —    Identificación del chip
—    Datos de aceleración, temperatura
Lectura
Lectura
no volátil
volátil
Registro de control —    Activación de auto test, reinicio por software, cambiar a modo sleep, etc. Lectura/
Escritura
volátil
Registro de estado —    Estado de las interrupciones y del auto test
—    Bytes de estado reservados para el usuario
Lectura
Lectura/
Escritura
volátil
volátil
Registro de configuración —    Configuración de los parámetros de operación (rango, ancho de banda, modo, etc.)
—    Configuración de las interrupciones
Lectura/
Escritura
Lectura/
Escritura
volátil

volátil
EEPROM —    Configuración de los parámetros de funcionamiento y de interrupciones
—    Valores de calibración
—    Almacenamiento de datos de usuario
—    Memoria reservada de Bosch Sensortec
Escritura

Escritura
Escritura
Escritura
no volátil

no volátil
no volátil
no volátil

    Todos los registros EEPROM son duplicados en sus correspondientes registros de la imagen.
    La escritura en los bits no usados (unused) no tienen efecto en el sensor; la lectura de estos registros conduce a un nivel indefinido.
    Los registros imagen son usados para descargar el contenido de la EEPROM para puedan interactuar con las funciones del dispositivo. Los registros 20h al 3Fh corresponden a los bytes de la EEPROM del 40h al 5Fh.

Registros

Hay 5 tipos de registros en el sensor – prueba, control, imagen, estado y de datos. Todos los registros son de 8 bits. Los registros de la imagen y de control son accesibles en modo de escritura/lectura por el usuario.
  • Los registros de prueba son reservados para Bosch. No son accesibles al usuario.
  • Los registros de control son usados para configurar el modo de funcionamiento del circuito.
  • Los registros de estado contienen información útil sobre los modos de alerta/interrupción y para saber si nuevos valores de aceleración estan disponibles desde la ultima lectura.
  • Los registros imagen contienen los valores de la EEPROM y son descargados después del encendido, por reinicio por software o cuando el comando update_image es enviado al BMA180. La escritura en estos registros no tiene ningún efecto sobre el contenido de la EEPROM. Los registros imagen pueden ser accesados directamente para calibrar el dispositivo sin escribir nada en la EEPROM en caso de que sean necesarios varios intentos para la calibración. Los registros imagen también pueden ser usados para sobrescribir la configuración del BMA180 definida en la memoria EEPROM.
  • Los registros de datos contienen los 3 valores de aceleración, los valores de temperatura y la información acerca del chip.

Diagramas de conexión

SPI
I2C

Stand alone

Orientación: polaridad de la aceleración

Si el sensor es acelererado en las direcciones indicadas, los canales correspondiente entregarán una señal de aceleración positiva (aceleración dinamica).
Ejemplo: Si el sensor esta en reposo o en un movimiento uniforme en un campo de gravedad de acuerdo a la figura de abajo, las señales de salida son:
  • ± 0g para el canal X
  • ± 0g para el canal Y
  • ± 1g para el canal Z
La siguiente tabla muestra todas las señales de salida correspondientes de Ax, Ay, Az cuando el sensor esta en reposo o con un movimiento uniforme en un campo de gravedad bajo la presunción de un campo de vector de gravedad de arriba hacia abajo como se muestra arriba.

1 comentarios:

Unknown dijo...

Muy buena información

Publicar un comentario