Raspberry Pi obtiene disco PATA / IDE por capacidad GPIO

Generalmente, Raspberry Pi es una computadora que evita las interfaces heredadas. Al depender principalmente de tarjetas SD para almacenamiento y puertos USB para una mayor expansión, los discos duros magnéticos son algo poco común. Sin emabargo, [Manawyrm] Decidió que había algunos accesorios de 40 pines en orden y estaba listo para hacer un adaptador PATA IDE para la plataforma.

Para realizar la tarea de interconectar dispositivos IDE ahora antiguos con Raspberry Pi, [Manawyrm] eligió utilizar los pines GPIO de la computadora de placa única para realizar el trabajo. Se necesitan 23 pines, de los cuales 16 se utilizan para el bus de datos, y el resto se dedica a líneas de dirección, luces estroboscópicas y otras funciones.

El adaptador no tiene un demonio rápido, red 800 KiB / s en lecturas y 500 KiB / s en scripts con Raspberry Pi 4. El problema principal proviene de confiar en libgpiod, que [Manawyrm] reconoce voluntariamente están diseñados para tareas generales de E / S, no para transferencias de datos. A pesar de esto, sigue siendo lo suficientemente rápido como para reproducir un disco CD-ROM IDE sin saltos. Sin embargo, la construcción del núcleo es necesaria porque Raspberry Pis sorprendentemente no está configurada para usar discos ATA de forma predeterminada.

Obviamente, los programas más serios reemplazarían un adaptador de disco duro USB dedicado o le darían a Raspberry Pi una tarjeta PCI-express (PCIe) para unidades sata, pero eso no descarta la diversión inherente a la construcción. Aunque puede ser lento, muestra que hablar con discos duros PATA es bastante simple cuando se comprenden los conceptos básicos. Por supuesto, si desea hacer lo contrario y hacer que su Raspberry Pi emule una unidad PATA, eso también es posible. Video después del descanso.

  • ScriptGiddy dice:

    Me encanta la idea de reproducir un CD de forma nativa en pi. Romántico.

  • RW versión 0.0.1 dice:

    Debería ser una solución rápida para la copia clásica de la era 486 y la era Amiga. Sin embargo, no crea que quiera poner su archivo de intercambio allí.

    • RW versión 0.0.1 dice:

      Tekkienet me acaba de recordar que estos son bits por segundo, no bytes por segundo, ya que generalmente es la unidad mínima que se usa para mencionar las velocidades de HDD, tan terriblemente lentas, no estoy seguro de que quiera usarlo con cualquier emulación, excepto tal vez con disquete de 8 bits máquinas de imágenes.

      El almacenamiento lento y notable + el procesador rápido, en relación entre sí, significa que es una situación ideal para la compresión del sistema de archivos pesado si realmente desea usar un disco duro también en Pi

      • RW versión 0.0.1 dice:

        Jejeje, y ahora volvemos a kilobytes / seg, porque la fuente original eran bytes, no bits y el artículo se citó incorrectamente.

  • Michael Black dice:

    Pero los viejos discos IDE CDROM tenían controles de volumen y salida de audio. Entonces, la computadora solo tenía que controlar el disco, no tomar la señal digital y procesarla

    • Andrea Campanella dice:

      Usted está confundido. Podrías usar el dac incorporado en el cdrom para reproducir música y usar el control del dispositivo para controlarlo, pero ese era un sonido analógico.

      • pelrun dice:

        Cada sonido debe volverse análogo en * algún * punto, a menos que proporciones telelujo …: D

      • Dan T dice:

        Y eso es exactamente lo que hacían la mayoría de los sistemas antiguos: las tarjetas de sonido generalmente tenían una entrada analógica para la salida analógica en el disco CD-ROM y transmitían la señal al preamplificador.

  • Mercado dice:

    En algunos cd-rom se ha detenido la reproducción, salta hacia adelante, salta también interruptores de control en reversa

    • torio dice:

      En los albores del siglo, mi jefe tenía una unidad de CD en su automóvil, conectada a la batería. Conectó el enchufe de los audífonos a los audífonos del automóvil, obtuvo un convertidor de 12 V a 5 V y tenía audio digital en un momento en que los audífonos con CD en los automóviles eran costosos.

      • Gregg Eshelman dice:

        Lo más probable es que un disco SCSI saltara para probar un modo que les permitiera reproducir discos de audio sin nada más que el disco y la fuente de alimentación.

        • Vejestorio dice:

          Muchos discos IDE también podrían hacer esto cuando no están conectados a una computadora.

          • Francis Theodore Catte dice:

            Puedo confirmar, usé una vieja unidad Creative IDE, con controles multimedia y un conector para auriculares en la parte delantera, como un reproductor de CD en mi camioneta en la escuela secundaria. Todo lo que necesitaba era energía, para lo cual también armé un adaptador.

  • Steven13 dice:

    Esto tiene aplicaciones prácticas potenciales. Si no tiene un adaptador de bandeja, ¡esto podría ayudarlo un poco!

  • Steven Clark dice:

    Necesitan dejar de ejecutar hardware de espacio de usuario, muchachos. Si puede escribir una implementación IDE, puede aprender a codificar un controlador básico (no compatible solo con las API esperadas / nodo dev).

    • Ø dice:

      Al chatear para probar la viabilidad de algo en Linux, mantenerlo en un espacio utilizable ahorra muchos dolores de cabeza.
      En última instancia, actúa de tal manera que este es un producto lanzado y no solo la única prueba de concepto que lo es.

    • NiHaoMike dice:

      Éste gestiona unos 44 MB / s bastante buenos:
      https://github.com/fenlogic/IDE_trial
      Cortar capas de abstracción realmente ayuda.

    • ziew dice:

      ¿Y cómo se relaciona exactamente su comentario con este proyecto llevado a cabo como motor principal?

  • tekkieneet dice:

    > red 800 kbit / s en interpretaciones y 500 kbit / s en escritos

    A tales velocidades, es posible que pueda ejecutar todo bien con SPI. Utilice 74HC595 para capturar datos de escritura en serie y 74HC597 para convertir las lecturas en serie. : P O implemente todo en CPLD junto con la máquina de estado y aproveche DMA para romper todo el bloque de datos.

    • tekkieneet dice:

      Por cierto, es el tipo de velocidad que esperaría de los microprocesadores de 8 bits que intentaban acceder a un puerto PATA de 16 bits en los años 80.

      • RW versión 0.0.1 dice:

        No, usted eludió esto con sistemas de 16/32 bits hasta que entró en uso el modo DMA 2 … y es compatible con discos y controladores de E / S / circuitos base. La marea cambió cuando las unidades IDE alcanzaron el rango de gigabytes en el extremo superior, pero tenían 4 o 500 MB en la misma tecnología en el extremo inferior. Aún sufriría con esa velocidad en los clones de gama baja, aunque cuando compraron cómo insertar una tarjeta ISA-I / O de 16 bits en un P75 con ranuras PCI, lo condenaron a volver al modo PIO 2 o algo que sistemas que todavía podrían encontrar a finales de los 90.

        • tekkieneet dice:

          Se enumera específicamente como * bits *, no bytes por segundo y no escribe en minúsculas inactivo incorrecto. es decir, 100 k bits / seg y 62,5 k byes / seg.

          • RW versión 0.0.1 dice:

            Oh maldición, cómo me perdí eso, probablemente porque espero que esté citado en bytes / seg, más lento que un disquete. Bueno, a menos que esté usando 1541 en un C64, entonces parece una “velocidad rápida”.

        • tekkieneet dice:

          He visto mejores que 100k Byes / seg incluso en unidades RLL antiguas en mi amigo. (¿te acuerdas de Palomax?)

          • RW versión 0.0.1 dice:

            Sí, ahora me pones directamente en bps Bps, es mucho más lento que alguna combinación de interfaz de hardware genuina con la que he jugado antes. Creo que vi solo 90kB / seg en un gran disco MFM, pero así me sucedió, un sistema completamente desordenado y lleno de virii, después de la limpieza, el formato de bajo nivel, rehacer entrelazado y reinstalación del sistema, terminó un poco 230 kB seg, que fue la “mejor” velocidad más lenta que he visto.

    • Ø dice:

      Oh, ¿por qué no usar “simplemente” algunos de esos chips de expansión de E / S I2C? Mi curiosidad patológica quiere ver que la interfaz PATA está en desacuerdo con algo que es un fideo húmedo en comparación con la interfaz paralela.

      • Manawyrm dice:

        Totalmente de acuerdo 🙂
        Esa fue la primera idea para este proyecto, de hecho. Lo puedes encontrar aquí:
        https://github.com/manawyrm/ATAPIHat
        (utiliza chips expansores de E / S SPI)

        El resultado es muy lento (~ 10 KByte / s si se hace correctamente).

    • tekkieneet dice:

      ¿No debería PATA ser tolerante a 5v? El reflejo y los anillos pueden ser muy desagradables en el viejo cable de 40 conductores sin suficientes retornos de tierra y sin terminaciones. Creo que simplemente relajan eso para Compact Flash.

  • ziew dice:

    El autor dice “800 KiB / s de lectura, 500 KiB / s de velocidad de escritura”, por lo que es un kilogramo * bytes *, no un kilogramo * bits *.

    De todos modos puede ser lento, pero me gusta porque es simple y versátil. Podría usarse en cualquier plataforma con un GPIO de respaldo: piense en STM32 o en una hipotética computadora unicornio con 3 puertos paralelos. Como cualquier otra interfaz de bits (SPI sobre GPIO, puerto sobre GPIO, UART sobre GPIO, Ethernet sobre GPIO, etc.) tiene su lugar.

    • Steve dice:

      Sí, me preguntaba cómo se puede reproducir un CD de audio digitalmente, ¿tiene 800 kilobits / si tiene velocidad de lectura? Porque un CD de audio requiere 2 x 44100000 x 16 bits por segundo = 1,4 Mega bits / segundo (+ arriba?) (A menos el CD se me dijo que reprodujera internamente y emitiera sonido a través de un DAC interno, al igual que algunos CD-ROM, y todo lo que hizo la interfaz PATA fue controlar el control de reproducción, en lugar de los datos de audio con tasa de bits completa)

      • ziew dice:

        El video en una página de proyecto que muestra una carga de CPU significativa durante la reproducción sugiere que el sonido digital realmente fluía.

        • Manawyrm dice:

          Sí, ese es un pequeño error en el artículo. El valor en el navegador GitHub es correcto.
          Es KByte / s, no KBit / s. La velocidad de transmisión de datos es cercana a los 10 MBit / s, tanto para la transmisión de audio de CD.

  • blanco dice:

    Vale la pena mirar esto, observar los principios de funcionamiento y el bamboleo de gpio, ya que también tengo una colección de unidades antiguas como ESDI, SCSI, SASI y Fujistu Eagle con las que me gustaría jugar.

  • Barry Thelemann dice:

    Creo que me quedaré con mi dongle USB, incluso a los 10 años tiene un SATA3 de 40 y 44 pines, además de un bloque de bower con todas las salidas necesarias. y costaba $ 20-30 hace una década, estoy seguro de que probablemente podría obtener la mitad de eso ahora en sitios como aliexpress – Idea divertida / Prueba de concepto, simplemente no puedo ver qué tan práctico es el tiempo / dinero invertido en créalo

  • James A. Dickens dice:

    ya que esto se compararía con el rendimiento ssd conectado a un adaptador usb 2.0 a un puerto sata,

    • Manawyrm dice:

      Muy muy mal. El adaptador USB 2.0 sería al menos 30 veces más rápido. (~ 30 MB de bytes son realistas a través de USB 2.0, esto equivale a 0,8-1 MB de bytes / s). Es una buena demostración de concepto, pero realmente no la recomiendo para uso práctico.

Alberto Gimenez
Alberto Gimenez

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *