Es una placa llamada "CHAMELEON96", de la web https://www.96boards.org/product/chameleon96 , que se ha vendido en la web https://www.arrow.com/en/products/chame ... ovtech-inc y ha durado menos que un caramelo en la puerta de un colegio.
La placa en cuestión, usa una FPGA Altera Cyclone V-SOC con un ARM9, modelo 5CSEBA6U19I7 (UFBGA-484) (la de la MISTER es una CSEBA6U23I7, idéntica en todo excepto en pines, que tiene 600 y pico, frente a los 484 de esta que he comprado). Costaba sobre los 130 dólares, pero ha bajado de precio y sacaron unas 100 unidades a solo 34€ aprox. gastos incluídos.
Para trastear y tratar de convertir en la próxima Mini-MISTER es ideal. Solo mide 84*54, como una tarjeta de crédito mas o menos. (bueno, sin el "mas o menos", mide tal cual lo que una tarjeta de crédito). Tiene WIFI, Bluetooth, HDMI, mini-sd, conector para un LCD, puerto serie, JTAG (creo que ademas, se puede programar por usb-jtag) y un conector externo de ampliación de 40 pines (y dos USB "normales"). Lleva memoria DDR3, desgraciadamente, por que es un tipo de memoria que NINGÚN creador de cores retro quiere para nada. Las memorias DDR son MUY complejas de usar, requieren unos tiempos de espera intragables en los sistemas 8-16 bits que todos conocemos. Y no hay (por ahora, al menos, conocido por mi) ningún "emulador" de memorias SRAM o SDRAM a partir de DDR3, por lo que, la memoria integrada de esta placa, queda descartada.
En la Mister, la memoria DDR integrada, creo que se emplea como buffer de escritura para la salida de imagen por HDMI, gracias a su capacidad y velocidad, y en algunos cores como el del AO486, que se emplea como caché en las últimas versiones de Sorgelig, que han logrado acelerar un 85% según he leído, usando este tipo de memoria.
Todo apunta, a que esta placa es perfecta para clonar al Mister, pero solo con cores simples, sobre todo Arcades, que emplean BRAM ( y de eso, esta Cyclone5 tiene MUCHA, unos 630k disponibles para meter ROMS o RAM directamente). Pero la mayoría de cores, según esta web:
https://github.com/MiSTer-devel/Main_Mi ... -use-SDRAM
Emplean SDRAM como alternativa si la encuentran, o de manera obligatoria.
Sin SDRAM nos vemos limitados en el número de cores.
Es fácil pensar que podemos usar el EXT para meter una SDRAM, pero no es posible por dos razones, pero sobre todo por una principal: emplea 1.8v para su control, y las SDRAM que todos conocemos en multitud de proyectos con FPGA, son de 3.3v , y el otro problema es el número de pines libres (que luego comento).
Existen SDRAM de 1.8v. pero son en formato BGA, las que tienen "bolitas" de estaño por debajo, y eso se aleja del concepto de "hazlo en casa". Pocos podrían soldar una BGA en su casa. Otro problema añadido, problema menor, es que el conector EXT es de los "mini", o sea, de los de 2mm. entre pines, y no de 2.54mm. típico de toda la vida.
El número de pines, como decía arriba, también está limitado. He contado 16 a un lado y 14 al otro útiles, pero 4 de ellos están atados a resistencias "pullup" a 1.8v. con resistencias de 1.2k, lo que solo deja 26 pines libres. Una SDRAM típica de 3.3v necesita 39 pines, que se pueden reducir a 38 si atamos CKE a "1", pero siguen sin llegar. Se puede mirar que pines de la "futura" SDRAM pueden ir en PULLUP, y emplearlos en ellos, pero sigue el problema del 1.8v.
Soluciones que se me ocurren:
--la mas obvia, usar SDRAM de 1.8v con un conector de 2mm. de 20x20, la mas limpia de todas, pero la mas cara y compleja
--la mas simple, usar SDRAM típica de 3.3v con un adaptador a 2mm. y NO USAR la alimentación de 1.8v del conector EXT., para lo cual, habría que soldar sí o sí un cable de 3.3v a la placa, en el pin del interruptor de alimentacion de los USB.
Y luego "rezar" para que ese banco (en concreto, los bancos 3A,B,C y D) se puedan cambiar desde la FPGA a +3.3v. sin afectar a otros dispositivos. Cambiar, se deja cambiar, ya lo he probado, pero no sé aún si por ejemplo el WIFI, el BT o cualquier otro, se verá afectado también, y se cambiará a 3.3v y los freiremos. Ya he visto que los bancos del EXT, parte de los GPIO de otros elementos, como el conector del LCD, los emplean, por eso, cambiar voltaje a una cosa, puede afectar a otra. POr ahora es un dato que desconozco, nunca me he enfrentado a eso, siempre he trabajado a 3.3 o 5
--el problema de los pines, si no llega con los del EXT, se puede anular las 4 resistencias de 1.2k para que no influyan (quitando de la placa) o se puede usar el conector del LCD, que es muy especial, pero tiene otros 5 o seis utilizables en el mismo grupo de GPIO que el EXT (bancos 3A,B,C,D)
Por mi parte, me voy a fabricar un adaptador de SDRAM 3.3v con pines 2.54 a 2mm, que quedaría en vertical, para poder trabajar cuando llegue la placa. Espero no trabajar en balde soldando 29 cablecillos para que luego no sirva de nada.
Dejo unas fotos y ficheros, que pueden ser útiles para empezar con la programación de esta placa. El fichero principal del kit de programación, lo he bajado de la web del fabricante (son 4gb) usando un registro falso , por que no deja registrar si no es con el nº de serie de la placa, y como aún no la tengo, he hecho una pequeña trampa para tenerlo.
Luego, están los ficheros de los pines posibles de esta placa, como los de la DDR, que son pines ocultos, que solo quartus conoce al programar la memoria, pero al sacar el "log" final, los indica, y yo los he organizado a mi gusto.
enlace drive con el kit de desarrollo:
https://drive.google.com/file/d/12WAAMi ... sp=sharing
Edito: tras mirar todo con lupa, los bancos que emplean no son los 3A, 3B, 3C, 3D como indicaba antes, sino los 4A, 7A, 7B y 8A y es un problema modificar su voltaje, dado que otros periféricos van al mismo banco, y se modifica el voltaje por grupos, no individualmente. Eso afectaría por ejemplo al módulo WIFI-BT, que podría quemarlo