Identificación de AY-3-8910, YM2149 y clones

¿Tienes problemas con tu equipo?, preguntanos.

Moderador: Fundadores

Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5869
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1209 times
Been thanked: 2829 times
Contactar:

Re: Identificación de AY-3-8910, YM2149 y clones

Mensaje por cacharreo »

Para vuestra información he intentado incorporar la detección utilizando los bits no utilizado del registro 1 a una ROM de diagnóstico para Amstrad CPC y, quizás por algún filtro producido por el hardware adicional (PPI, etc. pero no lo creo), al leer de vuelta el registro 1 después de haber escrito un 31 siempre obtengo 15 independientemente del PSG. Y que conste que está probado con un YM2149F que es detectado como tal en un Spectrum con AYdete.

También es interesante que un Inves Spectrum 48k+ con todo igual, la misma tarjeta de sonido, el mismo YM2149F, los mismos cables, todo, todo, solo cambiar el Spectrum 48k+ por el Inves, el AYdete detecta el PSG como AY-3-891x. :))
© cacharreo
berarma
Aspirante a demonio
Aspirante a demonio
Mensajes: 204
Registrado: 07 Jun 2023, 10:57
Has thanked: 74 times
Been thanked: 28 times

Re: Identificación de AY-3-8910, YM2149 y clones

Mensaje por berarma »

Me mosquea bastante porque tanto resultado extraño tiene que esconder algún secreto.

Envié mi modificación para que la biblioteca de Arduino estuviera dentro de las especificaciones de tiempos en las escrituras, y el autor, además de incluirla, ha hecho aun más cambios para reducir también los tiempos de lectura, además de desactivar las interrupciones para que estos sean más estables. Estos cambios están en la nueva versión 2.0.0 de la biblioteca. Cuando pueda la probaré pero no espero cambios respecto a las pruebas que ya hice. Ya os comentaré.

Estoy escribiendo un sencillo programa para probar la parte de audio del chip con Arduino usando el oído. No he hecho nada de la parte de puertos I/O. Si interesara lo puedo subir a Github y si alguien lo pide añadir un test de puertos.
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5869
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1209 times
Been thanked: 2829 times
Contactar:

Re: Identificación de AY-3-8910, YM2149 y clones

Mensaje por cacharreo »

berarma escribió: 09 Ene 2024, 01:01Me mosquea bastante porque tanto resultado extraño tiene que esconder algún secreto.
A mí también. Llegué a pensar que le afecta la frecuencia (fMaster) porque es el parámetro que se me ocurre que cambia de uno a otro sistema pero no he hecho pruebas (inútiles por otro lado porque hay sistemas a los que no iba a poder cambiarla).
berarma escribió: 09 Ene 2024, 01:01Envié mi modificación para que la biblioteca de Arduino estuviera dentro de las especificaciones de tiempos en las escrituras, y el autor, además de incluirla, ha hecho aun más cambios para reducir también los tiempos de lectura, además de desactivar las interrupciones para que estos sean más estables. Estos cambios están en la nueva versión 2.0.0 de la biblioteca. Cuando pueda la probaré pero no espero cambios respecto a las pruebas que ya hice. Ya os comentaré.
Genial. ¿Hablaste con Andy del problema de la detección de los YM2149F? En mi caso la conversación se quedó congelada cuando le confirmé que efectivamente eran YM2149F y que el mismo PSG en diferentes sistemas daba resultados dispares y no volvió a decir nada.

Quedamos a la espera de esas pruebas.
berarma escribió: 09 Ene 2024, 01:01Estoy escribiendo un sencillo programa para probar la parte de audio del chip con Arduino usando el oído. No he hecho nada de la parte de puertos I/O. Si interesara lo puedo subir a Github y si alguien lo pide añadir un test de puertos.
En las modificaciones que hice para la Amstrad Diagnostics 1.4.001 VdR se comprueban los generadores de tono y ruido. Un test de puertos sería de gran utilidad pero es complicado hacerlo de forma genérica, sin conocer de antemano qué hay detrás conectado (y si lo hay).
© cacharreo
berarma
Aspirante a demonio
Aspirante a demonio
Mensajes: 204
Registrado: 07 Jun 2023, 10:57
Has thanked: 74 times
Been thanked: 28 times

Re: Identificación de AY-3-8910, YM2149 y clones

Mensaje por berarma »

cacharreo escribió: 09 Ene 2024, 07:57 ¿Hablaste con Andy del problema de la detección de los YM2149F? En mi caso la conversación se quedó congelada cuando le confirmé que efectivamente eran YM2149F y que el mismo PSG en diferentes sistemas daba resultados dispares y no volvió a decir nada.
Le comenté de pasada que ese era el motivo para hacer las modificaciones pero que no resultó. No comentó nada del tema.
cacharreo escribió: 09 Ene 2024, 07:57 En las modificaciones que hice para la Amstrad Diagnostics 1.4.001 VdR se comprueban los generadores de tono y ruido. Un test de puertos sería de gran utilidad pero es complicado hacerlo de forma genérica, sin conocer de antemano qué hay detrás conectado (y si lo hay).
Sí, es algo así pero para hacerlo sobre una protoboard con un Arduino. Para los puertos había pensado en algo sencillo. Interconectar el puerto A y el B, y hacer escrituras y lecturas de un puerto al otro. Con los dos puertos en modo lectura también se debería leer todo unos.
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5869
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1209 times
Been thanked: 2829 times
Contactar:

Re: Identificación de AY-3-8910, YM2149 y clones

Mensaje por cacharreo »

berarma escribió: 09 Ene 2024, 11:29Para los puertos había pensado en algo sencillo. Interconectar el puerto A y el B, y hacer escrituras y lecturas de un puerto al otro. Con los dos puertos en modo lectura también se debería leer todo unos.
Entendido. Esto sería posible en los AY-3-8910 e YM2149 pero no en los AY-3-8912 ó 8913.

Por otro lado, si no recuerdo mal las hojas de especificaciones de los AY-3-8910 que tengo difieren al numerar los puertos respecto a las de los YM2149F siendo más claras las especificaciones en estos últimos.

Y, por último, ¿conoces alguna forma de leer el contador del volumen de la envolvente E5E4E3E2E1E0 o es un registro interno del PSG?
© cacharreo
berarma
Aspirante a demonio
Aspirante a demonio
Mensajes: 204
Registrado: 07 Jun 2023, 10:57
Has thanked: 74 times
Been thanked: 28 times

Re: Identificación de AY-3-8910, YM2149 y clones

Mensaje por berarma »

cacharreo escribió: 09 Ene 2024, 11:49Entendido. Esto sería posible en los AY-3-8910 e YM2149 pero no en los AY-3-8912 ó 8913.
Cierto. Estoy pensando solo en esos modelos que son los que tengo para pruebas, no había pensado en nuestros queridos Spectrum, Amstrad, etc.

Solo se me ocurre conectar una memoria al puerto para hacer pruebas pero no sería sencillo con solo un registro. Otra idea más simple pero muy manual sería conectar/desconectar cables mientras se lee de manera continua el puerto, y luego montar leds para probar unos patrones de bits de salida.

No es que esté interesado en hacerlo, pero ya que estoy haciendo los tests, si a alguien le interesa lo podría incluir. Aunque quien sepa programar el Arduino no tendría problemas en escribirlo rápidamente. Solo es por compartir y no duplicar trabajo.
cacharreo escribió: 09 Ene 2024, 11:49 Por otro lado, si no recuerdo mal las hojas de especificaciones de los AY-3-8910 que tengo difieren al numerar los puertos respecto a las de los YM2149F siendo más claras las especificaciones en estos últimos.
Las hojas del AY tienen los registros numerados en octal, mientras que las del YM en hexadecimal. Creo que en los documentos originales no se menciona pero tengo un PDF más moderno con una nota aclaratoria añadida.
cacharreo escribió: 09 Ene 2024, 11:49 Y, por último, ¿conoces alguna forma de leer el contador del volumen de la envolvente E5E4E3E2E1E0 o es un registro interno del PSG?
No, es un registro interno (E0-E4) y no se puede leer.
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5869
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1209 times
Been thanked: 2829 times
Contactar:

Re: Identificación de AY-3-8910, YM2149 y clones

Mensaje por cacharreo »

berarma escribió: 09 Ene 2024, 14:25Solo se me ocurre conectar una memoria al puerto para hacer pruebas pero no sería sencillo con solo un registro. Otra idea más simple pero muy manual sería conectar/desconectar cables mientras se lee de manera continua el puerto, y luego montar leds para probar unos patrones de bits de salida.
Si no se busca un test más sofisticado, supongamos que tenemos una placa para hacer las pruebas con un zócalo ZIF. Se podrían fijar los dos supuestos registros en modo de entrada (registro R7) y en la placa disponer una serie de resistencias de bajada (pull-down) en los 8 bits de cada uno. Como se supone que cada registro tiene resistencias de polarización/elevación (pull-up) en cada bit, podría comprobarse si hay un 00h al leer los valores de los registros RE y RF.
berarma escribió: 09 Ene 2024, 14:25Las hojas del AY tienen los registros numerados en octal, mientras que las del YM en hexadecimal. Creo que en los documentos originales no se menciona pero tengo un PDF más moderno con una nota aclaratoria añadida.
Avisaba porque en las hojas de datos de Yamaha del YM está claramente especificado al pie de la tabla, en las de los diferentes fabricantes del AY-3 se muestra la tabla (incluso dentro el diagrama de bloques) y no hay referencia alguna a que se numere en otro sistema.
berarma escribió: 09 Ene 2024, 14:25No, es un registro interno (E0-E4) y no se puede leer.
Una pena porque programando una envolvente que solo aumentara el volumen a una frecuencia moderada, facilitaría un modo de detectar el AY-3 o el YM confirmando si el valor de este registro llega a ser mayor que 15 o no.
© cacharreo
Responder

Volver a “Consultas”