• Va quedando muy bien.  biglaugh
    Yo ultimamente ando ocupado con otras cosas, y todavia no me decido que usar como ROM de la computadora. El tema de la SD me interesa pero no se si precisamente para la ROM, si como medio de almacenamiento masivo. Tambien, aunque la maquina sea de 8 bits, me interesa soportar FAT32 y toda la capacidad de cualquier tarjeta que se le pueda poner, aunque no se use.
    Esta bueno que no hayas usado SPI por hard, porque despues vas a tener que trasladar las rutinas al 6502 y al hacer todo por soft es solo cuestion de ajustar los tiempos. Ahora, vas a utilizar el mismo metodo para la computadora? Porque si es asi, primero el PIC tendria que cargar la ROM en RAM (desde la SD), y despues seria conveniente que de alguna manera le pase el control de la SD al 6502, a menos que una vez arrancado el sistema el mismo PIC se adapte como intermediario entre el 6502 y la SD, y de paso que funcione como una especie de CIA.
     

  • En este caso quedo el manejo de SPI por hard, pero es minimo el cambio para pasarlo a controlar por software, es una sola funcion que envia y recibe a la vez, generas 8 ciclos de reloj y en cada ciclo envias el bit que tenes que enviar (si no tenes que enviar nada, mandas todo 1) y lees el bit que envia el esclavo (si solo estas enviando y no leyendo, una vez leido ignoras el byte), es muy simple. El Pic por hard lo hace mucho mas rapido, porque anda a la misma velocidad que el ciclo de ejecucion (ahora que me acuerdo no, lo hice andar a 1Mhz igual que el SD64, en vez de 3mhz  tendria que ver por que). Es trivial implementarlo en la C64 por ejemplo.

    Tenia la idea de hacer una expansion con una SD para la C64, con un PIC una RAM de 32 o 64KB mapeada como expansion de cartucho y un lector SD. El cartucho al bootear levanta siempre el mismo BIN, ponele BOOT.BIN y lo tira en la RAM y luego le da el control a la C64. En el BIN o en otro archivo tambien habria una descripcion de como se va a mapear la memoria y si la C64 va a poder hablar con el PIC o no va a estar mapeado y si la RAM es escribible o emula una ROM.

    La C64 va a bootear ese cartucho, y si tiene acceso al PIC habilitado la ROM que levante podria ser una interfase para cargar datos desde la tarjeta SD, enviando datos a travez de SPI por intermedio del PIC.
    Resumiendo, el PIC sabe de la SD y la FAT lo minimo para cargar el BOOT.BIN y le da acceso SPI completo a la C64. El BOOT.BIN que corre en la C64 (codigo 6510) implementa de forma completa el formato FAT16 y FAT32 y toda la forma de cargar programas. De esta forma no habria que tocar mucho codigo en el PIC, sino modificar el archivo de la SD.

        Supongo que esa expansion con tarjeta SD que anda dando vueltas   hace algo parecido a esto.

      Igual voy a ver si primero termino ocho chiche que quiero incluirle a la expansion esa...

    Acerca de usar el PIC para otra cosa ademas de mapear la RAM, pensa que para que el PIC controle una RAM de 64KB necesitas 16 I/O para el bus de direcciones, 8 para el de datos, 1 para R/W , 1 para Chip select y 3 para el SPI de la SD, da 29 patas solo para esto, asi que salvo que metas mas integrados de buffers, multiplexolres, lactes etc, te vas a quedar corto de patas para manejar muchos chirimbolos.

         Saludos
        MARCOS
     

  • En este caso quedo el manejo de SPI por hard, pero es minimo el cambio para pasarlo a controlar por software, es una sola funcion que envia y recibe a la vez, generas 8 ciclos de reloj y en cada ciclo envias el bit que tenes que enviar (si no tenes que enviar nada, mandas todo 1) y lees el bit que envia el esclavo (si solo estas enviando y no leyendo, una vez leido ignoras el byte), es muy simple. El Pic por hard lo hace mucho mas rapido, porque anda a la misma velocidad que el ciclo de ejecucion (ahora que me acuerdo no, lo hice andar a 1Mhz igual que el SD64, en vez de 3mhz  tendria que ver por que). Es trivial implementarlo en la C64 por ejemplo.

    Yo no maneje todavia tarjetas SD pero si use memorias flash serie que funcionan a 3.3V y usan SPI, tambien tienen acceso por bloques asi que no me extrañaria que sean exactamente iguales a las SD en el manejo.

    Tenia la idea de hacer una expansion con una SD para la C64, con un PIC una RAM de 32 o 64KB mapeada como expansion de cartucho y un lector SD. El cartucho al bootear levanta siempre el mismo BIN, ponele BOOT.BIN y lo tira en la RAM y luego le da el control a la C64. En el BIN o en otro archivo tambien habria una descripcion de como se va a mapear la memoria y si la C64 va a poder hablar con el PIC o no va a estar mapeado y si la RAM es escribible o emula una ROM.

    La C64 va a bootear ese cartucho, y si tiene acceso al PIC habilitado la ROM que levante podria ser una interfase para cargar datos desde la tarjeta SD, enviando datos a travez de SPI por intermedio del PIC.
    Resumiendo, el PIC sabe de la SD y la FAT lo minimo para cargar el BOOT.BIN y le da acceso SPI completo a la C64. El BOOT.BIN que corre en la C64 (codigo 6510) implementa de forma completa el formato FAT16 y FAT32 y toda la forma de cargar programas. De esta forma no habria que tocar mucho codigo en el PIC, sino modificar el archivo de la SD.

    Entonces vas a usar la C64 como maquina de desarrollo? Imagino que vas a probar desactivando la ROM desde el puerto de expansion y cargando la ROM tuya desde la SD a la RAM de la C64.
    En cuanto al soporte de FAT32 me referia justamente a implementarlo en el 6502, no en el PIC, si llegara a hacer lo mismo que vos lo haria de igual manera, pero como dije todavia no me convence lo de cargar la ROM desde SD. Tengo por ahi varias memorias flash de 512K de acceso paralelo, de 5V, que compre en Cika, pensaba usar alguna pero el problema es que las patas tienen un paso muy chico, en una placa como la que usaste, caen 5 pines en cada isla. La memoria es AM29F400BB, Cika te pide comprar un minimo asi que si queres alguna en el futuro decime y vemos como te la mando. La memoria ademas anda en 8 o 16 bits de datos, con Pablo la ibamos a usar para hacer cartuchos multiples para C64, y tambien para actualizar la ROM de la Amiga.

    Acerca de usar el PIC para otra cosa ademas de mapear la RAM, pensa que para que el PIC controle una RAM de 64KB necesitas 16 I/O para el bus de direcciones, 8 para el de datos, 1 para R/W , 1 para Chip select y 3 para el SPI de la SD, da 29 patas solo para esto, asi que salvo que metas mas integrados de buffers, multiplexolres, lactes etc, te vas a quedar corto de patas para manejar muchos chirimbolos.

    Si, me olvidaba que te acoplas al bus para cargar la ROM, como yo todavia no pense en esa alternativa, pensaba mas en utilizar el PIC como manejador de E/S. Igual creo que lo mas importante son los puertos serie por hard en el PIC, podrias hacer las rutinas para agregar un buffer de emision y recepcion en el PIC para liberar al 6502, y tal vez hacer un conversor D/A utilizando la salida PWM del PIC, ademas de los A/D que trae. Son funciones que justifican el precio del PIC en el proyecto y usan muy pocos pines.
     

  • Marcos, sos un fenomeno ! De solo ver esos cables casi me agarra un infarto jaja.
     

  • Marcos, fabulosos che, me enganche tarde con este tema, pero por el asunto de los 3,3v podes ponerle tres diodos 1n4004 en serie con la fuente asi sumando las caidas de tension por diodo 0.8v tenes una caida de tension del orden de los 2.4v y obtenes del otro lado unos 3,5v pero sin perdida de corriente, yo asi alimente la sd2iec dentro de la c64 tomando alimentacion de los 5vcc, espero te sirva.
     

  • Asi esta quedando con el gabinete de acrilico, cuando le saque los nylons que traen las planchas de acrilico deberia quedar totalmente transparente, asi se ve todo el cablerio de arriba y abajo sin tener que desarmar. Todos los botones y perillas para manejar el atari quedan del lado de arriba y los que le solde a la placa se los quito y le pongo algunos componentes que no me entran ahora, asi queda todo en una placa y se puede manejar de afuera.  Los dos joystick me doy cuenta que quedaron muy juntos, pero igual estan mas de prueba, igual del lado de abajo le voy a poner 2 DB9 para conectar joysticks de Atari, y estaba pensando en ponerle dos potenciometros a los lados para los pads, pero quedara para algun upgrade.


          Saludos
         MARCOS
    Atari Mjl 11
     

  • Marcos, fabulosos che, me enganche tarde con este tema, pero por el asunto de los 3,3v podes ponerle tres diodos 1n4004 en serie con la fuente asi sumando las caidas de tension por diodo 0.8v tenes una caida de tension del orden de los 2.4v y obtenes del otro lado unos 3,5v pero sin perdida de corriente, yo asi alimente la sd2iec dentro de la c64 tomando alimentacion de los 5vcc, espero te sirva.



    Yo en la primera placa de sd2iec (en realidad era el proyecto anterior en el que estaba basado la sd2iec, mmc2iec? ) tambien habia bajado de 5 a 3 con algo con diodos, pero me heche atras antes de probarlo porque habia leido que no convenia salirse mucho de los 3.3 V en algunas tarjetas SD, y en esta antes de ponerle el LM317 estaba ya poniendole los diodos cuando dije ma si! y fui a lo seguro, pero tengo pensado hacer varias cosas con tarjetas SD, asi que tengo que averiguar si es 100% confiable pasarse un cacho de los 3.3. Vos no tuviste ningun drama veo, no?

           Saludos
          MARCOS
     


  • Yo no maneje todavia tarjetas SD pero si use memorias flash serie que funcionan a 3.3V y usan SPI, tambien tienen acceso por bloques asi que no me extrañaria que sean exactamente iguales a las SD en el manejo.


    Debe ser el mismo protocolo, igual la ventaja con la SD es que te colgas de lo que armo el sistema operativo que formateo y grabo la tarjeta, lo podes hacer en una memoria fija, pero no es lo mismo.


    Entonces vas a usar la C64 como maquina de desarrollo? Imagino que vas a probar desactivando la ROM desde el puerto de expansion y cargando la ROM tuya desde la SD a la RAM de la C64.
    En cuanto al soporte de FAT32 me referia justamente a implementarlo en el 6502, no en el PIC, si llegara a hacer lo mismo que vos lo haria de igual manera, pero como dije todavia no me convence lo de cargar la ROM desde SD. Tengo por ahi varias memorias flash de 512K de acceso paralelo, de 5V, que compre en Cika, pensaba usar alguna pero el problema es que las patas tienen un paso muy chico, en una placa como la que usaste, caen 5 pines en cada isla. La memoria es AM29F400BB, Cika te pide comprar un minimo asi que si queres alguna en el futuro decime y vemos como te la mando. La memoria ademas anda en 8 o 16 bits de datos, con Pablo la ibamos a usar para hacer cartuchos multiples para C64, y tambien para actualizar la ROM de la Amiga.

    Tengo algunas memorias flashs PLCC y DIP, que saque de mothers y que compre en GM (a precios astronomicos comparados con CIKA) pero mas que nada para hacer alguna prueba, pero mas que nada me interesa usar tarjetas SD porque no necesits grabador, aunque un grabador de flash es mas bien trivial, es un paso mas que complica, me tira mas hacer un cartucho de C64 con RAM + SD, en el atari al no tener lineas de control para detener al micro, si o si hay que usar una RAM statica con bateria que se cargue desde la SD antes de encender el atari.

      Igual el tiempo es un bien escaso, voy a tener que descartar algo, lo de la C64 me parece que no va, mejor termino mis experimentos con micros sueltos.


           Saludos
          MARCOS
     

  • Excelente! Mil felicitaciones!
     

  • Excelente proyecto! felicitaciones wink
     

Moderador (s): homecomputer, Selandari, ArielP, pastbytes, Durandal