¿Por qué el sistema IR de un teléfono inteligente utiliza un IC en lugar de GPIO?

2

Tengo un sistema integrado basado en Android, y me gustaría ordenar dispositivos controlados por infrarrojos, como TV, aire acondicionado, sistema de sonido, etc. Necesito tanto rx como tx.

Cuando veo ejemplos en Internet, la mayoría de ellos usan lirc sobre gpio.

Sin embargo, cuando veo la mayoría de los teléfonos móviles con función IR, usan un IC codificador-decodificador IR con un transceptor IR.

¿Por qué los teléfonos inteligentes no usan gpio directamente para controlar IR?

    
pregunta Sertac TULLUK

3 respuestas

2

"IrDA" es un estándar algo más rígidamente definido que "RC", que incluye:  (a) Intensidad de IR / sensibilidad en función de la distancia y amp; velocidad  (b) limitar los pulsos IR a una longitud máxima (independientemente de lo que el dispositivo conducir el IRED podría intentar hacerlo, deliberadamente o sin darse cuenta) &erio; (c) un esquema de codificación 3 / 16ths, que un chip 'Endec' intermediario (por ejemplo, MCP2120) o un módulo endec dentro de un UART dentro de un microcontrolador (por ejemplo, MSP430F5510) hará por usted.

Esto se logra más fácilmente con un módulo 'todo en 1' (sin endec) como este, por ejemplo:

enlace

Es doloroso cumplir con todas estas especificaciones en GPIO con poco impacto cuando su CPU probablemente tenga mejores cosas que hacer. El uso de un UART, opcionalmente un chip Endec intermediario y un módulo IrDA integrado hace que la implementación sea mucho más fácil. "RC" es diferente, menos estricto.

    
respondido por el Techydude
1

Creo que la razón es que un hardware específico siempre es más rápido o incluso más confiable que la pieza de software que reemplaza al hardware. Un buen ejemplo es el sistema RAID en las computadoras. Se pueden usar dos discos duros como sistema RAID cuando están controlados por un software RAID. Sin embargo, un controlador RAID de hardware real es mucho más rápido y, por lo tanto, mejor, pero más caro.

    
respondido por el Simon M. Laube
0

Gracias a todos por sus respuestas. Mi CPU es un SoC dual core de 1,2 Ghz. Cuando intento ENCENDER-APAGAR, alterno un GPIO con un bucle infinito en el programa C, y observando el resultado en el osciloscopio, no puedo llegar más rápido que 100uS ... Puede ser que necesite un módulo del kernel para hacerlo más rápido. Parece que esta es una de las razones por las que los fabricantes utilizan un hardware específico para este propósito.

    
respondido por el Sertac TULLUK

Lea otras preguntas en las etiquetas