• Ja!!!
    Esa es mas o menos la cantidad de instrucciones que estaba pensando se podrian ejecutar. smile
    Hay que hacer que todas demoren lo mismo, o 2x, como para simplificar.


      Cada vez confio menos en ese numero 50 que tire por ahi smile por las dudas ponele 3x... o 4x  . Igual siempre existe la posibilidad de usar un 18F a 40mhz.... A la noche me fijo en codgo que estuve escribiendo porque ahora no sabria que decir.
      El tema es la compatibilidad 100%, porque a las instrucciones de suma y resta hay que ponerle que cambien la forma de ejecutar segun el flag D (trabajan en decimal) todavia no le hice esto, pero roba mucho tiempo. Lo mismo con la actualizacion de los flags luego de cada operacion, porque no podes usar la misma flag que el pic.

      Igual ahora que estuve con esto, me volvieron las ganas de hacer algo con una ULA, voy a ver si uno de estos dias me hago un micro simple con dos 74HC181, sin microcodigo con instrucciones de 24 o 32 bits.



    Tambien coincido en lo de usar otros micros para las tareas perifericas. En mi cuaderno acabo de dibujar unos bocetos, e imagino un "bus" con las 16 lineas de direcciones, las 8 de datos, las de control, reset, +5V, GND y +12V y -12V por las dudas, con conectores de bus ISA de 8 bits (tienen 31x2 pines, pero con los de un solo lado alcanzan y no estamos obligados a usar placas dobles faz).

    En ese "bus" imagino plaquitas para leer el teclado PS/2 y enviar el dato ASCII de la tecla al bus, lo mismo para el LCD, e incluso la RAM podria estar en una de estas placas. Se pueden ir pensando en otras ampliciones (RS-232, sonido, etc) para mas adelante.

    Pero lo importante es que despues de muchas vueltas, parece que es posible.


      El teclado no me parece que tenga que estar tan prpcesado. que te convierta a ascii y todo eso, me parece que el intemediario deberia guardar el ultimo byte que entro asi en crudo, y darle algo de trabajo al micro emulado, o de ultima guardar el estado de teclas precionadas pero por posision.

         Saludos
        MARCOS
     


  •   Igual ahora que estuve con esto, me volvieron las ganas de hacer algo con una ULA, voy a ver si uno de estos dias me hago un micro simple con dos 74HC181, sin microcodigo con instrucciones de 24 o 32 bits.


    No dejes de comentar como vas con eso....es tambien una tarea pendiente smile
     

  • Hola!
    Me lo he tomado en serio. Será mi proyecto para el 2010 (aunque ya he comenzado a trabajar en el).

    Será un ordenador basado en un 18F4550 de 20MHz, capaz de ejectuar entre 50 y 80 mil instrucciones de "codigo de maquina propio" por segundo, con un bus de datos de 16 bits (mas un bit para seleccionar RAM/ROM). Tendra 64KB de RAM y 128 KB de FLASH (64 para una especie de biblioteca de funciones y otros 64KB como "disco flash"), un bus de datos de 8 bits, capacidad para expandirse hasta con 256 perifericos (menos, por que la RAM, la ROM, teclado y pantalla son cada uno un periferico), etc.

    Tengo todos los lineamientos y los primeros borradores del hard/soft en mi foro, pero prometo ir pasando en limpio todo en este hilo, por si alguien quiere criticar, sugerir o, por que no, construirse uno.

    El teclado sera PS/2, la pantalla inicialmente 5 displays de 7 segmentos (para depuracion) y luego un LCD alfanumerico de 20x4 (y mas tarde un TC, 128x64 pixeles para arrancar), etc.

    Ideas sobra...vamos a ver cuanto lleva terminar esto  wink
     

  • Aca va una version del emulador de 6502 que por lo menos compila, pero todavia le faltan cerrar unos detalles.
    Una cosa que no tuve en cuenta es que usando nada mas que macros (en lugar de subrutinas) ahorro tiempo de ejecucion, pero el codigo se hace muy grande para lo poco que direcciona el pic, y puede que necesite usar paginado o cosas de esas. Despues tengo que que conviene
    No probe con assembler de 18F, no se que ventajes tiene.

      Hacer un ser e instrucciones propios es mucho mas simple (creo) y en vez de pagina 0 podemos usar la memoria interna del micro con operaciones de movimiento de datos dentro de registros, sin salir a memoria y sin usar mas de una instruccion.

            Saludos
           MARCOS
     

  • Hola Marcos!
    Que buen trabajo!
    No uso normalmente ASM, asi que estoy medio perdido, pero eso no me impide notar que esta muy bueno. Y bien documentado!

    Yo ya tengo hasta el "mother" y las tarjetas de expansion diseñadas.

    ¿Puedo postear este código en mi foro para que los que se estan quebrando la cabeza con el soft saquen alguna idea?  confused
     

  • Hola Marcos!
    Que buen trabajo!
    No uso normalmente ASM, asi que estoy medio perdido, pero eso no me impide notar que esta muy bueno. Y bien documentado!

    Yo ya tengo hasta el "mother" y las tarjetas de expansion diseñadas.

    ¿Puedo postear este código en mi foro para que los que se estan quebrando la cabeza con el soft saquen alguna idea?  confused


      Dale postealo. Ya decidiste que puertos del micro vas a usar como buses? son 3 puertos (2 de salida y uno de entrada/salida), por lo que vi se puede usar cualquiera, no hay ninguno que convenga mas que otro por alguna caracteristica especial. Lo unico que puede ayudar es por el tema de la ubicacion de los componentes en el mother, y tal vez evitar usar un puerto sin salida TTL. Creo que todos los pics de 40 patas, sean 18F o 16F tienen las mismas patas.

          Saludos
          MARCOS
     

  • Hola Marcos!
    Que buen trabajo!
    No uso normalmente ASM, asi que estoy medio perdido, pero eso no me impide notar que esta muy bueno. Y bien documentado!

    Yo ya tengo hasta el "mother" y las tarjetas de expansion diseñadas.

    ¿Puedo postear este código en mi foro para que los que se estan quebrando la cabeza con el soft saquen alguna idea?  confused


      Dale postealo. Ya decidiste que puertos del micro vas a usar como buses? son 3 puertos (2 de salida y uno de entrada/salida), por lo que vi se puede usar cualquiera, no hay ninguno que convenga mas que otro por alguna caracteristica especial. Lo unico que puede ayudar es por el tema de la ubicacion de los componentes en el mother, y tal vez evitar usar un puerto sin salida TTL. Creo que todos los pics de 40 patas, sean 18F o 16F tienen las mismas patas.

          Saludos
          MARCOS


    Si, ya decidi todo. De hecho, acabo de meter la placa del "mother" en percloruro (con los 8 slots de expansion me quedo un impreso de 18x15cm, una sola cara.
    Hoy a la tarde, luego de dormir un poco (anoche deje a las 4AM) voy a poner el código que me pasaste (gracias, gracias, gracias, gracias) con tus datos y comentar lo que estas haciendo.  wink
     

  • Quizas habria que pasar este hilo a "Proyectos de hardware" o algo mas apropiados.  ::)

    Asi quedo el "mother" de la "PICPuter v0.50"

    El paso siguiente es diseñar:

    1) La placa de la FLASH

    2) El grabador (y el soft) para grabar la FLASH. Va a tener un zocalo "tipo ISA" donde enchufar la placa completa de la FLASH, para ir actualizando el firmware y hacer algunas pruebas con el PIC y la FLASH solamente.

    3) Una placa con 5 displays de 7 segmentos y LEDs indicadores. Esta placa montada en el bus del mother va a servir para poder "ver" los valores que va adoptando el bus de datos, de direcciones y las señales del ordenador (que grande suena todavia la palabra "ordenador"  :-/ )

    4) La placa de la RAM

    5) La placa del LCD.

    6) La placa del telcado (LCD y teclado pueden estar en la misma placa, y nos ahorramos un slot)

    Con eso ya tendriamos un hard "comodo" como para empezar a programar "en serio". smile

    Supongo que empezare el lunes con una placa de expansion "para prototipos", llena de PADs, como para ver bien las medidas, y luego diseñaré las otras  wink
    SDC10550
     

  • Otra foto, pre-soldaduras:

    SDC10518
     

  • Muy bueno!

    Ahora lo muevo. [smiley=clap.gif]
     

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