Si tienes un Wiininja esto se va poner interesante:
Trabajo en el 18f2550 me es mas comodo para la protoboard, pero todo lo que te diga es aplicable al otro:
El CDC, usaras supongo, la version propia de microchip, pero hay unos drivers, especiales, que permtien usar los 16 pipes del usb y aumentar la transferencia a casi 800 KB/sec (800 KiloBytes/sec), porque los drivers ofrecidos por microchip, los que acceden al dispositivo y es necesario instalarlos, no superan los 200 KB/sec, porque solo usan un pipe.
Bueno, es un rollo, ya estuve investigando demasiado sobre eso, ahora vamos al tema:
No necesitamos mucha transferencia, ahora mismo no recuerdo si el CDC provocaba transferencias en modo bulk (todo un bloque de 64 bytes), si fuera asi, a falta de un analizador en condiciones (tengo alguno disponible, pero no tengo ni wii ni wiininja), puedes medir los tiempos alto y bajo, y ir enviandoselos en el PC y hay hacer una reconstrucion (una tarde de programacion en VB es mas que suficiente para hacer graficas y sacar los datos en crudo).
Ahora te comento, mis sospechas, o toda la informacion que puedo manejar hasta ahora del wiininja, si alguien sabe mas o estoy equivocado, que me corrijan:
Lo primero, no usa el pin del CLK, porque usa el reloj interno RC, que viene calibrado de fabrica y blabla (por esto estos pics no hay que borrarlos cuando vienen sin apuntar el codigo que hay en la eeprom, porque te cepillas el calibrado), luego, el wiininja no recoge timer, sino que marca el tiempo, es un protocolo muy sencillo de datos que ahora mismo (lo siento, llevo 4 horas estudiando y ahora no me salen muchas siglas), no recuerdo el nombre.
El wiininja actua como master en todo el asunto, como se esto? sencillo la aplicacion que publicaron hace un tiempo, para conectar el interface serie al PC y poder enviar comandos (que mucha gente equivocadamente se penso que era para poder volcar juegos y no es asi... ya que solo tienes acceso al chip que ejecuta las instrucciones dentro del lector DVD), conecta los pines 1 y 14, que son de salida (no in/out, solo salida) y como entrada, usa el 11, que es el de salida de datos del chip (que el wiininja recoge por el 7 creo recordar tendria que mirar las figuras ahora no lo recuerdo).
Total, que el que marca los tiempos es el wiininja, pero con el oscilador interno, si son 8 mhz, ni de coña ira a esos 8 mhz ni calibrado de fabrica, por mi experiencia estos chips suelen tener una marca de 5 maximo... y bastante variable entre uno y otro... puede que lo hayan mejorado pero no mucho...
Total, no necesitas el tiempo, solo los datos en crudo que envia el wiininja a las patitas IN y OUT, del chip, despues... tranquilamente se procesan y a ver que se saca en claro, obviamente se necesita un wiininja y una wii xD
Realmente, el tema me parece poco complicado, porque casi toda la documentacion y codigo antiguo de gamecube es valida aqui, salvo por una cosa, el firmware es ligeramente diferente (por lo que he podido leer), y la verdad hay que debugear unas cuentas lineas hasta encontrar toda la partes de las funciones de CheckDisc, LoginDisc y etc..., y no siempre es tan trivial parchear esas funciones, ahora bien, sabiendo que parte del codigo escriben y con que bloque de datos, ya estaria practicamente terminado, seria conectar el DVD a un PC e inyectarle el codigo a ver que ocurre...
Edito: Por sino queda claro, la aplicacion para conectar el DVD de la Wii al PC, usa los mismos pines que el Wiininja y el Cyclops (o como se diga
)