Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

02/04/2009 #1


ATMEGA bootloader dudas
Hola a todos!
Quiero comprar una placa con un ATMEGA168 (como el que lleva el famoso arduino) y tengo severas dudas.
http://www.sparkfun.com/commerce/pro...oducts_id=9184

1.- Entiendo que el bootloader es un pequeño programa (2k) que se graba en la memoria del micro y se ejecuta cada vez que el micro se resetea encargado de esperar el programa que se envía por USB o serie para guardarlo en la flash del micro. Normalmente los ATMEGA vienen sin este programita. Para grabarlo por primera vez es necesario un ISP(In System Programmer) o se puede construir un programador paralelo (unir las salidas ICSP con unas resistencias a un cable paralelo).
¿Es correcto hasta aquí?

2.- ¿Qué bootloader me recomendáis para un ATMEGA168? Quisiera cargar programas por el puerto serie (no por USB) cómo se indica esto en el bootloader.

3.- Y finalmente, ¿qué compilador para Windows me recomendáis para este micro?

Cualquier sugerencia será bien recibida,

Gracias de antemano
02/04/2009 #2
Moderador

Avatar de Chico3001

1.- es completamente correcto,

2.- Si quieres usar el sistema de Arduino vas a tener que usar el botloader de Arduino, lo puedes descargar de su misma pagina, existe un kit para modo serial solo que parece que esta descontinuado, aun asi estan todos los diagramas en la pagina

http://arduino.cc/en/Main/ArduinoBoardSerial
http://arduino.cc/en/Main/ArduinoBoa...alSingleSided3
http://arduino.cc/en/Hacking/Bootloader

3.- No lo he usado pero recomiendan mucho el IDE de Arduino, tambien existen maneras de enlazar otros compiladores con el sistema de Arduino o si vas a terminar comprando un programador te recomiendo el AVR Studio....


3.-
02/04/2009 #3


Muchas gracias por contestar. Una última pregunta. Un micro de 8-bits de CPU como el ATMega 168 ¿crees que es una buena solución para implementar un filtro de Kalman? Es un algoritmo en el que hay que transponer matrices de 3x3...
02/04/2009 #4
Moderador

Avatar de Chico3001

No conozco ese filtro pero la respuesta depende del numero de datos que vayas a manejar, la veolcidad y la precision requerida... me imagino que si se puede implementar con algunas limitaciones y en el 80% de los casos el micro va a estar dedicado a hacer calculos....
02/04/2009 #5


Pues mira, navegando un poco me encontre con una implementacion de un filtro kalman con atmega 168.
http://hackec.blogspot.com/2009/04/kalman-y-avr.html
Parece que funciona. El codigo esta disponible en ese enlace tambien. Por que no lo pruebas y luego comentas tus experiencias

Salu2
03/04/2009 #6


Pues qué deciros... en primer lugar que muchas gracias, y en segundo lugar os mantendré informaciónrmados. El enlace al código es para un filtro de kalman de 5dof y mi intención es hacer uno de 6dof, pero va a resultar de gran ayuda.

Me resultaba extraño que Sparkfun tenga en su web dos placas para realizar unidades inerciales de 6dof tan diferenciadas en cuanto al microcontrolador: una de ellas tiene un LPC2138 ARM7 que es un micro de 32-bit de CPU y trabaja a 60MHz y (importante) 512kb de memoria flash:
http://www.sparkfun.com/commerce/pro...oducts_id=8454

y en cambio la otra (que cambia la comunicación que es Zigbee en vez de bluetooth) utiliza un ATMega-168 que es un micro de 8-bit de CPU y trabaja a 10MHz y 10kb de flash:
http://www.sparkfun.com/commerce/pro...oducts_id=9184

por eso os escribía, porque me parece abismal la diferencia entre dos micros encargados de hacer la misma tarea. ¿Es sólo un tema de economía? Porque lo cierto es que la placa del ATMega es mucho más barata. Pero el LPC2138 sólo vale unos 12 eurillos...

¿cuánto estimáis que ocupa el programilla que encontró macraig en el post anterior? porque necesitaría incrementarlo para hacer el sexto grado de libertad.

Un saludo
03/04/2009 #7


la placa del LPC2138 es más del triple de cara...
03/04/2009 #8


Y una última duda rápida. En caso de coger la plaquita del ATMega-168 me gustaría integrar 3 magnetómetros,que son tres sensores que devuelven una señal analógica que debo digitalizar. Se me acumulan un total de 6 canales analógicos (ya cubiertos por los sensores propios de la plaquita)+otros 3 canales de los tres sensores que introduzco.
El ATMega168 sólo dispone de 8 canales ADC, ¿qué me recomendáis, emplear un ADC externo para los 3 sensores que introduzco o una solución más sencilla como es multiplexar la entrada de un ADC del micro? Con la segunda opción tendría 7 canales cubiertos y para el octavo tendría dos entradas multiplexadas que el micro decide cuál elige.

Un saludo
03/04/2009 #9
Moderador

Avatar de Chico3001

El precio es debido al tipo de procesador, un LPC es un ARM de 32 bits, que realiza calculos mas precisos y rapidos que el modesto ATMEGA a 8 bits, Si te fijas ambos sistemas parecen usar sensores con convertidor analogico/digital incluido asi que se evitan el uso de los convertidores internos y liberan carga al procesador que pueden usar en la realizacion de mas calculos

Respecto al ADC que te falta es un problema, si pones uno externo es mas carga para el micro, mientras que si pones un multiplexor analogico la señal se puede degradar un poco, ademas recuerda que el Mega no tiene 8 convertidores... en realidad tiene solo uno multiplexado internamente y su resolucion es algo pobre (10 bits) asi que si pones un multiplexor estarias multiplexando la señal 2 veces, desconozco que impacto tendria esta pequeña degradacion en tu sistema

No dices cuantos datos por segundo quieres procesar ni de que precision, pero en lo personal trataria de hacer lo mismo que Sparkfun, conseguiria sensores con convertidor integrado que ayudaran a liberarle carga al micro, otra opcion seria usar un convertidor externo multiplexado, un micro dedicado a la toma de datos de los convertidores, y usar otro micro para realizar las operaciones matematicas

Vi el codigo del filtro y usa puro numero flotante, que es el tipo de numero mas pesado de procesar para un micro de 8 bits, lo ando compilando para ver cuanto ocupa pero no me extrañaria que el micro solo tenga tiempo de procesar el filtro y mandarlo por via serial para su posterior utilizacion, expandir el eje que te falta debe ser posible, pero eso va a decrementar severamente el numero de muestras por segundo que quieres procesar
06/04/2009 #10


Gracias Chico3001, la verdad que la idea de emplear un LPC2138 parece tener más consistencia para mi aplicación, ya que necesito obtener los datos, con su correspondiente procesado y filtrado para captura de movimiento, por lo que la velocidad es un aspecto bastante importante; así como la precisión de los datos.
Y gracias también por aclararme el punto correspondiente al ADC del ATMega-168. Este micro más sencillo, parece no tener ningún problema para hacer un sistema de 5dof; pero el hecho de necesitar 9 sensores (en lugar de 6), y el hecho de tener mayor carga computacional para un sistema de 6dof parece que hace más consistente el hecho de emplear un micro más potente (como el LPC2138 o un M3 cortex). Además no hay gran diferenecia en precio.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.