23 mayo 2006

USB y obsolescencia (I)

Como buen obsoleto que eres (supongo, y si algún ser humano "normal" llega a leer este blog ya sería un acontecimiento curioso y significativo), ya debes saber que estoy metido en el proyecto de desarrollo de un controlador USB para ordenadores MSX (bueno, Dumas en realidad hace más cosas, pero la parte USB es la más "espectacular"). En este desvarío voy a contar cómo empezó la confección de esta camisa de bastante más de once varas.

Pues bien, lo creas o no, la cosa comenzó como un arranque de orgullo obsoleto. ¿Lo cualo qué? Un buen día recibí este emilio, en el que se anunciaba ni más ni menos el desarrollo de un controlador USB para ordenadores Atari XL/XE... y lo primero que se me pasó por la cabeza fue el siguiente ataque de orgullo obsoleto que acabaría siendo más que una declaración de intenciones:

No puede ser que esta gente tenga USB y nosotros no. Hay que hacer algo.

Y lo primero que hice fue un poco de "espionaje industrial" en la propia web del proyecto para Atari, para ver en líneas generales cómo habían montado el invento y qué hacía. Vi entonces que usaban un Cypress SL811HS como chip controlador USB. Me bajé el "datachit" del susodicho, y llegué a la conclusión de que en efecto, resultaba ser un controlador muy adecuado para proyectos obsoletos por su bajo coste y su simplicidad.

Acto seguido contacté con Daniel Berdugo, posiblemente el gaditano más obsoleto del universo, que ya había diseñado y fabricado el hardware de un proyecto similar en el que me había enfrascado: ObsoNET, la tarjeta ethernet para MSX.


Por supuesto, semejante frankenstein del hardware no pudo resistirse a meterse en el fregado. Y mientras, a mí me tocó un periodo de aprendizaje e inmersión en documentación sin precedentes. Concretamente, me tocó empollarme, para empezar, el estándar USB. El cual es cualquier cosa menos simple. Tuve que leerlo, releerlo, preguntar en el foro de desarrolladores de USB, buscar información por internet, etc... hasta conseguir entender algo.

Está muy claro, ¿verdad?

Después, si por supuesto se debía dar soporte a los dispositivos de almacenamiento, tocaba echarle un ojo al estándar para dispositivos de almacenamiento USB, tanto para disketeras como para dispositivos de almacenamiento en general. Esos documentos sólo cubren la forma de transportar los comandos; los susodichos se toman directamente del estándar SCSI.

A todo esto hay que añadir, evidentemente, la documentación oficial del Sl811HS; que para variar (con el controlador de ObsoNET me pasó lo mismo), no está del todo clara y es necesario buscar la documentación oficiosa y los ejemplos de código que hay despertigados por el interdem.

Y con todo ese armamento cognitivo, ya estábamos en disposición de fabricar un prototipo, hacer pruebas e ir pensando en una BIOS... pero eso será otro desvarío.

3 comentarios:

Anónimo dijo...

Vaya y como he saltado yo este mensaje :/

ditman dijo...

Esto murió? :(

¿Cómo puedes ser tan gurú? xD

Konamiman dijo...

Morir, no, no murió... digamos que por el momento está en coma.