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

¿Tienes problemas con tu equipo?, preguntanos.

Moderador: Fundadores

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 »

Bien pensado. De momento no tengo un microcontrolador más rápido así que experimentaré un poco con éste.

Veo que estás pensando en un test completo del chip. Estaría muy bien para más adelante. Aunque de momento solo me interesa la parte de audio, he leído que hay chips con partes que no funcionan, tanto en el apartado del audio como la I/O.

Lo único que he encontrado que se salga de las especificaciones es el tDW. El mismo código tiene un comentario sobre ello.

Debería estar entre 300ns y 10us pero dura 15us. He modificado el código de la biblioteca y lo he podido bajar a 4'6us. Ahora sí que estaría dentro de las especificaciones pero aun así no sale el resultado esperado.

Hay otro valor que está fuera de especificaciones pero creo que es por el chip, no por el Arduino. El tTS, si no lo entiendo mal, sería el tiempo desde que termina la operación de lectura hasta que las líneas de datos se ponen en alta impedancia. Este tiempo es de 3us mientras que las especificaciones dicen que debería ser de máximo 100ns. Tal vez otra indicación de que no es un YM2149 de Yamaha.
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5892
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1213 times
Been thanked: 2837 times
Contactar:

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

Mensaje por cacharreo »

berarma escribió: 27 Dic 2023, 11:25Debería estar entre 300ns y 10us pero dura 15us. He modificado el código de la biblioteca y lo he podido bajar a 4'6us. Ahora sí que estaría dentro de las especificaciones pero aun así no sale el resultado esperado.
Si fuera posible leer el registro utilizando el procedimiento estándar, quizás no lleváramos una sorpresa en cuanto a los bits sin utilizar.

A propósito, recibí respuesta del autor de la librería y a él le ocurre igual. No entra en intentar explicarlo o arreglarlo y apunta a una diferencia entre el YM2149F y el YM2149G que ignoro puesto que no se aplica en mi caso.
© 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ó: 27 Dic 2023, 11:54
berarma escribió: 27 Dic 2023, 11:25Debería estar entre 300ns y 10us pero dura 15us. He modificado el código de la biblioteca y lo he podido bajar a 4'6us. Ahora sí que estaría dentro de las especificaciones pero aun así no sale el resultado esperado.
Si fuera posible leer el registro utilizando el procedimiento estándar, quizás no lleváramos una sorpresa en cuanto a los bits sin utilizar.

A propósito, recibí respuesta del autor de la librería y a él le ocurre igual. No entra en intentar explicarlo o arreglarlo y apunta a una diferencia entre el YM2149F y el YM2149G que ignoro puesto que no se aplica en mi caso.
Si quieres explicarme en qué consiste puedo intentar profundizar en el tema.

Los míos están marcados como YM2149F y las especificaciones que tengo no parece que mencionen esas variantes. Veré si encuentro información.

Gracias.
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5892
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1213 times
Been thanked: 2837 times
Contactar:

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

Mensaje por cacharreo »

berarma escribió: 27 Dic 2023, 12:14Si quieres explicarme en qué consiste puedo intentar profundizar en el tema.
Me refiero a leer y escribir siguiendo estrictamente las guías y tiempos de las hojas de datos.
berarma escribió: 27 Dic 2023, 12:14Los míos están marcados como YM2149F y las especificaciones que tengo no parece que mencionen esas variantes. Veré si encuentro información.
Como te digo no le doy importancia. Para mí lo relevante es que por el motivo que sea esta librería no lee los bits sin utilizar y me extraña una barbaridad.
© 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ó: 27 Dic 2023, 12:22Me refiero a leer y escribir siguiendo estrictamente las guías y tiempos de las hojas de datos.
Creo que es lo que estoy haciendo. Aunque es posible que me esté equivocando en algo.
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5892
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1213 times
Been thanked: 2837 times
Contactar:

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

Mensaje por cacharreo »

berarma escribió: 27 Dic 2023, 14:06Creo que es lo que estoy haciendo. Aunque es posible que me esté equivocando en algo.
¿Con un Nano y con todos los tiempos dentro de las especificaciones?
© 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ó: 27 Dic 2023, 15:32
berarma escribió: 27 Dic 2023, 14:06Creo que es lo que estoy haciendo. Aunque es posible que me esté equivocando en algo.
¿Con un Nano y con todos los tiempos dentro de las especificaciones?
Con un Arduino UNO y siguiendo la hoja del YM2149. Casi todo son tiempos mínimos que se cumplen sin problema y los pocos máximos que hay también se cumplen con la modificación que he hecho. Puede que esté ignorando algo sin saberlo pero yo diría que se cumplen.
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5892
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1213 times
Been thanked: 2837 times
Contactar:

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

Mensaje por cacharreo »

berarma escribió: 27 Dic 2023, 17:44Con un Arduino UNO y siguiendo la hoja del YM2149. Casi todo son tiempos mínimos que se cumplen sin problema y los pocos máximos que hay también se cumplen con la modificación que he hecho. Puede que esté ignorando algo sin saberlo pero yo diría que se cumplen.
¿Y has comprobado con el analizador lógico los datagramas con el Spectrum y el aydete? Sería curioso compararlos.
© 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ó: 27 Dic 2023, 19:28
berarma escribió: 27 Dic 2023, 17:44Con un Arduino UNO y siguiendo la hoja del YM2149. Casi todo son tiempos mínimos que se cumplen sin problema y los pocos máximos que hay también se cumplen con la modificación que he hecho. Puede que esté ignorando algo sin saberlo pero yo diría que se cumplen.
¿Y has comprobado con el analizador lógico los datagramas con el Spectrum y el aydete? Sería curioso compararlos.
No lo puedo conectar al Spectrum, no tengo con qué conectarlo. Los tenía para otro tipo de proyecto. Lástima porque me gustaría comprobar si obtengo los mismos resultados que tú.

Imagino que los tiempos serán más cortos, más cercanos al mínimo pero también dentro del rango operativo.

A raíz de un comentario tuyo anterior he revisado la página de la diferencias entre AY y YM y he caído en que durante todo el artículo habla del YM2149F pero cuando llega a esta parte habla del YM2149G:

"On the AY, unused bits in registers always read back as 0 even if you had earlier written 1 to them. On the YM2149G, the register values can be read back as written."

Además, poder leer/escribir los bits no usados no está en las especificaciones, es una característica no documentada que por tanto no es seguro que funcione. Creo que es aquí donde realmente estamos saliéndonos de las especificaciones. Podría explicar que en algunos YM2149 no se puedan leer los bits no usados y en otros sí, aunque tal vez en algunos casos de manera poco determinista.

Si fuera así, la respuesta sería que no hay una manera fiable de detectar el tipo de chip si no es con tu código para leer los voltajes de salida. También se podría hacer comprobando si la envolvente tiene 16 o 32 niveles de volumen. Son diferencias que sí que están en las especificaciones. Eso suponiendo que no se trate de otros clones.

Creo que aparcaré aquí el tema a no ser que surja información que aclare algo más. Voy a pensar que me han enviado chips originales que no son remarcados.

Gracias como siempre por tu ayuda.
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5892
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1213 times
Been thanked: 2837 times
Contactar:

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

Mensaje por cacharreo »

berarma escribió: 28 Dic 2023, 00:12No lo puedo conectar al Spectrum, no tengo con qué conectarlo. Los tenía para otro tipo de proyecto. Lástima porque me gustaría comprobar si obtengo los mismos resultados que tú.
Este interfaz de sonido, ZX Spectrum AY Sound Card, es bastante sencillo de montar y facilita una plataforma en la que montar AY-3-8910, 8912, YM2149,...
berarma escribió: 28 Dic 2023, 00:12cuando llega a esta parte habla del YM2149G:
"On the AY, unused bits in registers always read back as 0 even if you had earlier written 1 to them. On the YM2149G, the register values can be read back as written."
Eso es. Esto es lo que mencionaba el autor de la librería como posible causa.
berarma escribió: 28 Dic 2023, 00:12Además, poder leer/escribir los bits no usados no está en las especificaciones, es una característica no documentada que por tanto no es seguro que funcione. Creo que es aquí donde realmente estamos saliéndonos de las especificaciones. Podría explicar que en algunos YM2149 no se puedan leer los bits no usados y en otros sí, aunque tal vez en algunos casos de manera poco determinista.
A estas alturas todo esto no lo considero relevante porque para mí tiene más peso que en el Spectrum siempre lea los bits no usados tal como se escribieron (concretamente el bit 4).
berarma escribió: 28 Dic 2023, 00:12También se podría hacer comprobando si la envolvente tiene 16 o 32 niveles de volumen.
Hacer esto de forma programática me parece más delicado y requiere una planificación previa importante para evitar falsos negativos.
berarma escribió: 28 Dic 2023, 00:12Creo que aparcaré aquí el tema a no ser que surja información que aclare algo más. Voy a pensar que me han enviado chips originales que no son remarcados.
A todos los efectos mientras funcionen no necesitas más. Lástima que no dispongas de un CPC y un adaptador porque así se podría comprobar todo, incluyendo que el teclado funciona bien.
berarma escribió: 28 Dic 2023, 00:12Gracias como siempre por tu ayuda.
De nada, gracias a ti por aportar nuevas ideas para estos ratos de cacharreo. ;)
© cacharreo
Responder

Volver a “Consultas”