sábado, 25 de febrero de 2012

Librerías de retardos para PIC12F, 16F y 18F

En los microcntroladores PIC se usan muchos los retardos muy pequeños para manejos de LCD, antirebotes, parpadeos de Leds por poner algunos ejemplos. En esta sección hice algunas librerías de retardos para distintas frecuencia de reloj como puede ser de 4, 8, 10, 16 y 20 MHz. Todo ello gracias a este generador de retardos por vía Web. También los hay de programas de escritorio.

La mejor librería de retardos que he visto en ASM es el libro "MICROCONTROLADOR PIC16F84. Desarrollo de proyectos". Es de libre distribución los ejemplos y hay muchos en su Web ejemplos con el simulador de PIC como el Proteus.



La librería se llama RETARDOS.INC, es muy famosa y utilizada por los novatos y no tan novatos. Sin embargo, está diseñada para usarlo a 4 MHz de frecuencia del osciladore externo de cuarzo.

Para su facilidad, tiempo y comodidad puedes descargar las librerías que más necesites.

Descargar:
ZIP 28.4 KB
ZIP 28.4 KB
ZIP 28.4 KB

viernes, 24 de febrero de 2012

Consolas, videjuegos y modding

En esta sección se centra proyectos, documentación, información de interés, modificación de consolas (Modding), etc sobre consolas o videojuegos de cualquier marca, modelo y época.

Consolas:

En proceso...


jueves, 23 de febrero de 2012

¿Y piensa que no será capaz de escribir código? Piénselo dos veces...

element14, Microchip y Matrix presentan el nuevo PIC18 Flowcode Developers Kit.

element14 ha unido sus fuerzas con Microchip y Matrix para presentar el nuevo PIC18 Flowcode Developers Kit.

Este innovador desarrollo en cuanto a kits demostrativos ha sido diseñado para ofrecer una solución rápida y fácil al diseño electrónico basado en Flowcode, uno de los lenguajes de programación gráficos para microcontroladores más potentes del mundo.

La plataforma de desarrollo se basa en un PIC18F26J50 de Microchip de baja potencia y 8 bits, que integra sensor de temperatura, sersor táctil y potencímetro, sirviendo de rápida ayuda a la hora de verificar programas diseñados con Flowcode.

Fuente:
http://www.elektor.es/noticias/y-piensa-que-no-sera-capaz-de-escribir-codigo.2071975.lynkx

 

element14 y Microchip aceleran el desarrollo con Ethernet gracias al PIC32 Multimedia Developers Kit

Nuevos desarrolladores PIC32 multimedia que aceleran el diseño de aplicaciones con Ethernet 10/100, e incorporan manuales de diseño de fácil comprensión

 

Orientado a aplicaciones con Ethernet 10/100, los nuevos PIC32 Multimedia Developers Kits de element14 (la primera comunidad electrónica social de Premier Farnell) y Microchip, ofrecen soporte de fácil acceso para la rápida evaluación y diseño de proyectos de desarrollo ingenieriles.

Ya está disponible a los clientes en element14 desde el  23 de enero, a un precio exclusivo por un periodo de dos meses.

Están optimizados para diseños multimedia como el desarrollo con audio, gráficos y pantallas táctiles, e incorporan un PIC32 Ethernet Starter Kit y una Multimedia Expansion Board (MEB).


lunes, 20 de febrero de 2012

Trunksx64-Blog: Por fin disponible interface para el Pickit3...!

Trunksx64-Blog: Por fin disponible interface para el Pickit3...!: El Pickit-3 es la tercera versión del archi-conocido programador de Microchip de bajo costo, el cual ha sido muy criticado ya que supone un...

A estas altura de la vida. ¿Cómo vez el PicKit 3 actualmente?

Que saquen un PicKit 4 controlado con PIC32.

domingo, 19 de febrero de 2012

jueves, 9 de febrero de 2012

MMA153F: Sensor Magnético de Giro (180 grados)

Las estrellas fulgurantes de estos tiempos, cuando hablamos de sensores de posición y/o desplazamiento, son los que utilizan medios magnéticos de detección, a partir de un imán permanente móvil y un circuito integrado, encargado de interpretar el movimiento del imán. MultiDimension Technology Co., ha lanzado a la venta el MMA153F, un sensor de rotación  que posee cualidades que otros competidores, de su misma gama, no ofrecen. Este sensor de giro está diseñado como para entregar en su salida una señal senoidal con una amplitud de hasta el 80% de la tensión de alimentación y es capaz de cubrir una rotación completa de 180 grados, con un consumo ultra-bajo de 7uW. Sin dudas, un sensor para tener en cuenta en tus futuros desarrollos.


  • Tal como te anunciamos en el encabezado, el sensor de giro o “de ánguloMMA153F presenta una posibilidad de medición de ángulos de hasta 180 grados de libertad, devolviendo en su salida (diferencial) una señal senoidal con una amplitud del 80% de la tensión de alimentación y un consumo energético casi despreciable, ubicado en el orden de los 7uW, lo que lo convierte en un aliado ideal para trabajos donde los ahorros energéticos deben ser importantes. Diseñado con tecnología TMR (Tunneling Magnetoresistance), este sensor magnético de un solo eje de rotación, produce una tensión de salida que es sinusoidalmente proporcional al ángulo del campo magnético aplicado en el plano transversal del sensor, es decir, en su corte o sección plana. El sensor MMA153F utiliza un diseño de puente de Wheatstone, que incluye cuatro elementos sensores TMR, capaces de producir la mejor salida de tensión pico a pico de señal para dispositivos de su clase (80%); beneficio que elimina la necesidad de amplificación posterior en muchas aplicaciones. Adicionalmente, demuestra una estabilidad térmica excelente desde los -40°C hasta los 125°C, gracias a la precisión de la tecnología TMR, utilizada para la construcción del puente de Wheatstone, que compensa la excursión de la tensión de salida contra los cambios en la temperatura ambiente.
    Una capa (layer) es fija e invariable mientras la otra intenta seguir el magnetismo externo - MMA153F Una capa (layer) es fija e invariable mientras la otra intenta seguir el magnetismo externo
    La tecnología TMR, utilizada en los MMA153F, se componen de dos capas magnéticas ubicadas una a cada lado de una barrera aislante. Una capa ferro-magnética es “fija" (pinned layer) y no es afectada por el campo magnético externo, mientras que la otra, es una "capa libre" (free layer) que adquiere la magnetización externa y busca alinearse en forma paralela al campo magnético aplicado. Debido a esto, el efecto TMR produce una resistencia que es proporcional  a la diferencia relativa entre las orientaciones de magnetización entre las capas fijas y libres provocando de este modo, que la salida del sensor proporcione una medida de la orientación del campo magnético. En una aplicación típica para “sensar” el giro de un eje, el campo magnético externo es producido por un pequeño imán cercano a la superficie del MMA153F y separado, como mencionamos antes, por una pequeña distancia denominada “entrehierro”. Con esta configuración mecánica, la salida del MMA153F se puede utilizar para proporcionar una medida del ángulo de rotación, la velocidad de la misma y la aceleración del eje.
    El efecto TMR produce una resistencia que es proporcional a la diferencia relativa entre las orientaciones de magnetización entre las capas fijas y libres.
    Según las especificaciones del fabricante, este circuito integrado es funcional con tensiones de alimentación que van desde 1Volt hasta 6Volts (o Voltios). Esta característica favorece la disponibilidad de opciones para el desarrollador, ya que permite su inclusión en sistemas embebidos de 3,3Volts, 5 Volts y hasta en los actuales (y cada vez más presentes) procesadores que trabajan a 1,8Volts. El campo magnético útil con que se puede operar este dispositivo abarca una amplia gama de valores que se extienden desde los 60 a los 400 Oe (1 Oe (Oersted) = 1 Gauss en el aire = 0.1 Mili-Tesla = 79.8 Amper/metro), que permite obtener mediciones de precisión con una buena tolerancia en la distancia de “entrehierro” entre el imán móvil y el sensor.
    Tensión senoidal que podemos lograr a la salida del MMA153F  - MMA153F Tensión senoidal que podemos lograr a la salida del MMA153F

    ¿Por qué los sensores deben ser magnéticos?

    La robótica, la mecatrónica y todos aquellos sistemas electro-mecánicos que se desarrollan en la actualidad, llevan consigo una conjunción de elementos eléctricos y mecánicos que, luego de algunos meses (semanas, días, horas) de uso, comienzan a presentar diferentes tipos de problemas relacionados con la perfecta “simbiosis” que debe existir entre la mecánica y la electrónica utilizadas. Por ejemplo, en un actuador que debe encargarse de devolver una posición mecánica de un eje que rota sobre sí mismo (como es el caso visto en este artículo), o una pieza que se traslada de un espacio a otro, debe existir un sistema electrónico capaz de interpretar este movimiento y devolverlo en forma de señales eléctricas. Los resultados no siempre son los esperados ya que en los sistemas mecánicos, el rozamiento entre partes provoca un desgaste de piezas que no se puede evitar (solo atenuar) y que termina por malograr el sensor. Los sistemas de detección óptica, es decir, un haz de luz que se encargue de leer un encoder digital o un sensor lineal de movimiento, sucumben ante el la suciedad ambiental y las inclemencias del medio ambiente donde se encuentre instalado. Por lo tanto, lo aconsejable siempre es la utilización de sistemas de detección magnética para evitar rozamientos, obtener inmunidad a la suciedad y alcanzar un sistema de trabajo, casi ideal, libre de todo agente externo (o acción interna) que pueda dañar el conjunto sensor al poco tiempo de su desarrollo y puesta en servicio. La gente de MultiDimension Technology Co., así lo entiende y su excelente producto, el MMA153F, es una muestra fiel de esta idea de trabajo.

    Fuente:
    http://www.neoteo.com/mma153f-sensor-magnetico

MC33064/MC34064: Sensor de baja tensión

Este sensor está muy lejos de ser un producto nuevo en el mercado, pero es un dispositivo muy útil, empleado en los sistemas electrónicos basados en microcontroladores, en particular, orientado a  dispositivos que deben trabajar por sobre los 5Volts. Por debajo de una tensión “ajustada en fábrica (4,59V)”, el MC33064/MC34064 activa un terminal de salida que puede ser utilizado para múltiples propósitos y el más empleado, en circuitos embebidos, es para activar las funciones de RESET de un microcontrolador. Por supuesto que este dispositivo brinda posibilidades de acceder a muchas aplicaciones más, pero en este artículo trabajaremos con él como un sensor de bajo voltaje, ideal para sistemas basados en microcontroladores. Si a medida que avanza el artículo las cosas se complican, no te asustes y continúa, el final puede ser inesperadamente lógico.

Desmontando componentes, preparándolos para reciclar y re-utilizar en diversas aplicaciones, me encontré en una vieja lectora de tarjetas magnéticas (que me regaló Jukinch), muchos elementos interesantes de los cuales llamaron mi atención dos y los veremos en acción en este artículo de NeoTeo. El primero es un LCD alfanumérico de 20 caracteres por dos filas con conector lateral, luz de fondo (backlight) tradicional de color verde suave y caracteres negros. La organización de los pines es la que estamos acostumbrados a ver y usar para este tipo de pantallas LCD, en sus diferentes versiones de cantidad de caracteres y renglones. La conexión fue muy sencilla con una adaptación precaria, pero eficiente, en la entrenadora NeoTeo que muchos de ustedes poseen, donde utilizamos el PIC 18F2550. Luego de soldar un par de cables a los pines de conexión del LCD (WM-C2002-1GLYd) y generar un programa muy sencillo para su ensayo, obtuvimos señales de vida muy interesantes ya que el tipo de letra es claro, grande y atractivo para la vista. Realmente, un elemento que será muy preciado para éste y para cualquier montaje futuro, aquí en NeoTeo.
LCD 20 X 2 reciclado en la entrenadora NeoTeo - MC33064 LCD 20 X 2 reciclado en la entrenadora NeoTeo
El segundo componente destacado y sobre el que haremos un pequeño, pero interesante desarrollo para aquellos que no lo conocen, es el “detector de baja tensiónMC33064 que anunciamos en el título de este artículo. A este dispositivo también se lo puede encontrar con la característica MC34064 y es el mismo dispositivo, con la salvedad que el primero está preparado para trabajar entre -40°C y +85°C (o hasta +125°C), mientras que el segundo se especifica para operar entre 0°C y 70°C de temperatura. El funcionamiento de este circuito integrado (de tres pines y encapsulado TO-92 en nuestro caso), el MC33064, es tan elemental y sencillo que no necesitaría demasiadas explicaciones, sin embargo, realizando adecuados arreglos de circuitos, puede ser muy útil para muchas aplicaciones que van más allá de simple detector de bajo voltaje. Además, durante los ensayos de funcionamiento, descubrimos y comprobamos algunas cosas que nos llamarán a una pequeña reflexión final en el artículo.
De todos modos, no nos adelantemos a los hechos y vayamos, paso a paso, observando algunas características de este detector de baja tensión. Concebido para trabajar con una tensión de 5Volts (o Voltios) en su alimentación (aunque soporta hasta 10V, según su hoja de datos), encontramos en el interior del encapsulado un divisor resistivo que entrega una referencia de tensión a un comparador de voltaje y éste se encarga de contrastar esta tensión entregada, respecto a una referencia fija y estable de 1,2Volts (o Voltios). Cuando el divisor interno de tensión entrega un potencial menor a la de la referencia fija, el comparador cambia de estado, cuando esta tensión se supera, regresa al estado inicial de funcionamiento. Lógico comportamiento de un comparador de tensión o voltaje.
Diagrama interno del MC33064/MC34064 - MC33064 Diagrama interno del MC33064/MC34064
Dentro del comparador (el triángulo que ocupa la parte central) encontramos un símbolo nuevo para muchos en forma de doble letra “S” y que representa un funcionamiento particular del comparador. “Histéresis” se llama esta funcionalidad y posee características que, podríamos decir, lo hacen “inteligente” al comparador. Como bien dijimos antes, la tensión “en las entradas del comparador” se verifican a 1,2Volts, sin embargo, no cambiará de estado en 1,20001V y en 1,19999V, quedando en 1,2V, en un estado “indefinido”.
El sensor MC33064 recuperado y su distribución de pines - MC33064 El sensor MC33064 recuperado y su distribución de pines
Para evitar esto que terminamos de mencionar: “un estado indefinido”, existen los circuitos que poseen histéresis y en este caso, trabaja de la siguiente manera: cuando en la entrada de tensión (Input) descendemos a menos de 4,59V el comparador cambiará de estado y cuando subimos por encima de 4,61V hará lo mismo, pero a la inversa. Cuando tenemos en la entrada más de 4,61Volts el transistor interno del MC33064 no conduce y en el pin RESET tendremos tensión (estado alto), provista por una resistencia de polarización (pull-up) externa. En cambio, cuando la tensión (Input) desciende a menos de 4,59Volts, el circuito “satura y pone a conducir el transistor interno” y la tensión en el pin RESET se hace cero (Colector y Emisor se cierran “casi” como un interruptor ¿recuerdas?). Observa que los acontecimientos no ocurren en 4,6Volts sino entre dos valores separados, para evitar el antes mencionado “estado indefinido”.  Si lo hicieran en 4,6Volts, el circuito estaría cambiando de estado en forma permanente, sería un intermitente subiendo y bajando. Por este motivo, “debe bajar por un lado y subir por otro”.  ¿Más fácil aún para comprender? Veamos un gráfico.
"Ventana" de histéresis donde actúa el MC33064/MC34064 - MC33064 "Ventana" de histéresis donde actúa el MC33064/MC34064
Para comprobar este funcionamiento, haremos entonces una pequeña placa para colocarla en la entrenadora NeoTeo y acompañarla de un sencillo programa (que encontrarás al final del artículo) para utilizarlo en la entrenadora, con el LCD de 20 caracteres, y que permita variar la tensión desde 0 a 5Volts, con un pequeño resistor variable (preset). Lo que haremos entonces, será variar la alimentación al MC33064, observar el comportamiento del pin RESET de este dispositivo “al pasar por los puntos mencionados en la hoja de datos del circuito integrado” y en función de ese cambio de estado, encenderemos un LED en el pin RC6 de la placa entrenadora. Toda la variación de tensión será vista en el LCD y allí agregaremos algunas leyendas de texto y otras funcionalidades al sistema. Por ejemplo, marcaremos el sector de tensiones donde se produce la histéresis (también llamada “ventana”) encenderemos un LED verde cuando estemos por encima de esta “porción” y uno rojo cuando estemos por debajo. Cuando estemos dentro de la ventana se encenderán los dos LEDs y el auxiliar, en RC6, que lo hará gobernado por el MC33064, mientras que a los dos de nuestra pequeña placa de ensayos, los manejaremos por instrucciones en el programa. Todo esto, tan lindo, prolijo y colorido ¿se cumplirá en la práctica real?
  • Placa agregada a la entrenadora para variar la alimentación al MC33064 y hacer la experiencia - MC33064 Placa agregada a la entrenadora para variar la alimentación al MC33064 y hacer la experiencia
  • La misma vista anterior, con el agregado de una transparencia del PCB utilizado - MC33064 La misma vista anterior, con el agregado de una transparencia del PCB utilizado
El resistor variable que utilizamos en los ensayos, y que vemos en las imágenes superiores, resultó muy bueno para las variaciones entre 0 y 5Volts a la vez que fue útil para observar las mediciones del ADC del PIC y contrastarlas con un multímetro comercial. Sin embargo, tuvimos algunas complicaciones al momento de encontrar la ventana de histéresis entre los dos valores de activación del comparador interno del MC33064, ya que estos puntos se encontraban en un recorrido ínfimo del cursor. Para resolver este inconveniente, reemplazamos el preset utilizado en los ensayos iniciales, de variación “gruesa”, por uno multi-vueltas, del mismo valor y que ya hemos visto en otros montajes, aquí en NeoTeo, como fue en el Capacímetro Autorrango, donde las necesidades de ajuste eran muy estrictas y de precisión. Antes de continuar te dejamos la presentación del sistema, el LCD de 20 caracteres, el preset, las indicaciones de acuerdo a la lectura de AN4  y la pequeña placa contenedora del MC33064, en este video. Así comienza la historia.




Si observas con detenimiento las hojas de datos del MC33064 encontrarás que a la salida RESET se le puede agregar un pequeño capacitor (o condensador) para brindar un retardo a su acción de puesta a tierra, o GND. Esto puede ser muy útil para evitar un RESET (o reinicio de funcionamiento) en un sistema embebido con pequeños cortes transitorios. Esto sería, en la práctica, una especie de ampliación de los extremos de la ventana de histéresis (sería hacerla más ancha, ante variaciones bruscas en Vin). Nosotros, al utilizar un capacitor de 10nF en la mencionada salida, pudimos obtener alguna “aparente” decena de mili-volts más en el valor de activación (o no) del sistema de RESET. La inclusión del MC33064 y la elección apropiada del valor de este capacitor pueden ayudarte a hacer “magia” en un sistema de RESET dentro de un circuito embebido. Tú puedes tomar referencias desde otros puntos de tensión que no sea el de alimentación al microcontrolador y en función de ellos, de su estabilidad y fiabilidad, manejar el RESET y no, en forma obligatoria y única, desde la alimentación principal. Pero no volemos tan alto, volvamos al cambio del preset y comencemos a ver como algunas cosas no son tan bonitas como eran en la teoría del inicio. Es decir, a veces las cosas no suceden como esperamos que sucedan (a la tensión que esperamos que sucedan) y este es uno de esos casos.


La situación comenzó a ponerse complicada al descubrir que no teníamos posibilidades de lograr la activación del pin RESET, en los valores que indica la hoja de datos del MC33064. Por debajo de una tensión de 4,58Volts el pin no se activaba y las variaciones comenzaban a suceder algo lejos de lo que estipulado en las hojas de datos. El circuito era muy sencillo y estaba correcto, el instrumento comercial utilizado como referencia es el que siempre nos acompaña y, a pesar de no ser un Fluke, siempre ha sido fiel en sus mediciones, comparándolas con los valores esperados. Sumado a esto, el PCB estaba bien y sin embargo, la ventana de histéresis deseada, no se presentaba en los límites anunciados por el fabricante.
Circuito utilizado en la placa contenedora del MC33064 y su conexión a la Entrenadora NeoTeo - MC33064 Circuito utilizado en la placa contenedora del MC33064 y su conexión a la Entrenadora NeoTeo
La placa y el circuito que ensayamos no poseen mucho misterio. La alimentación al MC33064 (Vin) se conecta al ADC del microcontrolador en AN4 y, al variarla mediante P1, logramos la activación del RESET con R4 conectada como resistencia de polarización (pull-up) al pin RESET. RC0 y RC1 del PIC encienden o apagan LEDs “simbólicos” que, según líneas de programa, están para indicar los estados en que “debiera” encontrarse el MC33064, según los números obtenidos en el ADC (AN4). O sea, además del LED conectado a RC6, que el PIC activaría por lo presentado en RC3 (salida RESET del MC33064), estos LEDs deberían haber acompañado con su funcionamiento lo que la teoría indicaba. Sin embargo, ocurrió lo siguiente:


Los videos que te mostramos no se cortan por accidente, sino por el asombro que nos plantea la situación, pensando que algo hemos hecho mal. La ventana de RESET que “debería” aparecer entre 4,59V y 4,61V se hizo presente entre 4,52V y 4,55V, es decir, unos 0,6V a 0,7V respecto a los valores esperados. Y aquí viene nuestro gran interrogante: ¿Por qué un elemento que presume ser de precisión, no lo demuestra? Hay muchas cosas de las que estamos seguros:
  •  El multímetro comercial no podría (ni lo hace) fallar en forma tan grosera, con mediciones tan alejadas de las esperadas y prometidas por el fabricante.
  • Si el circuito no estuviera correcto, el sistema en su conjunto no funcionaría.
  • El componente en verdad funciona, no está averiado o roto, sino que funciona en valores que no son los de referencia.
  • Las hojas de datos del dispositivo, a pesar de hablar de una tolerancia, no presentan la posibilidad de un “desplazamiento” de la ventana de histéresis.
  • Todo funciona bien, pero mal. Es una paradoja decirlo de esta forma, pero el componente funciona perfectamente, en un lugar donde no es el indicado.
Tal vez, a partir de todo este trabajo con gráficos, imágenes y videos, ustedes en este momento esperan que les diga donde está la raíz del problema y mi respuesta, al cerrar este artículo, es decirles que no existe problema alguno, que el “efecto/defecto” no tiene otra posibilidad que encontrarse en la calidad del componente y la tolerancia que esgrimen las hojas de datos. Además, los valores obtenidos nunca descendieron de los valores mínimos (4,5Volts) a pesar de que esperábamos una actividad en otra zona.

Conclusiones:

Nunca debemos apurarnos a definir que un componente no funciona si no hace lo que esperamos o nos prometen. Algunas especificaciones pueden desplazarse hasta los límites y en algunas ocasiones, un poco más allá también. Sirva este artículo como ejemplo de esta situación y por supuesto, confirmar que el MC33064 es un muy buen detector de bajo nivel de tensión orientado a sistemas alimentados con 5Volts (o Voltios) que se activa allí, en algún punto, entre los 4,5V y los 4,7V, tal como promete su fabricante.

Fuente:
http://www.neoteo.com/mc33064-mc34064-sensor-baja-tension