domingo, 11 de septiembre de 2011

Revisión del FTDI de Txapuzas

Después de muchos cabezazos con el 50$robot, pensé que debería haber una forma sencilla de ver los datos de los sensores para ver si se ajustaban al programa. Buscando buscando, encontré esta magnífica página donde te explican cómo hacerte un arduino sencillo, el Paperduino, con un poco de paciencia y fusilando los shields de .......... me hice un par de shields, uno para los sensores y servos, y otro para pinchar un lcd que me pudiera mostrar los parámetros de los sensores del flamante paper50$bot que estaba maquinando.


Hete aquí que me resultaba bastante incómoda la forma de programar el paperduino, y me compré en ebay el cable ca-42 para hacer el paperFTDI. Como quiera que uso XP-x64 y los drivers no iban muy bien, empecé a buscar por la "Hinternec" los controladores actualizados, encontrando de paso algunas utilidades para identificar los dispositivos USB, documentación del chip Prolific 2303, que es el que usa el cable, y algunos "hacks" para activar el reset y la alimentación.




Me entró el gusanillo por saber si podría modificar el cableado del chip para activar las señales necesarias, y a base de ensayo, error, multímetro y estaño parece que lo he conseguido. A continuación detallo los pasos a seguir para hacer un USB-232 funcional para el paperduino. Se puede hacer un adaptador para que coincida con los pines ISP del Uno, y supongo, no lo he probado aún, que para coincidir con el ISP del 50$bot, ya que los pines van a las mismas patillas.





Lista de piezas:


Cable compatible Nokia DKU-4 o CA-42. ~4€ en E-bay


Cables de colores de aproximadamente un metro. Dependiendo del cable que te haya tocado uno o tres.


Un retal de stripboard.


Cinta aislante, fixo y cinta adhesiva de dos caras.


Café, agua o refrescos para no deshidratarse.


Herramientas:


Un soldador, estaño, pela cables (yo uso las uñas y un mechero) y un destornillador o algo similar para abrir el encapsulado.


Software necesario:


El entorno Arduino.

Software recomendable:


Enumerador de puertos USB (windows), nos permitirá identificar el chip usado. En Linux podemos usar el hardware info o mirar el dmesg.


Drivers actualizados (windows). Linux ya trae los controladores para este tipo de chips.




Esquema de pines, PaperFTDI-Paperduino-Adaptador RS-232-USB


Modificación respecto al post anterior. Puse CTS en el MISO, cuando debería estar en SCK. Me lié al mirar el circuito, y soldé donde no era. Me llama la atención que funcionara de sin problemas de vez en cuando, pero saltaba muy a menudo un error de sincronzación.




1 GND - GND - GND


2 CTS - D13 (SCK) - CTS


3 Vcc - Vcc (+5v.)- (Vcc del chip adaptador)


4 Rx - D0(Rx) - TXD


5 Tx -D1(Tx) -RXD


6 RTS - Reset - DTR (curioso)


Los pines del adaptador no coinciden con los pines de un RS-232 de 9 pines, se corresponderían con los de un AVR-ISP.




Lo primero es abrir el encapsulado del USB-RS232, yo lo hice con un cúter y rompí unos cuantos soportes para encajar, alguien más mañoso seguro que lo abre sin romper nada, dentro hay un pequeño PCB de dos capas, con el chip y varios puntos de conexión.


Prolific cara A.jpg Prolific cara B.jpg




Localización de VCC, CTS y DTR en el chip Prolific 2303.


El chip soporta una tensión de 5v a través del VCC, midiendo con el multímetro, esta corriente es constante a 100mA desde el momento en que se enchufa al puerto USB. En el datasheet indica que es para alimentación externa, o al menos eso he creído entender, así que decidí alimentar al Paperduino con ella, soldando un cable del pin Vcc hasta el inicio de la entrada de 5v en mi Paperduino perfboard tal que así.


Paperduino VCC.jpg




Y soldar un cable desde el chip hasta el conector.


Prolific VCC.jpg




En mi chip venían identificados los puertos, en caso de no ser así, para identificar VCC basta con poner tierra en el metal externo del USB e ir probando hasta encontrar un voltaje de +5v, el resto son de 3,3 o menos.




(No son las mejores soldaduras del mundo, ni soy un gran soldador ni el soldador está para muchos sustos, que me senté encima de el y el pobre quedó así. El caso es que parece funcionar.)




Localizando DTR y CTS.




Hay tres señales de 3,3v, una es DTR , otra RTS y otra CST, la principal diferencia es el momento en que empiezan a ponerse a cero y los saltos que hagan. Mi multímetro no reacciona muy rápido, por lo que lo hice mirando las letras en el chip. El truco está en enchufar el chip, pero no el arduino, abrir el software de arduino y subir un sketch, la señal de 3,3 voltios que antes se apague debería ser DTR y esa la conectamos a reset, la otra sería CTS, y la que no parece variar es RTS. Curiosamente el reset no me funciona con RTS, que es donde está enchufado en el Paper FTDI, sino en DTR.


Prolific CTS.jpg Prolific DTR.jpg


En el Paperduino necesitamos conectar CTS al pin adecuado (SCK), que es D13.


Paperduino CTS.jpg




Por último queda subir un sketch al Paperduino y si no se sale humo y empieza a ejecutar el programa, lo más probable es que el invento haya funcionado y ya tengamos un FTDI casero marca "El Cheapo" de última generación. De vez en cuando me falla y enchufando y desenchufando el USB vuelve a funcionar, supongo que tendría que revisar los puntos de soldadura.


Nota: La primera vez que lo conecté el led del pin 13 se apagó. Un buen rato después, volví a hacer pruebas con otro cable y volvió a funcionar. En estos momento funciona perfectamente, se ve que he soldado mal el cable.


El documento con la pegatina de la parte de atrás modifucada, esta aquí.




Revisión 2


La guía aquí presentada es a modo informativo, manejar y modificar aparatos electrónicos conlleva riesgos que aquel que repita los pasos aquí mostrados debe asumir por sí mismo, no siendo el autor ni el publicante del documento responsables de los accidentes o daños materiales o personales ocasionados por la perpetración de las modificaciones descritas.


Este documento se adscribe a la licencia CC tipo tres, que permite la reproducción del mismo, previa autorización del autor.

No hay comentarios:

Publicar un comentario