Intro.
Si llegaste hasta acá, probablemente ya sabes qué es el Bus Pirata! Pero en caso de no saber, es un circuito que sirve de interfaz para comunicar desde un puerto USB de la PC con varios protocolos: Serial, I2C, SPI, 1-Wire, JTAG entre otros.
Cuenta con una sonda de medición de 0 a 6 Voltios (Para muchos sensores analogicos), medidor de frecuencia (Para un contador de revoluciones de motor, p.e.), generador de PWM (Para los servos) entre otras muchas cosas interesantes. Tambien puedes utilizarlo como datalogger.
Si ponen en google «Bus Pirata Venezuela» quizá se sorprendan por la cantidad de resultados arrojados no relacionados con la electrónica. Lo que me hace pensar que a mas de uno le caerá bien esta información en su momento.
Documentación
Las referencias que vamos a estar citando a lo largo de esta entrada son:
- http://dangerousprototypes.com/docs/Bus_Pirate_schematic_and_partlist
- http://hackaday.com/2009/01/22/how-to-bus-pirate-v1-improved-universal-serial-interface/
- http://code.google.com/p/the-bus-pirate/downloads/list
Ingredientes:
- PIC24FJ64GB002
- FT232
- Conector Hembra mini-USB b
- Componentes menores (Leds, Rs y Cs)
- El plano de la bus pirata v3.5
Como de costumbre, nuestros amigos de electronica magnabit comercializan muchos de los componentes necesarios en Venezuela.
Elaboración:
Lo primero que noté es que los pines del conector FT232 son MUY pequeños, y como mi intención es montar todo en un protoboard primero, voy a necesitar un conector SOIC a DIP.
Lo mismo para el conector USB
Esos conectores hacen falta debido a que mi intensión es armar primero los circuitos en el proto. Es simplemente una cuestión de estilo. En otro post, lo montamos en un PCB!
El montaje de cuicuito usb debe parecer esto
Las líneas azules son «masas», «tierra», «0v» o cómo quieran llamarlas. De cualquier manera, guiense con el esquematico del circuito. Si todo fué bien, al conectar el cable usb, windows7 lo reconoce como un dispositivo, el led rojo parpadea y luego se apaga, y el administrador de dispositivos muestra un puerto COM nuevo, como en la imagen:
Nota: el dispositivo debe estar frio! me pasó que invertí la polaridad de la alimentación del circuito, y el FT232 se calienta… MUCHO.
Nota: el 4066 es un CD4066, no un 74XX4066. Es distinto! El cd4066 es un chip cmos, y se usa en parte como un nivelador de tensión
Eso es el circuito mas o menos terminado. No tengo en mi disposición los reguladores mic5205, pero voy a hacer lo posible por conseguir algunos.
Programando el Bus Pirata.
El bus pirata tiene 2 clases de programas: El bootloader, y el firmware. El bootloader es cómo un sistema operativo donde se guardan muchas configuraciones básicas del sistema. El firmware son cómo los programas que corre nuestro sistema operativo… mas o menos.
Lo importante es que necesitamos cargar el bootloader para que algo funcione.
Desde este enlace descargar v3-PIC Bootloader-v2.hex y el v3-Firmware-v3.6.hex
Y desde acá, descargar P24QP.exe, P24QP.ini y PICBOOT.dll y guardar todo eso en una misma carpeta.
Programar el pic24 con el archivo hex a través del ICS (los 5 pines de programación) (Se programa con el pickit)
Desconectar el programador de pic
Abrir P24QP.exe, con click derecho seleccionar el puerto COM que nuestro bus pirata emula, Y luego click en el ícono «Conect to Device»
Si todo salió bien, deberían tener una imagen como esta!
Luego, click en abrir, y seleccionar qué imagen var a pasar (vxx-Firmware-vx.hex). Sustituir las x por el número de la versión que ustedes dispongan.
Click en erase, click en write. La operación de write se tarda bastante… BASTANTE como 2 o 3 minutos. Los leds de la comunicacion van a estar parpadeando todo el proceso.
Al final se abre una archivo .TXT llamado ERROR con unos «errores» si todos los errores están entre las direcciones 0x400 y 0xBFF, entonces no hay problema! en esa zona reside el bootloader, y es normal.
Click a la flecha verde de la derecha y decirle que sí.
Halar el cable usb, y reconectar.
En http://dangerousprototypes.com/2009/07/23/bus-pirate-101/ dicen que el terminal de windows no funciona muy bien con el bus pirata, y recomiendan otro terminal, el Tera Term. Bajen ese zip, y descomprimanlo en alguna parte que puedan localizar fácilmente después.
Una vez bajado, configurado, y conectado, dale a enter, y van a ver el prompt %HiZ> luego escribe el signo ‘?’ y enter otra vez
EUREKA!!!
Comprobación: Comando «G 50 10» debería generarles una señal cuadrada de 50 KHz y 10% de duty cicle en el pin 21 de PIC!
Estoy probando una ROM no oficial en mi android, y no tengo camara. Ergo les debo la foto del la señal del osciloscopio D:
Comentarios
Despues de hacer pruebas sobre los comandos básicos podemos concluir:
- El comando de PWM (G) trabaja bien
- El comando de frecuencimetro (F) no trabaja muy bien: Inyectando una señal de 1KHz reporta 768Hz. Desconozco si es un bug o qué.
- A medida que vaya probando, voy updateando 😀 (30/03/2012)
Hola, me llamo Nataly López de Venezuela, hace poco compré un BusPirate, y bueno, quería saber si aún te dedicas a estas cosas!, saludos 😉
Hola Nataly! la verdad es que despues de que monté es Bus, lo engaveté y no lo he usado más. Pero si necesitas ayuda en algo, pasame un mensajito o algo y podemos resolver xD
parece muy bonito, pero muy complicado de entender y utilizar por falta de un IDE que se respete como Arduino, o Energia de Texas I.
Buenas, una pregunta, si compro una de estas placas por internet, supongo que ya trae el bootloader instlado, el firmware tambien? Quisiera usar uno bus pirate como programador JTAG para un micro ARM Stm32F103 pero una vez que ya cargue el programa en este micro, poder usar el bus pirate como otra cosa. Es posible esto?
Muchas gracias.
Hola sebastian, buen día.
Efectivamente, el bus pirata ya trae el bootloader instalado, y el soporte de JTAG depende de la versión del firmware que tengas. acá hay un poco más de info al respecto! http://dangerousprototypes.com/docs/Bus_Pirate#JTAG_and_OpenOCD técnicamente, sí es posible utilizarlo como debuger de tu micro.
Para tú caso particular, yo consideraría usar el LINK V2 que es el programador de ST, cuesta unos 20$ y ay viene listo para lo que tú necesitas.
Espero haber sido de ayuda!!!