Investigaciones previas sobre CHAMELEON96

Placas completas (con o sin programador incorporado): Terasic, Altera, "chinas", etc
Avatar de Usuario
jepalza
Spartan 3
Mensajes: 226
Registrado: 14 Ago 2018, 18:51

Investigaciones previas sobre CHAMELEON96

Mensaje por jepalza » 07 Sep 2020, 13:18

Gracias al aviso de Fran H. Sena, me he hecho con una placa muy coqueta, pequeña y en un principio, potente.
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

Imagen
Imagen

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
Adjuntos
pines.rar
(6.19 KiB) Descargado 282 veces
Última edición por jepalza el 08 Sep 2020, 10:32, editado 3 veces en total.

Avatar de Usuario
jepalza
Spartan 3
Mensajes: 226
Registrado: 14 Ago 2018, 18:51

Re: Investigaciones previas sobre CHAMELEON96

Mensaje por jepalza » 07 Sep 2020, 14:11

Pongo información que antes he olvidado.
Enlaces al Github del fabricante:
https://github.com/96boards
https://github.com/96boards/documentati ... hameleon96

Foro de esta placa que nos ocupa:
https://discuss.96boards.org/c/products/chameleon96/30
Pero que no merece la pena. Se nota que pasó desapercibida en su momento, y no hay nada que interese, muy pocos mensajes.
Nada que ayude.

Por cierto, subcritical también anda investigando el tema de la SDRAM a 1.8v. y su idea es usar una pseudosdram a 1.8v que emplea menos pines. También es BGA, por lo que el problema es parecido, ganamos en pines, pero perdemos compatibilidad con muchos cores. O en su defecto, habría que recompilar muchos de ellos, cambiando tipo de memoria.

----

nuevo avance (o retroceso):
despues de contabilizar los pines para una SDRAM de 3.3v en el conector EXT, veo que va a ser "imposible" (por ahora).
El número de pines utilizables en EXT son 30 si cuento con los cuatro de la resistencia, que habría que eliminar.
Pero la SDRAM requiere 38 (fijando a "1" CKE), nos faltan 8 pines mas. Algo mas drástico sería atar DQMB0 y 1 a GND, perdiendo la posibilidad de cambio de bancos, y reduciendo a la mitad el tamaño de la SDRAM. Pero solo ahorramos 2 pines.
En el conector del LCD (blanco) podemos coger esos 8 pines usando los 6 de un lado y los 2 del otro lado, que todos van en el mismo banco GPIO (3A,B,C,D) y asi evitamos tener que cambiar voltaje a bancos como el 4 o el 6 que los usan otros dispositivos.
Pero en ese conector del LCD se hace difícil preparar algo. Tendría que ser una placa al estilo de los cartuchos de la GameBoy por poner un ejemplo, y que tengo los 8 cables necesarios para llegar "por el aire" a la SDRAM enchufada en EXT.
No es ni fácil ni bonito. Quizás, una vez aclarado y sabiendo que funciona, se pueda hacer una SDRAM (BGA-1.8 o TSOP-3.3) que se encaja en ambos conectores, pero por ahora no lo veo viable (ni barato)

Avatar de Usuario
Subcritical
Spartan 3
Mensajes: 225
Registrado: 24 Ago 2018, 14:52

Re: Investigaciones previas sobre CHAMELEON96

Mensaje por Subcritical » 07 Sep 2020, 15:33

Adjunto información sobre la HYPERBUS HYPERRAM HYPERFLASH que en una configuración de 8Mbyte a 1v8 serían 12 pines y con el modelo caro de memoria en 4 unidades con un total de 64Mbytes serían 15 pines.

En hyperam últimos modelos van a 200Mhz con una latencia de 36ns y una transferencia de 400Mbytes/segundo, las más rápidas son los modelos de 1v8.

INFORMACIÓN HYPERRAM:
https://drive.google.com/file/d/10jXRMA ... sp=sharing

Vídeos:
https://www.youtube.com/watch?v=PASweIfNDQc

Video de como sueldan un bga de HYPERRAM en una configuración de 1 chip y otra de 4:
https://www.youtube.com/watch?v=dThZDl-QG5s
Última edición por Subcritical el 08 Sep 2020, 10:17, editado 1 vez en total.

Avatar de Usuario
jepalza
Spartan 3
Mensajes: 226
Registrado: 14 Ago 2018, 18:51

Re: Investigaciones previas sobre CHAMELEON96

Mensaje por jepalza » 07 Sep 2020, 15:53

Presento una idea para una SDRAM de 3.3 en vertical. Se podría hacer horizontal, pero sin llegar a tapar el conector del LCD, por que dificultaría su acceso.

Imagen

Los pines en el lado del conector EXT serían por ejemplo, los 16 de datos (D0-D15) y los 13 de bus (A0-A12), y por ejemplo el CLK, para ocupar los 30 posibles, ademas de eliminar las 4 resistencias R50-51-52-53 de abajo de la placa.
Ocuparíamos entonces, los pines 3, 5 y 7 al 34 (los pines 15,17,19 y 21 son los de las resis de 1.2k) (los pines 4 y 6 no pueden usarse). Ademas, de este conector podríamos coger el GND, pero no el VCC de 3.3v.
Luego, en el conector del LCD cogeríamos (mediante una faja de 8 cables) los pines 1,7,9,11,15,17,32 y 34 para las señales UMQ0/1, BA0/1, CS, WE, CAS y RAS.
quedaría ver de donde se puede coger el +3.3, que lo ideal, por sencillo de soldar, sería el pin del DPSW3 de abjo, el que alimenta los USB a 3.3.
La verdad, es que no es ni fácil ni bonito, pero no queda otra, si queremos SDRAM

El conector del LCD es muy pequeño, se solo 25mm. de largo, con un ancho interior de 1mm. (donde encaja la faja) y una separación entre pines de solo 0.8mm.
La separación entre el conector EXT y el del LCD es de unos 30mm.

edito: he visto que en el conector del LCD, los pines 32 y 34 tambien llevan resis 1.2k a +1.8v. Probalemente haya que anularlas. Son las R80 y R81.

Avatar de Usuario
jepalza
Spartan 3
Mensajes: 226
Registrado: 14 Ago 2018, 18:51

Re: Investigaciones previas sobre CHAMELEON96

Mensaje por jepalza » 08 Sep 2020, 07:26

Mas info:
Tras leerme los 7 millones de documentos que he localizado en la web de este fabricante (96boards) he visto que esta placa es algo "universal", que está pensada para acoplar a todos y cada uno de sus dispostivos.
Es como un lego, compras la base, en este caso, el chameleon96 (pero venden varios tipos mas, con arduino, con Atmel, con otras FPGA mas pequeñas, etc), y luego le vas acoplando en cascada los dispositivos que quieres emplear.
Según he podido entender, esta placa es mas para el mundo industrial, que para el desarrollo o nivel usuario. Ejemplos de uso, como alarmas, acceso condicional, cámaras de vigilancia, control por huella dactilar, aperturas de puertas, etc.
Venden módulos de todo tipo, para enganchar arriba, en los dos conectores (usando ambos a la vez, el EXT y el LCD, o solo uno de ellos), dando acceso a cámaras, wifi, USB extras, incluso añadir compatibilidad arduino o añadir un Atmel STM32 para expansion.

Nosotros, claro está, todo esto no lo necesitamos, solo lo indico para que se vea el mercado al que estaba destinada esta placa, motivo por el que, quizás, era tan desconocida, hasta que ha bajado de precio.

He localizado las medidas y distancias de los conectores, para aquel que se anime a fabricar una SDRAM de 1.8v BGA enganchada entre ambos conectores. Dejo dos fotos, una de ellas de una placa de expansión vista por debajo, para que se note como es la conexión.

Quedaría genial una memoria de ese estilo, que se engancha arriba. Sería superlimpio y compacto :P
Nota, que las medidas son en mm. y están corroboradas por mi. Las he verificado en el diseño 3D que hay en su web, y se puede decir que son reales y correctas. Sirven también para diseñar una caja a medida, con las salidas de los conectores :roll:

Imagen
Imagen

Estoy en proceso de localizar cada uno de los pines utilizables a nivel usuario, para crear un fichero QUARTUS que nos permita compilar los cores del Mister. Es un tanto complicado, a ver si a lo largo de la mañana lo consigo.

Avatar de Usuario
jepalza
Spartan 3
Mensajes: 226
Registrado: 14 Ago 2018, 18:51

Re: Investigaciones previas sobre CHAMELEON96

Mensaje por jepalza » 08 Sep 2020, 10:27

Dejo los pines definitivos ya organizados de los dos conectores. Es un fichero Excel con los nombres que vienen en el esquema, el pin que corresponde al conector (J3 o J8), su PIN físico en la FPGA (lo mas importante, para luego asignar al Quartus cuando se diseñe la RAM externa) y unas notas simples indicando si es un GPIO o si va "atado" a una resistencia de 1.2k

Tengo también ficheros mas completos, de los 484 pines de la FPGA, o de los 178 que van conectados a los diversos circuitos externamente a la FPGA, pero esos no tiene interes por ahora, dado que son parte integrante de la placa, y para controlarlos solo hay que coger los ficheros del fabricante, que ya tienen denominación y numeración.
CV_96_CONECTORES_J3_J8.XLSX
(11.73 KiB) Descargado 321 veces
En total, tenemos 30 en el J3 y 10 en el J8 utilizables sin modificaciones físicas en la placa (a excepción de las resis, que según su uso, podrían dejarse). El resto de pines, no se pueden usar, unos por que tienen también condensadores o filtros, y otros por que son mas complejos en circutería, como los MIPI, que su empleo daría mas dolores de cabeza que alegrías.

Por cierto, lo de MIPI he tenido que mirar su significado:
MIPI CSI --> Mobile Industries Processor Interface for Camera Serial Interface .... casi ná!!

Edito: había olvidado incluir 2 pines mas, en el conector J8, ya lo siento, veo que ya habéis cogido el XLS, volverlo a coger, que este es mas completo. Ahora tenemos 40 pines disponibles.

Avatar de Usuario
jepalza
Spartan 3
Mensajes: 226
Registrado: 14 Ago 2018, 18:51

Re: Investigaciones previas sobre CHAMELEON96

Mensaje por jepalza » 09 Sep 2020, 12:26

Creo que no puede emplearse memoria de 3.3v
He probado a compilar un ejemplo de la propia placa, poniendo a 3.3 los bancos 4A,7A,7B y 8A que son los que van a los conectores J8 y J3, y se ponen a 3.3, pero esos puertos tambien los emplean en parte el módulo WIFI-BT (en su mayoría, los gpio del banco 4A), con lo cual, ese módulo pasa a funcionar a 3.3 con el riesgo de quemarlo.
Si ese módulo hubiera estado aislado en otro banco, como el 6A o el 5A, no pasaría nada.

Eso nos deja pocas posibilidades. Vamos a tener que usar SDRAM a 1.8 formato BGA

Por lo tanto, dudo que podamos hacer pruebas con SDRAM normal, nada mas llegar la placa. Habría que fabricar una con BGA, que "pinche" ambos conectores, algo que entiendo complejo y caro. Como pros, al menos podremos usar el voltaje de 1.8 del conector

Existen adaptadores de BGA a DIP:
https://www.amazon.co.uk/BGA-36-TO-DIP- ... B084Q5TXJ3

Pero me da que los que las venden, creen que son joyas.
Lo mas barato que he encontrado, ronda los 25€ . Luego, una vez soldada la BGA, habría que adaptar el DIP de 2.54 al de 2mm. y al del LCD, un trabajo de mil pares de ....

Avatar de Usuario
Subcritical
Spartan 3
Mensajes: 225
Registrado: 24 Ago 2018, 14:52

Re: Investigaciones previas sobre CHAMELEON96

Mensaje por Subcritical » 10 Sep 2020, 08:53

Desde el foro FPGA de la @Chameleon96, tenemos un enlace con recopilación de lo que se ha descubierto en el grupo de Telegram, somos casi 50 personas trabajando codo con codo, a ver si te puede ser de utilidad alguna documentación que se genere en el mismo.

Enlace recopilatorio:
https://telegra.ph/Chameleon96-09-09

Avatar de Usuario
Subcritical
Spartan 3
Mensajes: 225
Registrado: 24 Ago 2018, 14:52

Re: Investigaciones previas sobre CHAMELEON96

Mensaje por Subcritical » 10 Sep 2020, 09:26

He realizado una pregunta/encuesta en el grupo de la @Chameleon96 sobre el Quartus mas compatible o que Quartus se usará principalmente, La pregunta es la siguiente. ¿Que versión de Quartus II usarás para la @Chameleon96?

Encuesta en el grupo @Chameleon96:
https://t.me/Chameleon96/3742

Avatar de Usuario
jepalza
Spartan 3
Mensajes: 226
Registrado: 14 Ago 2018, 18:51

Re: Investigaciones previas sobre CHAMELEON96

Mensaje por jepalza » 10 Sep 2020, 21:27

Yo estoy usando el Quartus 17.1 y por ahora, sin problemas.

Lo de la sdram, al final va a tener que ser hyperram, la que tiene menos pines, por que la otra solo está dando quebraderos de cabeza. Al ocupar 38-39 de los 40 pines, y obligar a eliminar resistencias, causa mas problemas que alegrías.
Si luego se quiere añadir otro mini-sd para los cores que lo pidan, o un DB9 para un mando "viejo", no quedan pines libres.

Así que, mal que me pese, va a tener que ser hyperram, y retocar todos los cores. Trabajo de mil pares de .... Pero entre todos, algo se podrá hacer.

Responder

Volver a “Placas entrenadoras”