Identificación de AY-3-8910, YM2149 y clones
Moderador: Fundadores
-
- Aspirante a demonio
- Mensajes: 208
- Registrado: 07 Jun 2023, 10:57
- Has thanked: 77 times
- Been thanked: 28 times
Re: Identificación de AY-3-8910, YM2149 y clones
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.
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.
- cacharreo
- Moderador
- Mensajes: 6119
- Registrado: 09 Ago 2019, 10:17
- Ubicación: /home/cacharreo/
- Has thanked: 1249 times
- Been thanked: 3003 times
- Contactar:
Re: Identificación de AY-3-8910, YM2149 y clones
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
-
- Aspirante a demonio
- Mensajes: 208
- Registrado: 07 Jun 2023, 10:57
- Has thanked: 77 times
- Been thanked: 28 times
Re: Identificación de AY-3-8910, YM2149 y clones
Si quieres explicarme en qué consiste puedo intentar profundizar en el tema.cacharreo escribió: ↑27 Dic 2023, 11:54Si 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.
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.
- cacharreo
- Moderador
- Mensajes: 6119
- Registrado: 09 Ago 2019, 10:17
- Ubicación: /home/cacharreo/
- Has thanked: 1249 times
- Been thanked: 3003 times
- Contactar:
Re: Identificación de AY-3-8910, YM2149 y clones
Me refiero a leer y escribir siguiendo estrictamente las guías y tiempos de las hojas de datos.
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
-
- Aspirante a demonio
- Mensajes: 208
- Registrado: 07 Jun 2023, 10:57
- Has thanked: 77 times
- Been thanked: 28 times
Re: Identificación de AY-3-8910, YM2149 y clones
Creo que es lo que estoy haciendo. Aunque es posible que me esté equivocando en algo.
- cacharreo
- Moderador
- Mensajes: 6119
- Registrado: 09 Ago 2019, 10:17
- Ubicación: /home/cacharreo/
- Has thanked: 1249 times
- Been thanked: 3003 times
- Contactar:
Re: Identificación de AY-3-8910, YM2149 y clones
¿Con un Nano y con todos los tiempos dentro de las especificaciones?
© cacharreo
-
- Aspirante a demonio
- Mensajes: 208
- Registrado: 07 Jun 2023, 10:57
- Has thanked: 77 times
- Been thanked: 28 times
Re: Identificación de AY-3-8910, YM2149 y clones
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.
- cacharreo
- Moderador
- Mensajes: 6119
- Registrado: 09 Ago 2019, 10:17
- Ubicación: /home/cacharreo/
- Has thanked: 1249 times
- Been thanked: 3003 times
- Contactar:
Re: Identificación de AY-3-8910, YM2149 y clones
¿Y has comprobado con el analizador lógico los datagramas con el Spectrum y el aydete? Sería curioso compararlos.
© cacharreo
-
- Aspirante a demonio
- Mensajes: 208
- Registrado: 07 Jun 2023, 10:57
- Has thanked: 77 times
- Been thanked: 28 times
Re: Identificación de AY-3-8910, YM2149 y clones
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.
- cacharreo
- Moderador
- Mensajes: 6119
- Registrado: 09 Ago 2019, 10:17
- Ubicación: /home/cacharreo/
- Has thanked: 1249 times
- Been thanked: 3003 times
- Contactar:
Re: Identificación de AY-3-8910, YM2149 y clones
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,...
Eso es. Esto es lo que mencionaba el autor de la librería como posible causa.
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: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.
Hacer esto de forma programática me parece más delicado y requiere una planificación previa importante para evitar falsos negativos.
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.
De nada, gracias a ti por aportar nuevas ideas para estos ratos de cacharreo.
© cacharreo