¿Por qué el lector de tarjetas de crédito sobre el conector de audio no funciona en algunos dispositivos?

Esta no es una pregunta para solucionar problemas, es puramente para satisfacer mi curiosidad...

MagTek fabrica un producto llamado lector de tarjetas de crédito uDynamo que utiliza el canal de audio en los dispositivos Android como un bus de comunicación para interactuar con los dispositivos móviles. Esto tiene mucho sentido; tiene un conector de audio TRRS, que admite tres canales (audio L, R y micrófono) y una conexión a tierra. Todo lo que necesita uDynamo y más para facilitar la comunicación full dúplex.

Sin embargo, uno de mis teléfonos, el ZTE ZMAX PRO con Android, con un conector para auriculares TRRS funcional, no parece tener éxito en la sincronización o el protocolo de enlace con el dispositivo (hay una aplicación de prueba que intenta durante mucho tiempo llegar a paso 2, luego dice 'prueba fallida'). La aplicación que desarrolló mi empresa tiene el mismo problema. El tono de sincronización PCM emitido por el Android es excesivamente audible si conecto los auriculares cuando ejecuto la prueba, y el cable del micrófono en el conector TRRS funciona. Curiosamente, el lector de tarjetas funciona en mis otros teléfonos Android. Parece que este teléfono en particular simplemente no es compatible .

Entonces, mi pregunta es, ¿por qué algunos teléfonos Android podrían comunicarse a través de un conector para auriculares TRRS mientras que otros no pueden? Quiero decir, es una señal PCM a través de cables de audio estandarizados, no parece que mucho pueda ser diferente de un teléfono a otro.

De todos modos, gracias de antemano.

¿Está seguro de que el pinout TRRS es LRGM para su dispositivo?
Estoy bastante seguro, vea el hilo de comentarios sobre la respuesta de @DmitryGrigoryev a continuación.
Esto podría deberse a una cantidad de cosas, desde una latencia excesiva (históricamente un problema real en algunos dispositivos Android), hasta un error de cálculo de compensación de búfer muy grave en el código API de audio de ciertas versiones de Android, hasta energía recolectada insuficiente si el lector no tiene su propia batería, hasta algo tan simple como una ligera incompatibilidad mecánica con un conector quizás ahora algo gastado.

Respuestas (2)

quizás sea la cancelación activa de ruido con micrófono dedicado.

La mayoría de los módems realizan un entrenamiento de ecualización para la distorsión de retardo de grupo y espectral con 1 cancelación de eco (no 2 como las versiones antiguas de DSP). Pero si está más distorsionado que cierta cantidad especificada, el módem fallará.

¿Cuál es el punto de la cancelación de eco cuando se usa un teléfono? La mayoría de los usuarios se conectan los altavoces a los oídos (lejos del micrófono), no a la boca.
la retroalimentación aún es posible desde los auriculares si está alto y el micrófono no usa la cancelación de eco. Pero la cancelación de eco debe ser estable o la presión diferencial de cancelación de ruido. Este tiene cancelación activa de ruido, por lo tanto, las constantes de ecualización de entrenamiento previas a la conexión se vuelven incorrectas y quizás por eso falla el módem de lectura de tarjeta. También depende de los niveles de pérdida de retorno o efecto local en los módems dúplex completos.
@TonyStewart.EEsince'75 Esto es muy plausible. ¿Hay alguna manera de probar esto?
Sí, controle las señales bidireccionales para retardo de grupo y banda lateral o diafonía con un equipo de prueba. Es más fácil diseñar un conjunto de prueba si aprende cómo los módems ejecutan pruebas de ecualización previas a la conexión. Esto ayuda a comprender la causa raíz de sus fallas. Entonces la solución necesaria será obvia si es posible. A veces esto se hace con "pre-compensación"
¿Cuál es tu especificación? V.32bis: 14400/ 12000/ 7200 bps TCM?? K56Flex, V.90??
V32 9600 1800 Hz V32 bis 14400 1800 Hz V32 terbo 19200 1800 Hz V34 33600 Adaptable ??
La única solución podría ser llamar al OEM de ZTE ZMAX PRO y preguntar cómo desactivar la cancelación activa para que no cambie durante el uso. o averiguar si hay un modo FTM
Tendré que investigar un poco y volver a contactarte.
itu.int/rec/… describe códigos y secuencias de entrenamiento para EQ. El módem puede estar usando los opcionales (incorrectos) incompatibles con este auricular o puede ser culpa del auricular. Lo mejor es llamar al soporte de Eng para módem también.
La cancelación de ruido normalmente no se activaría a menos que el circuito de audio se esté ejecutando en un modo de audio de llamada, pero supongo que es posible que una implementación de audio con errores en un dispositivo determinado lo haga de todos modos.

Esto puede deberse al estándar de conector de 3,5 mm CTIA (también conocido como Nokia) frente a OMTP (también conocido como Apple) que utilizan diferentes teléfonos:

ingrese la descripción de la imagen aquí

Es fácil de verificar: si el auricular de un teléfono no funciona correctamente con el otro (micrófono no funcional, sonido muy débil a menos que presione el botón MIC), lo más probable es que tengan los contactos GND y MIC intercambiados.

Esta es una gran línea de investigación. Probé el teléfono haciendo una llamada con un auricular estilo auricular de Apple, asegurándome de que el teléfono no estuviera complementando el receptor con su propio auricular incorporado. Era audible en ambos extremos.
@JamesM.Lay Sus otros teléfonos también funcionan con auriculares Apple, ¿verdad?
Sí, parece que sí. ¿Eso es algo bueno?
@JamesM.Lay No, significa que supuse mal. Lo cual es una lástima, porque el pinout sería muy fácil de arreglar, en comparación con la cancelación de ruido o cualquier otra cosa que pueda estar mal.