Bienvenidos de nuevo a la serie del proyecto de laptop de código abierto. En la actualización anterior, discutimos cómo integrar los diversos sensores y el ensamblaje electrónico en sí en el bisel de la pantalla del portátil.
Hemos decidido qué tecnología de PCB nos gustaría usar y cómo será el hardware de montaje para el PCB de la webcam. En esta actualización, centraremos nuestra atención en la electrónica y el diseño del PCB del módulo de la webcam.
PCB de la webcam/sensor completamente ensamblado
Comencemos por averiguar cómo debe interfazarse el PCB de la webcam/sensor con la placa principal del sistema. Tenemos cuatro conexiones lógicas que deben establecerse con la placa madre:
La webcam, o interfaz del sensor de imagen, es lo primero. El sensor de imagen que utilizaremos es un Omnivision OV2740. Este sensor proporciona una imagen de alta definición 1080p a 60 cuadros por segundo. La transmisión de datos de imagen se realiza a través de una interfaz MIPI-CSI2. Se utiliza una interfaz serial estándar SCCB para controlar el sensor. También se necesitan algunas líneas de control globales junto a esta interfaz.
Generalmente, tanto las cámaras web internas como las externas se conectan a través de una interfaz USB que admite el protocolo UVC. La especificación UVC es la abreviatura de USB Video Device Class y permite que los dispositivos de transmisión de video se utilicen sin un controlador específico de hardware. Esto habilita la operación plug-and-play de cámaras web externas. Otro beneficio de usar la interfaz USB es que solo se necesita un par de datos, así como una conexión de alimentación y tierra para interactuar con el dispositivo. Esto minimiza la cantidad de señales que deben ser enrutadas dentro del sistema, lo que reduce la complejidad del conector y aumenta la fiabilidad de todo el sistema. Otra ventaja de un dispositivo o módulo USB UVC es que se puede intercambiar con cualquier otro dispositivo compatible con USB UVC, lo que en el caso de nuestro diseño de laptop permitiría actualizar la placa de la cámara web a una versión más nueva fácilmente.
Existe un problema asociado con el uso de un dispositivo compatible con USB UVC en un diseño de código abierto, sin embargo: Para convertir la salida CSI del sensor de imagen en una interfaz compatible con USB UVC se necesita un ASIC con un firmware personalizado y un ISP. Hay bastantes soluciones integradas disponibles de grandes proveedores de IC como Realtek o SONIX Technology. Sin embargo, la documentación para estos ICs no está disponible libremente y, por lo tanto, no es la opción adecuada para una laptop de código abierto.
Una excepción es el Controlador de Cámara EZ-USB™ CX3 MIPI CSI2 a USB 5 Gbps de Infineon. Este IC viene con documentación accesible, así como un SDK para diseñar un firmware personalizado para el sensor de imagen. Sin embargo, el EZ-USB™ CX3 está orientado hacia aplicaciones USB3.0 para sensores de imagen de mayor resolución o mayor tasa de cuadros. Con un precio superior a los 10€ por IC en volumen, este componente sería excesivamente avanzado para nuestra aplicación. Dado que este IC tiene un tamaño de 10mm X 10mm en un BGA de 121 pines, de todos modos no podríamos colocarlo en la placa de la webcam.
Así que, por ahora, estaremos conectando toda la interfaz CSI2 proporcionada por el sensor de imagen directamente a la placa base. Tenemos dos opciones; o bien usar el espacio disponible para implementar nuestro propio conversor USB UVC o bien conectar el sensor de imagen directamente con la CPU/PCH y manejar el procesamiento de señal de imagen a través del firmware en la CPU anfitriona. En este momento, la primera opción es la más probable que se implemente. Exploraremos esto más a fondo en una actualización posterior.
Otras interfaces que necesitamos conectar a la placa base son las siguientes:
Estamos utilizando dos micrófonos MEMS para grabar audio estéreo. Estos micrófonos MEMS proporcionan una salida PWM (modulación por densidad de pulsos) que puede ser leída por el PCH o el controlador integrado en la placa base.
El sensor de luz ambiental ofrece una interfaz I2C que también necesita ser enrutada al controlador integrado en la placa base.
Por último, pero no menos importante, tenemos que enrutadar la salida de las teclas táctiles al controlador integrado. Estas salidas indican al controlador integrado si la interfaz WiFi o de la cámara ha sido desactivada en el hardware.
Ahora que sabemos cuántos pines necesitamos asignar para la interfaz entre la PCB de la webcam y la placa principal, podemos elegir un conector de placa a placa adecuado. Para mantener el espacio necesario para el conector lo más pequeño posible, utilizaremos un conector de paso fino.
Para esta versión de la placa de la webcam, utilizaremos un conector Molex SlimStack 505550 con 40 pines a un paso de 0.4mm.
Conector Molex SlimStack
Vamos a utilizar un FPC de doble capa para enrutar la señal desde la PCB de la webcam hasta la placa principal. Aunque el conector SlimStack es una solución que ahorra espacio, las pruebas han demostrado que desconectar este conector es muy difícil mientras el panel de visualización está colocado encima del FPC.
FPC conectado con el panel de visualización instalado encima
Para facilitar el intercambio de la PCB de la webcam con el panel de visualización instalado, vamos a reemplazar este conector de placa a placa por un conector FPC directo. Un candidato interesante para tal conector podría ser la serie Hirose FH35C, que cuenta con una densidad de pines muy alta, así como una buena fuerza de retención.
Los sensores táctiles capacitivos TTP232-CA6 utilizados en la placa de la webcam son ICs de detección de doble canal de Tontek. Dado que un chip proporciona dos canales, cada IC maneja la detección tanto del botón de activación como de desactivación para las funcionalidades de la Webcam, WiFi y Micrófono.
En cada entrada de los ICs de detección se coloca un capacitor opcional en un footprint 0201. La sensibilidad del IC táctil se puede ajustar con estos capacitores opcionales.
Después de los circuitos integrados de detección, se utiliza un cerrojo para almacenar la última pulsación de botón. En la implementación actual del cerrojo, el dispositivo se inicia con la cámara, WiFi y la funcionalidad del micrófono desactivadas al reiniciar. Especialmente para la funcionalidad WiFi, este comportamiento podría no ser deseable, por lo que el estado predeterminado para este canal podría invertirse más adelante.
Canal de detección táctil para la funcionalidad WiFi
Los micrófonos y sensores de luz ambiental que seleccionamos en una actualización anterior del proyecto se implementaron de acuerdo con la hoja de datos. Ambos sensores se alimentan desde un LDO de 3.3V separado que proporciona un voltaje de alimentación generado a partir de los 5V de potencia de entrada que se dirigen a la placa de la webcam.
El sensor de luz ambiental se encuentra en una pequeña placa adicional que contiene un capacitor de desacoplamiento y los resistores de pull-up del bus I2C.
Microfono y sensor de luz ambiental
El sensor de imagen de la webcam se implementa de la siguiente manera. Los rieles de alimentación para el sensor se generan localmente por tres pequeños LDOs. La serie de LDO TLV740P es una solución muy ahorradora de espacio y coste-efectiva. El paquete utilizado es el 1mm X 1mm X2SON, lo que resulta en un tamaño de solución general muy pequeño.
El consumo de energía del sensor de imagen es lo suficientemente bajo como para que cada línea de alimentación pueda generarse reduciendo el riel global de 5V mediante reguladores lineales.
Esquemático del sensor de imagen de la webcam
El borrador final del esquemático de la PCB de la webcam se puede ver en el visor de Altium 365:
Además de teclas táctiles y sensores, la PCB de la webcam también contiene un LED RGB para la salida de cada canal de detección. Se eligieron LEDs RGB para poder ajustar finamente el color de los iconos retroiluminados alterando el valor del resistor utilizado para cada color individual.
Un pequeño MOSFET de N-Canal de nivel lógico en un paquete SOT-883 se utiliza para aplicar un atenuado PWM global a todos los LEDs en la placa de la webcam. La misma señal PWM que se utilizará para cambiar el brillo de la pantalla también puede usarse para controlar los LEDs de los iconos retroiluminados en el bisel de la pantalla. De esta manera, los iconos no serán distractivos en caso de que se haya elegido un brillo de pantalla bajo.
Con el esquemático terminado, ahora podemos pasar toda la información al editor de PCB y comenzar a trazar la placa.
Manténgase atento a la próxima actualización, donde proporcionaremos valiosos conocimientos sobre el diseño de la placa de circuito impreso de la cámara web. ¡No se pierda los últimos detalles que mejorarán su comprensión del diseño y la funcionalidad!