Traducción


by Transposh - Plugin de traducción para WordPress

Categorías

Compilaciones

Servidor de desarrollo

Envíos informativos de cómo configurar un servidor local para desarrollo web.

VUSiBino

Una de las características más atractivas de los microcontroladores ATMega es su sencillez. Montar una placa con ellos es extremadamente simple y las posibilidades que ofrecen son muy variadas y fáciles de desarrollar. El ejemplo de la sencillez extrema es el Paperduino, y sus variantes de Txapuzas. Usando un sencillo hack se puede conectar un cable Nokia o comprando un barato cable FTDI se consigue una funcionalidad completa.

Pero hay una posibilidad bastante atractiva, el software V-USB de objective developement, que permite usar el microcontrolador como un dispositivo USB a cambio de perder un par de pines y un poco de tiempo de proceso. Amalgamando el paperduino, v-usb, usbasp y tinyUSBoard he hecho esta placa, fácil de montar y que conjuga las posibilidades de tinyusb y paperduino. Se puede programar desde el entorno Arduino o directamente con AVRDude usando la opción de USBAsp, hay librerías compatibles que permiten usarlo desde el entorno Arduino, o bien usando el software de ATMel, AVR Studio, que si bien en un principio parece árido, permite afinar bastante el código. Esta placa se puede alimentar desde el USB o una fuente externa de hasta 9v gracias al regulador de voltaje L7805 y el 1n4007, tiene un tamaño bastante razonable y es sencilla de soldar. La he dotado con un fusible para proteger al PC.

Hardware

.-Diseños.

 

Estos diseños muestran las conexiones que se deben realizar, al final del envío se pueden descargar las versiones para imprimir e, svg, postcript y pdf, necesarias para hacer pegatinas que sirvan de guía para el montaje. La última ilustración detalla cómo se deberían soldar para hacer pistas de estaño en caso de no usar la ilustración en negro, que sirve para hacer el circuito químicamente.

 

.-Montaje.

Paso a continuación a detallar el montaje de la placa:

Necesitaremos.

Pcb perfboard  27×17 Fusibles 1xPoliswitch 0,3A
Pulsadores 2 Conectores 2xClema
Resistencias 2×68 Ohm. 2×6 pin strip hembra
2x1k Ohm.  2×4 pin strip hembra
1x1k5 Ohm.  1×14 pin strip hembra
1x10k Ohm.  1×3 pin strip hembra
ICs 1x AVR (Atmega8, 168, 328) 1×1 pin strip macho
1x L7805 2×2 pin strip macho
Condensadores 2x100uF electrolítico 1×2 jumper
1x100pF cerámico Cable de colores, preferiblemente unifilar
Diodos 2×3,6v 0,5w zener  Reloj 1xOscilador cerámico 16Mhz (8,12 o 20 sirven también)
1x1n4007 rectificador
1xLed 3mm Rojo
1xLed 3mm Verde

.-Pegatinas

Para hacer las “pegatinas” usaremos cinta adhesiva de doble cara, y cinta adhesiva transparente para protegerla de las inclemencias. Desplegamos un poco de cinta que se ajuste a la longitud de la impresión recortada y la pegaremos sobre una cara de la cinta. Recortamos la cinta de doble cara al tamaño de la impresión y la ponemos sobre la placa perforada para, con un punzón, un palillo o algo similar, hacer agujeros sobre los puntos donde pasarían los componentes electrónicos, esto nos servirá para ajustar correctamente la pegatina y de guía en la soldadura de las pistas de estaño. una vez hechas todas las perforaciones, y usando una fuente de luz que ilumine desde la parte trasera de la placa, ajustaremos los agujeros y adheriremos la pegatina a la placa. Tras esto ponemos la cinta transparente sobre el papel y si no lo hemos hecho ya, recortaremos la placa al tamaño adecuado.

 

.-Soldadura.

Tras cortar la placa, pasamos a ir soldando las “pistas”. Siguiendo la guía (imagen de fondo verdoso) ponemos un punto de estaño en cada agujero, tras ello podemos conectar los puntos, de forma alterna, con cuidado de no calentarlos demasiado pues se torna demasiado líquido. Acto seguido procedemos a colocar los cables de puenteado, el conector USB, las resistencias, los diodos, el fusible y los botones. Después pueden ir los pines, los led, las clemas, los condensadores y el regulador de voltaje. Estos los suelo fijar antes de la soldadura con una gota de cianocrilato para evitar que se muevan al soldarlos. Por último irían el oscilador y su condensador.

Nótese que las resistencias de 68Ω van montadas en vertical y que he limado el zócalo del circuito para que deje pasar los jumpers.

 

.-Comprobación y conexión.

Acabados de soldar todos los componentes, conviene conectar a fuentes de alimentación nuestro circuito, pero sin poner todavía en microchip en su zócalo. Los jumpers USB/5V y 9V nos permiten cambiar la alimentación, no deberíamos conectar el USB mientras hay otra fuente activa y el voltaje en ninguna pista debería superar los 5,5 voltios aún con una pila de nueve conectada.

Software

Una vez comprobado que no sale humo ni los condensadores estallan, insertamos el chip en el zócalo y pasamos a intentar programar el “bootloader”, he usado la versión de TinyUSBoard, pequeña, funcional y con los pines ajustados a nuestra distribución, quemarlo es ya algo diferente.

.-El bootloader.

 

Este programa se encarga de que el microcontrolador pueda cargar otros programas a través del cable USB. Usaremos la versión modificada del USBAsp para tinyUSBoard, pero para conseguir cargarla debemos dar alguna vuelta.

Si disponemos ya de otro microcontrolador con bootloader, como Arduino, Paperduino o similares, este enlace nos indica cómo hacerlo. Basta con conectar correctamente los pines de MISO, MOSI, RST, SCK, +5v, gnd y subir el sketch de ejemplo en Arduino “Arduino as ISP”.

Con un tinyUSBoard sería así. Mirad las fotos del título “USBasp programming” para las conexiones.

Con un cable FTDI esta sería la conexión.

Si disponemos de un puerto paralelo podemos montar este circuito.

Por puerto serie sería este.  Quizá esta sea la opción más sencilla y barata.

 Aquí han hecho uno con un demultiplexor y un hub USB.

Se puede hacer también con un teclado. Matrixstrom provee del software necesario para cargar el bootloader.

O directamente a mano. Realmente alucinante.

No he probado las opciones del hub USB, el teclado ni hacerlo a mano.

En los ordenadores actuales el puerto paralelo sigue existiendo, pero hay que abrir la caja y conectarlo, los puertos serie se siguen usando y es un circuito sencillo, para programar el chip hay que usar Ponyprog.

También siempre queda la opción de pedirle a un conocido que te lo programe.

.-Firmware.

Una vez grabado con éxito el “bootloader”, podremos empezar a usar este para subir “firmwares” al VUSiBino. Para ello deberá estar en modo programación, al que se accede pulsando el botón “Prog” mientras pulsamos el botón “Reset”. Para que nuestro sistema detecte el dispositivo en Windows, deberemos instalar los drivers adecuados, “Zadig – The Automated Driver Installer” nos facilitará enormemente el trabajo, seleccionando nuestro dispositivo en el primer desplegable y “libusbk” segundo, nos queda Install driver por pinchar y ya lo hace automáticamente todo.

Para usar el entorno arduino, seguimos estas instrucciones.

.-Descargas, Firmware y host de ejemplo.

Usar otros entornos es algo más complicado, pero permite un mayor control del aparato y la capacidad de usarlo como un dispositivo USB o HID más.

El programa de ejemplo que pongo a continuación es un ejecutable que se comunica con nuestro VUSiBino apagando y encendiendo un led, enviando una cadena de texto y cambiando el número de serie del dispositivo. El software del “host” está hecho en C++ compilado en el IDE CODE::Blocks para windows con TDM, el firmware es en C, compilado usando el entorno AVR Studio 5. Estos ides tienen su truco y hace falta bajarse también el “toolchain” winAVR, y las librerías de v-usb (incluídas en los ficheros para descargar)  para que funcione todo correctamente. Al no haberlo programado como un dispositivo HID, necesitará unos drivers para ser reconocido por el sistema, usb-lib o libusbk vienen incluídas en Linux, pero en windows habrá que instalarlas, “Zadig – The Automated Driver Installer” nos hace la vida fácil, sólo hay que seleccionar nuestro dispositivo, elegir los divers que va a usar e instalarlos para tener nuestro pincho perfectamente funcional y que AVRDude lo detecte.

Para ver simplemente el ejemplo podemos descargar los binarios. Yo uso AVRdudess o Bitburner AVR programmer para subir el .hex. Una vez acabada la subida, se pulsa el botón de “Reset” y se instala con Zadig el driver Libusbk para el dispositivo “VUSiBino”. Luego lanzamos “VUSBino_demo.exe” y jugamos con el dispositivo.

 

Esquemas

Binarios

Código fuente.

VUSiBino Demo en Github

Deja un comentario