Sinclair escribió:Si te da un valor distinto de 255, vamos bien. ¿Qué valor te da? (prueba con la CF y con el disco duro que sabes que sí es detectado)
Da 80 en los dos casos.[/quote]
Eso está bien. 80 significa que el dispositivo está listo, y que se ha completado el último comando SEEK (esto es irrelevante de momento).
Mientras escribo un programa más elaborado, he encontrado esto:
All pins are TTL compatible, control signals are active low. (Note about using Compact Flash cards in “True ATA mode” via IDE adapters: According to the spec sheet, these cards require CMOS level logic inputs – so when running with Vcc at 5 volts, logic highs should be a minimum of 4v. This wont be an issue using 74HC series logic from a 5 volt system such the Z80 but its worth bearing in mind if mixing logic families etc.)
Lo que viene a decir que el "uno" lógico de una CF debe estar por encima de 4V, y eso es algo que con el Z80 se consigue a duras penas. De hecho, estoy pensando que con los transistores en modo seguidor de emisor la cosa se complica aún más porque estos chismes se comen 0,6V de la tensión de entrada, por lo que si a la entrada ya era baja, a la salida lo es un poco más, empeorando el panorama.
Una forma rápida de bajar los niveles de tensión requeridos por la CF es alimentarla a 3,3V . Eso bajará los requerimientos de "uno" a unos 2,5V más o menos.
Más cosas que he leído:
DMACK is an input at the drive used to acknowledge DMA mode – I noted that the Compact Flash ATA mode spec sheets say if there is no DMA-mode ability in the host (as there wouldn’t be for a simple interface) DMACK should be driven high.
Está claro, ¿no? La señal DMACK en una CF debe estar puesta con un pullup de 10K a la tensión de alimentación de la CF. Eso es algo que está hecho en el DivIDE, pero no en la interfaz simple de 8 bits, y que creo que es muy conveniente hacer.
-- Actualizado 05 Oct 2013, 15:31 --
Mira. Te he escrito una pequeña utilidad para comprobar si al menos la interfaz de 8 bits es capaz de leer un sector de la CF, concretamente el primer sector, donde debe encontrarse la tabla de particiones IDEDOS. Cárgalo con los medios convencionales (desde el modo 48K a ser posible) y ejecútalo, y dime qué aparece en pantalla:
http://www.atc.us.es/~rodriguj/test8bitsimple.tap