Este proyecto es realidad gracias a que existe un chip llamado CH76s, que se podría considerar el núcleo de Rookie drive. Se trata de un chip de interfase entre dispositivos de almacenamiento USB y micro controladores/microprocesadores de 8 bits.

En la mayoría de proyectos que he visto con este chip (proyectos con microcontroladores), los desarrolladores han utilizado el puerto SPI o serie para manejar el CH376s, en mi caso, ninguno de los anteriores era el apropiado, pero sí el bus paralelo de 8 bits que incluye este chip. Dicho bus permite la conexión directa al bus de expansión del MSX, en sus 8 bits de datos y en las señales /WR y /RD, esto es genial, ya que permite simplificar el desarrollo del hardware notablemente.

ch376sblockdiagram

A parte de lo anterior, una cosa estupenda del CH376s es que incorpora soporte integrado para FAT16, FAT32 y FAT12, es decir, que podemos acceder al los archivos del dispositvo USB sin necesidad de gestionar la tabla FAT, simplemente enviamos la orden correspondiente para establecer el nombre del fichero y luego ya podremos leer, escribir o borrarlo directamente, el chip se encarga de la gestión de la FAT.  Esta característica es la que permite a Rookie drive trabajar con imágenes de disco.

El chip se puede comprar sólo, o bien montado en una placa como esta (que es la que yo he utilizado):