MILK (Multiple Interface Light Kit) es un cable USB que soporta los protocolos serie
más populares (JTAG, SPI, RS-232, I2C, etc.).
¿Qué es MILK?:
MILK es un "cable USB", esto es: un circuito electrónico que se conecta al puerto USB de una computadora. El mismo permite comunicarse con diferentes dispositivos electrónicos para configurarlos, almacenar información, etc. MILK posee dos canales de comunicación, los mismos pueden usarse en forma independiente y utilizando diferentes protocolos. Para soportar un amplio número de protocolos MILK se basa en un esquema de plug-ins. Cubriendo así un mayor número de situaciones.
¿Qué protocolos están soportados?:
MILK está construido en torno al FTDI FT2232H por lo que ofrece todas las facilidades de dicho chip. Una de las cosas interesantes del FT2232H es que sus serializadores pueden utilizarse para implementar virtualmente cualquier protocolo serie. El siguiente recuadro sumariza el soporte actual de MILK:
Sistemas operativos diferentes a GNU/Linux deberían estár soportados ya que MILK
puede configurarse para ser idéntico a un sinnúmero de otros cables basados en
el FT2232H. En particular los autores de MILK no poseen computadoras que corran
Microsoft Windows, pero están abiertos a colaborar con voluntarios interesados en
agregar soporte para dicho sistema operativo.
El protocolo I2C es soportado en forma nativa por el FT2232H, por lo que debería
estar soportado por MILK. Desconocemos que software sería el más adecuado para este
protocolo.
Los protocolos RS-422 y RS-485 son muy similares al RS-232, siendo la mayor diferencia el
nivel físico. Por lo que bastaría con implementar el plug-in adecuado.
El FT2232H soporta protocolos propietarios de alta velocidad diseñados por FTDI.
Existen descripciones VHDL para implementar estos protocolos en FPGA. Es nuestra
intención incluir el soporte para estos protocolos en el mediano plazo.
¿Donde puedo conseguir MILK?:
MILK es un proyecto de hardware abierto, por lo que toda la información de diseño puede descargarse de este sitio. En la actualidad no hay ningún proveedor que ofrezca versiones de MILK ya armadas. Es nuestra intención fomentar la existencia de fabricantes ya que entendemos que no es eficiente pretender que cada usuario fabrique su propio circuito. La licencia de MILK no permite el uso comercial del mismo, pero nuestra intención es permitir que sea fabricada comercialmente, simplemente queremos asegurarnos de un uso razonable del diseño. Por esta razón alentamos a potenciales fabricantes a ponerse en contacto con nosotros. Es completamente legal que una Universidad o equipo de entusiastas forme un grupo a los fines de realizar una pequeña tanda de fabricación, bajando así los costos. A tales fines invitamos a los interesados a coordinarse utilizando la lista de correo de MILK. En el caso de voluntarios que puedan comprometerse a colaborar con el proyecto tenemos algunos circuitos impresos y/o componentes disponibles para que puedan armar su propio cable. En el caso de estudiantes universitarios que deban realizar su PPS (Práctica Profesional Supervisada) es posible realizarla en el INTI trabajando en este proyecto. En cualquiera de estos casos por favor contactarse con nosotros.
Plug-ins:
La versatilidad de MILK se basa en un esquema de plug-ins. Esto permite que podamos usar cualquier combinación de protocolos en sus dos canales. Así es posible usar el canal A de MILK para implementar SPI y el B para implementar JTAG, o cualquier otra combinación deseada. Un plug-in de MILK puede ser algo tan simple como unos cables y un conector, o tan complejo como un circuito completo. Esto depende del protocolo en cuestión. En la sección de protocolos soportados hay un listado de los plug-ins actualmente disponibles.
Niveles de tensión soportados:
El canal A de MILK se encuentra conectado en forma directa al FT2232H. Por esta razón los niveles de tensión deben estar entre 3,3 V y 5 V. Las salidas de este canal están alimentadas con 3,3 V, por lo que un '1' lógico será aproximadamente 3,3 V. Normalmente esto no es problema para un sistema alimentado con 5 V. Las entradas del FT2232H soportan 5 V aún cuando su alimentación es de 3,3 V. Por otro lado la señalización para 2,5 V es compatible con la de 3,3 V. Si se desea conectar al canal A un circuito de 2,5 V es necesario asegurarse que el mismo es capaz de tolerar tensiones de hasta 3,3 V en sus entradas. En este caso es posible usar el canal A. Si esto no es así se deberá usar el canal B. El canal B de MILK utiliza dos LSF0108, este chip permite señalizaciones tan bajas como 0,95 V. Por lo tanto este canal puede funcionar entre 0,95 y 5 V. El circuito conectado al canal B de MILK debe indicar su tensión de alimentación en el pin VREF (17) del conector. De esta manera MILK se adaptará a esa tensión. Un detalle importante a tener en cuenta es el valor de RP1/RP2 y/o de los resistores R9 a R24, que pueden o no estar soldados. Estos resistores fijan la corriente que debe ser capaz de absorver el circuito conectado a MILK para imponer un '0' lógico. El valor por defecto de 2k2 implica que un circuito que se alimenta con 3,3 V debe ser capaz de absorver 1,5 mA. Análogamente un circuito que se alimenta con 0,95 V debe ser capaz de absover 430 nA. Si el circuito conectado al canal B es incapaz de manejar estos niveles de corriente será necesario cambiar el valor de RP1/RP2. Es por esta razón que se recomienda utilizar un zócalo. Es importante entender que valores altos de RP1/RP2 reducen la máxima velocidad de conmutación del canal. Análogamente sería posible mejorar la velocidad del canal B utilizando resistores más bajos que 2k2.
Licenciamiento:
MILK es un proyecto de hardware abierto, por lo que toda la información de diseño puede descargarse de este sitio. La licencia actual del proyecto es Licencia Creative Commons Atribución - No Comercial - Sin Obra Derivada 4.0 Internacional. Si se desea hacer un uso comercial de MILK por favor lea la sección donde se discute la disponibilidad de MILK. La restricción de no permitir obras derivadas sólo busca cocentrar los esfuerzos en un mismo proyecto. Por lo que estamos abiertos a contribuciones.
Circuito:
MILK fue desarrollado usando KiCad.
KiCad:
KiCad es una herramienta de software libre para el diseño de circuitos electrónicos. Los últimos esquemáticos y PCBs de MILK fueron realizados utilizando KiCad "4.0.5+dfsg1-4" que es la versión incluida en Debian GNU/Linux 9. La revisión fabricada (1.12) fue realizada utilizando KiCad "Build: (22-Jun-2014 BZR 4027)-stable" que es la versión incluida en Debian GNU/Linux 8.
Documentación relacionada:
Estos son algunos trabajos relacionados con MILK:
Contacto:
Para preguntas generales puede usar la lista de correo de MILK. Para preguntas específicas puede contactar a Salvador E. Tropea o por teléfono al +54-11-4724-6300 interno 6919.
Entidades adherentes:
Las siguientes entidades han declarado a este proyecto de interés:
- Universidad Tecnológica Nacional - Facultad Regional Haedo
- Universidad Tecnológica Nacional - Facultad Regional Córdoba
- Universidad Nacional de Tierra del Fuego
- Universidad Nacional de Catamarca
|