Linux: El controlador WM8753 no está diseñado para Pi

Creado en 27 ene. 2016  ·  6Comentarios  ·  Fuente: raspberrypi/linux

Estoy tratando de hacer que el chip de sonido WM8753 funcione con el Pi sobre i2c, pero no puedo hacer que el WM8753 responda por encima del bus i2c, a pesar de que está registrado en la dirección. Se me indicó que solicitara que se incluyera el controlador WM8753 en el kernel, ¿pueden ayudarme?

Comentario más útil

¿Ha intentado conectar un WM8753 a Windows entonces? Me sorprendería mucho si hubiera algún tipo de controlador disponible, y las interfaces I2S e I2C no son comunes en las PC de todos modos: se prefieren USB, PCIe o Firewire y son mucho más fáciles de manejar. A excepción de USB, esas interfaces son menos comunes en los SBC.

Agregar módulos aumenta el tamaño de la distribución del kernel para todos, y algunos módulos también tendrán una penalización de rendimiento. Es por eso que hay una solicitud general para probar que algo funciona antes de que el módulo se construya de forma predeterminada. Las instrucciones completas están disponibles para que pueda construir su propio kernel con una configuración modificada, por lo que no es como si dependiera de que esté en la compilación predeterminada.

Por cierto, ¿se había fijado en https://www.cirrus.com/en/products/eol/detail/EOL421.html ?

WM8753
Fecha de finalización de la vida útil: 31/7/2017

Construir un nuevo producto sobre algo que entrará en EOL en menos de un año puede no ser un gran plan. No he comparado con el WM8750 y WM8758 que están listando como reemplazos.

Todos 6 comentarios

@KevinStartup, ¿ se ha resuelto tu problema? Si es así, cierre este problema. Gracias.

Hemos desarrollado un controlador i2c / i2s personalizado para admitir este chip. Está funcionando, pero necesita más atención. Como puede ver, ¡no recibí absolutamente ninguna ayuda de este sitio!

@KevinStartup ¿Qué estás pidiendo exactamente? CONFIG_SND_SOC_WM8753=m se agregará a las configuraciones RPi predeterminadas, por lo que el controlador del códec está construido como módulo?

Si necesita ayuda con el controlador de la máquina ASoC, muéstrenos el código que ya tiene y que "está funcionando", y díganos qué no funciona realmente y la gente podría ofrecer sugerencias o ayuda.

@DigitalDreamtime
Supongo que lo que estoy sugiriendo es que todos los CODEC que están realmente incluidos en el sistema pueden cargarse y configurarse en el kernel. Existen CODEC para el wm8753, así como para muchos otros chips de sonido, pero se requiere bastante trabajo para que funcionen dentro del kernel de Unix con ASoC y ALSA. De hecho, hemos encargado a otra empresa que improvise un cargador y configure el controlador como un módulo dentro del kernel para que pueda cargarse. Actualmente funciona, pero falla cuando se usa ALSA en el modo "mapeado en memoria" que está utilizando nuestro software de sonido, por lo que aún necesita más trabajo. Los detalles son complejos y más allá de mis propias capacidades, puedo publicar el código que estamos usando aquí si alguien está interesado, pero de manera realista para probarlo y trabajar con él, necesitaría un Pi conectado a través de i2c a un chip wm8753.
Supongo que mi sugerencia general aquí es tratar de obtener mucho más soporte de chip de sonido en el Pi. Tiene los códecs disponibles, pero hacer que funcionen es difícil. Este es uno de los lugares donde creo que Pi podría desarrollarse mejor. Windows admite prácticamente cualquier tarjeta de sonido que se pueda imaginar hoy en día, pero el soporte de hardware para Pi es limitado y complejo. Creo que sería bueno avanzar hacia un sistema más fácil para integrar el Pi con diferentes dispositivos de audio y visuales. También tenemos una pantalla LCD personalizada que funciona con nuestro Pi y eso ha sido complicado, pero al menos más fácil de configurar, ya que solo el árbol de dispositivos necesita modificaciones y algunas líneas en config.txt.
Desde el punto de vista del usuario, parece que la mitad del trabajo se ha realizado para admitir una amplia gama de chips de sonido y pantallas, pero la configuración final del usuario es muy complicada y requiere conocimientos especializados. Personalmente, creo que es un área que podría mejorarse.
Si hay alguien que desee tener el código de desarrollo wm8753 y le gustaría echarle un vistazo, hágamelo saber y puedo publicarlo.
Cheerz
Kevin

¿Ha intentado conectar un WM8753 a Windows entonces? Me sorprendería mucho si hubiera algún tipo de controlador disponible, y las interfaces I2S e I2C no son comunes en las PC de todos modos: se prefieren USB, PCIe o Firewire y son mucho más fáciles de manejar. A excepción de USB, esas interfaces son menos comunes en los SBC.

Agregar módulos aumenta el tamaño de la distribución del kernel para todos, y algunos módulos también tendrán una penalización de rendimiento. Es por eso que hay una solicitud general para probar que algo funciona antes de que el módulo se construya de forma predeterminada. Las instrucciones completas están disponibles para que pueda construir su propio kernel con una configuración modificada, por lo que no es como si dependiera de que esté en la compilación predeterminada.

Por cierto, ¿se había fijado en https://www.cirrus.com/en/products/eol/detail/EOL421.html ?

WM8753
Fecha de finalización de la vida útil: 31/7/2017

Construir un nuevo producto sobre algo que entrará en EOL en menos de un año puede no ser un gran plan. No he comparado con el WM8750 y WM8758 que están listando como reemplazos.

@ 6by9
Gracias por el enlace EOL, que es muy útil, se lo envié a aquellos que decidieron usar este chip. Se utiliza principalmente para la compatibilidad con versiones anteriores de nuestro software para evitar que tengamos que recodificar muchas cosas, ya que usamos una gran cantidad de entrada y salida de audio de este chip que está todo codificado en nuestra PCB y aplicación de software, por lo que se decidió que nosotros Seguiría usándolo en lugar de reajustar los PCB y el software de aplicación para hacer frente (no es mi decisión y, para que conste, estaba en contra, pero esa es otra historia)

Estoy de acuerdo, también creo que USB es el camino a seguir y acepto su punto de que el wm8753 probablemente no funcione en una PC y la mayoría de las otras cosas a través de i2c tampoco funcionarán. Hemos seguido adelante con esto a un gran costo y solo el tiempo dirá si nos ahorra trabajo en el PCB final y el desarrollo de la aplicación, ¡pero parece que podría ser el momento de comprar un lote de trabajo de los WM8753 para las arcas!

Buscamos avanzar hacia uno de los chips más nuevos, específicamente el Cirrus Logic, uno cargado en su placa de audio (WM5102), pero desafortunadamente el chip es demasiado pequeño para que lo coloque nuestra maquinaria de fabricación, por lo que tuvimos que elegir el más antiguo. Eso fue realmente una pena, ya que Cirrus ha hecho todo el trabajo para configurarlo en el Pi también.

Supongo que tiene razón, no podemos esperar admitir todo el hardware que existe y el mecanismo está ahí para que funcione, ¡es realmente muy difícil! De todos modos, fue demasiado difícil para mí y teníamos que conseguir a alguien con un cerebro más grande para que lo intentara.

Sin embargo, gracias por participar, fue agradable al menos obtener una respuesta. Cerraré este hilo para poner en orden a Ruffio :)

Qué tengas buenas noches
Kevin

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

Nuntis-Spayz picture Nuntis-Spayz  ·  5Comentarios

mi-hol picture mi-hol  ·  8Comentarios

XECDesign picture XECDesign  ·  6Comentarios

dkerr64 picture dkerr64  ·  7Comentarios

thomasklingbeil picture thomasklingbeil  ·  4Comentarios