Archive for the 'Uncategorized' Category

Cargador USB para Li-po de 3.7v

Jueves, febrero 18th, 2010

¿Alguna vez os habéis planteado alimentar vuestro circuito con “algo” que dure más que unas pilas, que sea recargable y siendo barato ofrezca ligereza de peso y una corriente en condiciones?
Pues bienvenidos al mundo de las Li-po o baterías de Polímeros de Litio.
Estas baterías están de moda en los dispositivos electrónicos actuales, ya que siendo ligeras, ofrecen unas prestaciones muy interesantes a un precio muy bueno. Las podemos encontrar en los reproductores de MP3/MP4, teléfonos móviles, dispositivos GPS, minicámaras, y casi todos los gadgets que se precien de ofrecer una duración decente de sus baterías.


Simplemente para trabajar con ellas hay que tener en cuenta un par de normas básicas y con ello podremos alimentar nuestros circuitos durante mucho tiempo.
Las dos cosas fundamentales a tener en cuenta en una Li-po (vamos a ver solo los modelos de 1 celda, ya que es la base de las baterías Li-po) son:

  • No permitir que la carga baje de 3.3v ya que quedaría permanentemente dañada.
  • No doblarla, golpearla, pincharla ni cortocircuitarla ya que llegan a explotar y hacer fuego.

Este enlace, proporciona un interesante manual de uso de las Li-po.
Una forma muy interesante de conseguir baterías Li-po son las baterías de los móviles y MP3/MP4 de última generación (iPhone, iPod son mis favoritas ) en ebay. Son baterías muy ligeras y en el caso de las de los iPhone, ofrecen 1600mAh por 3 euros con envío incluído.

Nuestro circuito se va a encargar de la carga de una celda de 3,7v de Li-po a través del puerto USB.

Es un circuito muy simple, alrededor del MAX1555 y a un tamaño muy reducido. Este circuito es el punto de partida para probar el funcionamiento del MAX1555 y que posteriormente podremos implementar en nuestros diseños alimentados con Li-po de 3,7v y en el que necesitaremos añadirr un monitor de tensión ( una de las entradas analógicas de un PIC, por ejemplo) para evitar la caída por debajo de los 3,3v que nos dañe irreversiblemente la batería.
Posee un led que se ilumina durante la carga y que una vez llegado a los 4v se apaga dando por concluído el proceso de carga.
La carga se realiza a 3,3v y 100mA al hacerse por el USB. Es posible una forma de carga más rápida, usando la entrada DC (patilla 4 del MAX1555 no implementada en este circuito) y que se realizará a 350mA, pero desde una alimentación externa, ya que esto colapsaría el bus USB pudiendo llegar a dañarlo.

Esquema

El circuito cumple con la Appnote recogida en el datasheet de Maxim y sólo necesita de dos condensadores de 1uF. Se le añade un led de monitorización de carga completa con su resistencia limitadora.

Pcb

La Pcb es muy pequeña, 16mmx12mm y la mayor parte de su tamaño lo ocupa el conector USB. El led es de tamaño 0603 y la resistencia y los condensadores 0805, lo que da una idea del poco espacionecesario para implementarlo en un diseño electrónico.
La salida Vlipo va directamente conectada a nuestra batería de una celda de 3,7v

En acción

Tenemos una Li-po con su carga baja y procedemos a cargarla. En este caso el medidor de tensión (es un modelo usado para monitorizar Li-po en RC-modelismo)nos da una lectura de 3,83v:

El proceso de carga con el led encendido:

Y una vez terminado, el led se apaga:

Observamos que con la carga completa, la batería nos ofrece una tensión de 4,17v.

Ya la tenemos lista para alimentar nuestro circuito particular. Evidentemente es una solución ideal para circuitos que trabajen a 3,3v y siempre añadiendo un regulador de tensión tipo LDO como el MAX8881 que nos ofrece un Vdropout típico de tan solo 0,36v dejándonos un margen perfecto para la batería.
Este tipo de baterías, son tambien una solución ideal para añadir a aeromodelos FPV para alimentar el GPS, el circuito de OSD o sistemas de iluminación led en helicópteros y aviones RC ya que la batería ofrece muy poco peso, algo fundamental en estos aparatos.

Salu2,
Droky.

Descargas

Teclado capacitivo Mtouch 16 sensores

Martes, octubre 20th, 2009


Hola otra vez, no ha pasado mucho tiempo a ver si las ideas siguen fluyendo así.
Últimamente habéis visto un par de cosas relacionadas con los sensores capacitivos en este blog y no os podéis creer las calenturas de cabeza que me han dado. Por fin he llegado al final del trayecto con ellos y me han quedado claras algunas cosas (EMHO) que quiero dejar plasmadas aquí.
El tema de los sensores capacitivos está un poco de moda, desde que Apple decidió incorporarlos a sus iPod, las placas de las cocinas eliminaron los paneles frontales y en algunas zonas públicas se incorporaban como una superficie interactiva y fácil de limpiar (sin bordes ni pulsadores).
Últimamente han aparecido unas cuantas empresas que han puesto a nuestra disposición controladores para este tipo de sensores y en ellos he estado inmerso en los últimos tiempos.

Antecedentes
El primer contacto, fue con la serie 10F de Microchip, en concreto con el 10F206 con buenos resultados al final, pero con el inconveniente de la necesidad de implementar un firmware (con su correspondiente programación del micro) para un solo sensor:

Personalmente, creo que para un solo sensor la mejor solución es el QT100A de Quantum. No hay que cargarle ningún firmware, y la sensibilidad depende de una pequeña red RC. Muy simple de implementar. Es el que he usado para el juego de la vida y en una pequeña PCB prototipo de dos sensores:

Con los buenos resultados del QT100A me decidía probar algo “más grande” y de la misma marca, el Qt1081 controlador de 8 sensores.
Lo más dificultoso de manejar es su encapsulado 32QFN. Es diabólico para los que hacemos las cosas desde nuestra casa :) y un inconveniente a mi entender es su procesamiento “paralelo” de los sensores. Es decir, tenemos 8 entradas de sensado y 8 salidas y además necesitamos implementar 8 redes RC que nos dan la sensibilidad y nos modifican el burst del pulso que hace la detección.
Esta era la placa controladora con su teclado:

Los resultados, además de ser un poco engorroso el tema de las RC, no fueron lo que yo esperaba. Demasiada circuitería en el diseño:
Controladores QT1081, PIC para gestionar las I/O con la USART, alimentación y conversor de niveles. Para mi aplicación en particular eran demasiados componentes.
Para lo que sí lo he encontrado muy interesante es para teclados de reducidadas dimensiones tipo iPod por su elevada integración y tensión de trabajo. Además una PCB de tamaño reducido acabaría con los problemas que yo me encontré en estas dimensiones.

A través de un amigo de un foro conocí los MPR084 de Freescale. Se antojaban interesantes. Con conexión I2C eran más manejables y además son configurables por software.
La programación es muy sencilla, pero despues de un par de intentos, no se adaptaban a mi diseño:

  • Necesitaba hacer un cambio de niveles de tensión del bus I2C y el PCA9306 me metía demasiado ruido.

Hice dos pruebas con planos de masa y sin ellos ( doble cara y simple cara ) y no me resultaron satisfactorios. Vamos que no me funcionó como yo quería.
Me releí los datasheets y las AppNotes, pero creo que las dimensiones de la PCB eran un problema .
A simple cara con la controladora:

Y a doble cara con plano de masa:

Finalmente, y después de haber pasado por un seminario de Microchip con el amigo Desig, de toquetear las placas con sus mtouch y sus placas de metacrilato sobre ellas, me dije que había que intentarlo.
El candidato, el PIC16LF727, un TQFP44 dedicado a sensores táctiles (además de otras aplicaciones), 3.3v de alimentación y de la serie nanoWatt de bajo consumo (60nA a 2v en standby!).

El diseño
El diseño, como manda Microchip. Esta vez a doble cara y con plano de masa para aislar pads.
Los componentes alrededor del PIC… un condensador de 100nF de desacople y una resistencia al MCLR (costumbre de la casa).
Todo está hecho en programación, los ajustes, los delays, los antirebotes , el control de pulsación…
El esquema es como sigue:

Le he añadido como comunicación serie un convertidor TTL-USB en la propia placa que al mismo tiempo me proporciona a través del FT232RL los 3.3v necesarios para alimentarlo.
Así, un solo cable y conexión USB.
Tambien incorpora una conexión de alimentación externa (3.3v) seleccionable con un jumper de soldadura y si no se quiere implementar el conversor, pues existen dos pads en la PCB que son el TX/RX de la USART del PIC16LF727

La PCB

Pues como ya comenté en un párrafo anterior, a doble cara para hacer que el plano de masa me bloquee cualquier falsa detección sobre las pistas de los pines de sensado en la cara inferior.
Lo he probado y de verdad que es muy eficiente siempre que el threshold esté bien calibrado.
Esta es la PCB:

Resultado Final

El resultado ha superado todas mis expectativas en cuanto a sencillez de diseño, integración y calibrado.
La placa ha quedado así:

Y le he incorporado un panel de metacrilato de unos 2mm haciendo sandwich con una carátula (impresa en papel foto con una impresora de inyección EPSON) y la PCB resultando esto:

He escrito un pequeño programa para monitorizar el funcionamiento del teclado y ajustar desde el PC el threshold de los sensores y su histéresis y el resultado lo podéis ver en este pequeño vídeo.
Ha quedado un poco oscuro… a ver si alguien me regala una cámara HD :) y hago mejores vídeos

Salu2,
Droky

Juego de la vida – Game of Life (Conway)

Lunes, septiembre 28th, 2009

Lo primero, demasiado tiempo sin escribir por aquí, muchas ideas pero poco tiempo para plasmarlas.
Esta vez me traigo un ejercicio de programación típico, el “juego de la vida” de John Horton Conway.

Citando a la wikipedia:
“El juego de la vida es el mejor ejemplo de un autómata celular; es en realidad un juego de cero jugadores, lo que quiere decir que su evolución está determinada por el estado inicial y no necesita ninguna entrada de datos posterior. El “tablero de juego” es una malla formada por cuadrados (“células”) que se extiende por el infinito en todas las direcciones. Cada célula tiene 8 células vecinas, que son las que están próximas a ella, incluso en las diagonales. Las células tienen dos estados: están “vivas” o “muertas” (o “encendidas” y “apagadas”). El estado de la malla evoluciona a lo largo de unidades de tiempo discretas (se podría decir que por turnos). El estado de todas las células se tiene en cuenta para calcular el estado de las mismas al turno siguiente. Todas las células se actualizan simultáneamente.

Las transiciones dependen del número de células vecinas vivas:

* Una célula muerta con exactamente 3 células vecinas vivas “nace” (al turno siguiente estará viva).
* Una célula viva con 2 ó 3 células vecinas vivas sigue viva, en otro caso muere o permanece muerta (por “soledad” o “superpoblación”). “

Como otros circuitos anteriores, intenté utilizar los mínimos recursos posibles y aprovecharlos al máximo. En este caso han sido:

  • PIC12F683
  • LCD Nokia3310
  • 2x QT100A

Como no disponía de memoria suficiente en el PIC, he dividido la pantalla con una rejilla y así convertir la matriz de 84×48 pixels en una matriz de 25×17 (405 celdas) que sí me caben en la RAM del PIC.
El siguiente problema ha sido al calcular la generación siguiente, ya que necesitaba dos matrices de RAM, una para la generación de entrada y otra para la de salida. Lo he solucionado calculando la generación siguiente línea a línea y usando una pila tipo LIFO de 2 niveles sobre 2 variables de tipo vector.
Los elementos se disponen de forma manual, con uno de los sensores capacitivos y de forma pseudoaleatoria. El programa en el modo de colocación de individuos, ejecuta una interrupción del TIMER1 cada 0.406ms (así solo cuenta de 0 a 405 que son los elementos de la matriz ) y cada vez que se toca el sensor, lee el valor del timer y activa la celda correspondiente.


El otro sensor inicia la simulación.
Durante la simulación es posible pausarla y una vez pausada, podemos continuar o reiniciar.



El circuito

El circuito es muy simple, como he usado componentes de bajo consumo, está alimentado por una pila de botón tipo CR2032.
El PIC se conecta al LCD nokia y sólo es necesario un condensador de 47uF para la Vout del LCD.
Los QT100A únicamente incorporan 1 condensador de desacoplo de 100nf y una red RC que ajusta la sensibilidad del sensor.

La PCB

A una cara y con todos los componentes en SMD. Existen 4 jumpers por la cara posterior.
En el diseño, no he tenido en cuenta que el encapsulado WSON6 de los QT100A posee un pad tipo GND en el centro y he tenido que cubrir con rotulador las pistas que pasan bajo el encapsulado para evitar cortocircuitos.
EL interruptor ON/OFF lo he aprovechado de un MP3 portable.

Simulacion con Proteus

Por si queréis ver como funciona la simulación, os dejo los ficheros de ISIS para Proteus.
Necesitaréis instalar el modelo de simulación del componente “LCD 3310″.
Lo podeis descargar de:
http://www.tanu-sha.narod.ru/nokia3310.html

Aquí os dejo un vídeo del funcionamiento:

Salu2

Descargas

Acelerómetro con matriz de leds

Lunes, diciembre 1st, 2008

Bueno, después de un tiempo y embarcado en un par de proyectos que no me dejan hacer mucho más, os dejo un video con una placa de pruebas usando:

  • 1x PIC16F688
  • 3x 74HC595 (registros de desplazamento con latches)
  • 1x acelerómetro 3 ejes MMA7260 (PCB de Surestore)
  • Matriz de leds 5×19 ( contruida con 3 matrices de 8×8 leds bicolores)

Esto es lo que puedo enseñaros por ahora… resulta muy divertida la pelotita :)

Mi agradecimiento a Alejandro Conty por su inestimable ayuda con los vectores de velocidad y las físicas de la pelotita.
Y a Xavier Belanche por ponerme en contacto con él ;)
Bueno, pasad por alto el lio de mi mesa :)
Salu2.

Sensor capacitivo mTOUCH

Lunes, septiembre 29th, 2008

Últimamente los MP3, MP4, electrodomésticos y demás aparatos están implementando controles sin botones mecánicos, usando sensores capacitivos. El más famoso es la click-wheel del iPOD que ya incorporan algunos teléfonos móviles.
Esta última semana la he pasado haciendo pruebas con este tipo de sensores para un futuro proyecto que tengo en marcha y he aprendido mucho sobre lo que puedo y no puedo hacer con ellos sin gastar mucho dinero en placas de evaluación.
En un principio he barajado 2 alternativas:

  • Sensores capacitivos de Quantum (QT100A)
  • Sensores capacitivos mTOUCH de Microchip

Como no disponía de los QT100A de Quantum, me he decidido por los mTOUCH y cual ha sido mi sorpresa al descubrir que mTOUCH abarca todo tipo de capacidades sensoras de tipo capacitivo aplicadas a los PIC. Realmente es simplemente software aplicado a unas trazas de diseño PCB un tanto particulares.
El sensor más básico posible con los PIC está basado en el 10F206 que es un PIC de 6 patillas ( en el caso del encapsulado SOT-23) que incorpora un comparador interno, la base de la detección en este caso particular.
La capacidad de deteccion se consigue convirtiendo el comparador interno del 10F206 en un oscilador de relajacion. La salida de este comparador, es usada para cargar/descargar la capacidad que se forma en el sensor ( pad del circuito ) y se usa como entrada del comparador, la tension de 0,6v del BandGap del micro:
(fuente microchip.com)

El programa del pic, disponible en Microchip, lo que hace es usar el Timer0 como contador de frecuencia y luego compara el valor leido con un valor almacenado para una pulsacion que genera una frecuencia de entre 100kHz-400kHz, asi a grandes rasgos. Todo está muy explicado en la Appnote AN1202 de Microchip.
Yo he modificado el programa, para que se encienda el led cuando se pulse ( al revés que la aplicación de Microchip).
Antes de pasar al circuito, me gustaría dar un tirón de orejas a los fabricantes de PCBs fotosensibles por su manía de variar los barnices que hacen que con el método habitual, salgan chapuzas que nos obligan a calibrar otra vez insoladoras y tiempos de insolado…

El circuito

El circuito está basado en la appnote de microchip y gira en torno al 10F206 SOT-23.
Hay un condensador de desacoplo en la alimentación del circuito, que puede ser de 3v dadas las características de bajo consumo del PIC.
Una resistencia de Pull-up de 10k en el MCLR del PIC y otra de 220k para completar el circuito RC del oscilador.
Un diodo tipo BAS16W o 1N4148 es usado para cargar el condensador parásito con la tensión de salida del comparador. En el circuito, como no disponia de ningún BAS16W, opté por un schottky de conmutación rápida de un aparato reciclado que tenía por casa.

LA PCB
Esta parte ha sido la más complicada de desarrollar, ya que no encontré demasiada información sobre diseños con mTOUCH.
Las directrices de Microchip, están recogidas en la AppNote AN1102 y las más importantes a tener en cuenta son:

  • El pad del sensor no importa la forma, pero debería ser de al menos el área de un dedo
  • El pad debería estar lo más próximo posible a la patilla del PIC
  • Pistas de GND cercanas reducen la sensibilidad, pero pueden ser imprescindibles para aislar un sensor de otro.
  • Pads sin pistas de GND próximas producen efectos indeseados en la detección así como un exceso de sensibilidad.
  • Si se usa un material tipo Plexiglás o cristal para cubrir el sensor, éste añade su constante dieléctrica al condensador parásito que se forma y hace que se reduzca la sensiblidad con respecto al uso del aire como dieléctrico.
  • Unos 2mm de plexi o cristal dan buenos resultados de sensibilidad.
  • En el caso de PCBs de doble cara, es preferible que los pads vayan en la cara opuesta al PIC y otros componentes, y aislados de éstos.
  • En algunos circuitos puede ser necesario aislar la alimentación del PIC del resto del circuito, para evitar mal funcionamientos. Usar por ejemplo un regulador LDO.

Después de todo esto, me he puesto manos a la obra y esto es lo que ha salido, un montón de placas que no funcionan y una evolución de la que si funcionó hasta lograr un diseño que pudiera se implementado sobre otra placa:


La primera placa que ha funcionado, y creo que ha sido de suerte, ya que se me olvidó la pista de GND del PIC, un plano de masa rodea al sensor, pero en intentos sucesivos, los sensores aislados con un plano de masa no han dado resultado, carecían de sensibilidad.

Luego vino el plano de masa solo sobre la circuitería:

El diseño final:

Y el más pequeño para integrar en otras PCBs:

Un video de la primera prueba. Podeis ver el cablecillo que une al PIC con GND.
En este caso la sensibilidad es buena y el aislamiento del resto del circuito tambien:

Otra de las pruebas fue con una PCB sin plano de masa y con dos sensores. Uno de ellos estaba dentro de un lazo de VDD y los resultados fueron opuestos.
El sensor1 ofrece una sensibilidad desmesurada que lo hace inútil para una aplicación de botonera y por el contrario, el sensor2 envuelto en el lazo de VDD no ofrece casi sensibilidad. Mirad los videos:

Así que despues de muchas pruebas, la PCB final con conector ICSP y led 0603 es esta:

Y el diseño para implementar en un circuito, es este, con el ICSP en forma de testpads y sin led:

Estos son los fotolitos:

Finalmente resaltar el efecto de reducción de sensibilidad introduciendo un dieléctrico entre el sensor y el dedo que hace variar la capacidad parásita.
Aquí lo podeis observar con un placa de 1,8mm de espesor de algo que parece plástico-plexiglás:

Se le pueden encontrar aplicaciones muy interesantes a este tipo de sensores, sobre todo integrando paneles al aire libre o en cajas estancas sumergibles…
El inconveniente mayor es que hay que programar los PICs y en el caso de los sensores de Quantum esto no es necesario, así que si es para una integración a baja escala, sería necesario programarlos todos antes ( saldría muy caro pedirlos ya programados ) bien antes de soldar o añadiendo conectividad ICSP para hacerlo sobre placa.

Salu2,
Droky.

Descargas


Copy Protected by Tech Tips's CopyProtect Popup Images .