Willkommen zurück zur Serie über das Open-Source-Laptop-Projekt! Im letzten Update haben wir besprochen, wie man die verschiedenen Sensoren und die Elektronikmontage selbst in den Rahmen des Laptop-Displays integrieren kann.
Wir haben entschieden, welche PCB-Technologie wir verwenden möchten und wie die Montagehardware für das Webcam-PCB aussieht. In diesem Update werden wir unsere Aufmerksamkeit auf das Elektronik- und PCB-Design des Webcam-Moduls richten.
Vollständig montiertes Webcam/Sensor-PCB
Beginnen wir damit zu ergründen, wie das Webcam/Sensor-PCB mit der Hauptplatine des Systems verbunden werden sollte. Wir haben vier logische Verbindungen, die mit dem Motherboard hergestellt werden müssen:
Die Webcam oder Bildsensorschnittstelle kommt zuerst. Der Bildsensor, den wir verwenden werden, ist ein Omnivision OV2740. Dieser Sensor liefert ein hochauflösendes 1080p-Bild mit 60 Bildern pro Sekunde. Der Bilddatenstrom wird über eine MIPI-CSI2-Schnittstelle übertragen. Eine standardmäßige serielle SCCB-Schnittstelle wird zur Steuerung des Sensors verwendet. Einige globale Steuerleitungen werden neben dieser Schnittstelle ebenfalls benötigt.
Normalerweise werden sowohl interne als auch externe Webcams über eine USB-Schnittstelle angeschlossen, die das UVC-Protokoll unterstützt. Die UVC-Spezifikation steht für USB Video Device Class und ermöglicht es, Videostreaming-Geräte ohne einen hardware-spezifischen Treiber zu verwenden. Dies ermöglicht den Plug-and-Play-Betrieb von externen Webcams. Ein weiterer Vorteil der Verwendung der USB-Schnittstelle ist, dass nur ein Datenpaar sowie eine Strom- und Erdungsverbindung benötigt werden, um mit dem Gerät zu interagieren. Dies minimiert die Anzahl der Signale, die innerhalb des Systems geroutet werden müssen, was die Komplexität der Steckverbinder reduziert und die Zuverlässigkeit des gesamten Systems erhöht. Ein weiterer Vorteil eines USB UVC-Geräts oder -Moduls ist, dass es mit jedem anderen USB UVC-konformen Gerät ausgetauscht werden kann, was im Falle unseres Laptop-Designs ein einfaches Upgrade des Webcam-Boards auf eine neuere Version ermöglichen würde.
Es gibt jedoch ein Problem bei der Verwendung eines USB UVC-konformen Geräts in einem Open-Source-Design: Um den CSI-Ausgang des Bildsensors in eine USB UVC-konforme Schnittstelle umzuwandeln, wird ein ASIC mit einer benutzerdefinierten Firmware und ISP benötigt. Es gibt einige integrierte Lösungen von großen IC-Anbietern wie Realtek oder SONIX Technology. Die Dokumentation für diese ICs ist jedoch nicht frei verfügbar und daher nicht die richtige Wahl für ein Open-Source-Laptop.
Eine Ausnahme ist der EZ-USB™ CX3 MIPI CSI2 zu USB 5 Gbps Kamerasteuerung von Infineon. Dieser IC wird mit zugänglicher Dokumentation sowie einem SDK für das Design einer benutzerdefinierten Firmware für den Bildsensor geliefert. Der EZ-USB™ CX3 ist jedoch auf USB3.0-Anwendungen für Bildsensoren mit höherer Auflösung oder höherer Bildrate ausgerichtet. Mit einem Preis von mehr als 10€ pro IC in größeren Mengen wäre diese Komponente für unsere Anwendung deutlich überdimensioniert. Da dieser IC in einem 10mm X 10mm großen 121-Pin-BGA-Gehäuse kommt, könnten wir ihn sowieso nicht auf der Webcam-Platine unterbringen.
Also werden wir vorerst die gesamte CSI2-Schnittstelle, die vom Bildsensor bereitgestellt wird, direkt auf das Motherboard leiten. Wir haben zwei Optionen: Entweder nutzen wir den verfügbaren Platz, um unseren eigenen USB-UVC-Konverter zu implementieren, oder wir verbinden den Bildsensor direkt mit der CPU/PCH und verarbeiten das Bildsignal durch Firmware im Host-CPU. Zum jetzigen Zeitpunkt ist die erste Option wahrscheinlicher. Wir werden dies in einem späteren Update genauer untersuchen.
Andere Schnittstellen, die wir auf das Motherboard leiten müssen, sind wie folgt:
Wir verwenden zwei MEMS-Mikrofone, um Stereo-Audio aufzunehmen. Diese MEMS-Mikrofone liefern einen PWM-Ausgang (Pulsweitenmodulation), der vom PCH oder eingebetteten Controller auf dem Motherboard gelesen werden kann.
Der Umgebungslichtsensor bietet eine I2C-Schnittstelle, die ebenfalls zum eingebetteten Controller auf dem Motherboard geroutet werden muss.
Zu guter Letzt müssen wir den Ausgang der Touch-Keys zum eingebetteten Controller routen. Diese Ausgänge signalisieren dem eingebetteten Controller, ob die WiFi- oder Kamera-Schnittstelle in der Hardware deaktiviert wurde.
Jetzt, wo wir wissen, wie viele Pins wir für die Schnittstelle zwischen dem Webcam-PCB und dem Hauptboard zuweisen müssen, können wir einen passenden Board-zu-Board-Steckverbinder auswählen. Um den benötigten Platz für den Steckverbinder so gering wie möglich zu halten, werden wir einen Feinraster-Steckverbinder verwenden.
Für diese Version des Webcam-Boards werden wir einen Molex SlimStack 505550 Steckverbinder mit 40 Pins bei einem Rastermaß von 0,4mm verwenden.
Molex SlimStack Steckverbinder
Wir werden ein doppelschichtiges FPC verwenden, um das Signal von der Webcam-Platine zum Hauptboard zu leiten. Obwohl der SlimStack-Steckverbinder eine platzsparende Lösung ist, hat die Prüfung gezeigt, dass das Abziehen dieses Steckverbinders sehr schwierig ist, während das Display-Panel auf dem FPC sitzt.
FPC verbunden mit darauf installiertem Display-Panel
Um den Austausch der Webcam-Platine mit installiertem Display-Panel zu erleichtern, werden wir diesen Board-zu-Board-Steckverbinder durch einen direkten FPC-Steckverbinder ersetzen. Ein interessanter Kandidat für einen solchen Steckverbinder könnte die Hirose FH35C-Serie sein, die eine sehr hohe Pin-Dichte sowie eine gute Haltekraft bietet.
Die auf der Webcam-Platine verwendeten kapazitiven Berührungssensoren TTP232-CA6 sind Dual-Channel-Sensing-ICs von Tontek. Da ein Chip zwei Kanäle bereitstellt, steuert jeder IC das Aktivieren und Deaktivieren der Tasten für die Webcam-, WiFi- und Mikrofonfunktionalität.
An jedem Eingang der Sensing-ICs ist ein optionaler Kondensator im 0201-Footprint platziert. Die Empfindlichkeit des Touch-ICs kann mit diesen optionalen Kondensatoren abgestimmt werden.
Nach den Sensing-ICs wird ein Latch verwendet, um den letzten Tastendruck zu speichern. In der aktuellen Implementierung des Latch startet das Gerät mit deaktivierter Kamera-, WiFi- und Mikrofonfunktionalität beim Neustart. Besonders für die WiFi-Funktionalität könnte dieses Verhalten unerwünscht sein, weshalb der Standardzustand für diesen Kanal später möglicherweise invertiert wird.
Touch-Sensing-Kanal für die WiFi-Funktionalität
Die Mikrofone und Umgebungslichtsensoren, die wir in einem vorherigen Projektupdate ausgewählt haben, wurden gemäß dem Datenblatt implementiert. Beide Sensoren werden von einem separaten 3,3V LDO versorgt, der eine Versorgungsspannung liefert, die aus der 5V Eingangsleistung erzeugt wird, die zur Webcam-Platine geleitet wird.
Der Umgebungslichtsensor befindet sich auf einer kleinen Zusatzplatine, die einen Entkopplungskondensator und die Pull-up-Widerstände für den I2C-Bus enthält.
Mikrofon und Umgebungslichtsensor
Der Webcam-Bildsensor ist wie folgt implementiert. Die Stromschienen für den Sensor werden alle lokal von drei kleinen LDOs erzeugt. Die TLV740P LDO-Serie ist eine sehr platzsparende und kostengünstige Lösung. Das verwendete Gehäuse ist das 1mm X 1mm X2SON, was zu einer insgesamt sehr kleinen Lösungsgröße führt.
Der Stromverbrauch des Bildsensors ist niedrig genug, dass jede Stromschiene durch Herabsetzen der globalen 5V-Schiene mit linearen Reglern erzeugt werden kann.
Schema des Webcam-Bildsensors
Der fertige Entwurf des Webcam-PCB-Schemas kann im Altium 365-Viewer eingesehen werden:
Neben Touch-Tasten und Sensoren enthält die Webcam-PCB auch eine RGB-LED für jeden Sensorausgangskanal. RGB-LEDs wurden gewählt, um die Farbe der hinterleuchteten Symbole durch Ändern des Widerstandswerts für jede einzelne Farbe feinabstimmen zu können.
Ein kleiner logikgesteuerter N-Kanal-MOSFET in einem SOT-883-Gehäuse wird verwendet, um eine globale PWM-Dimmung für alle LEDs auf der Webcam-Platine anzuwenden. Das gleiche PWM-Signal, das verwendet wird, um die Helligkeit des Bildschirms zu ändern, kann auch verwendet werden, um die LEDs für die hinterleuchteten Symbole im Bildschirmrahmen zu steuern. Auf diese Weise werden die Symbole nicht ablenkend sein, falls eine niedrige Bildschirmhelligkeit gewählt wurde.
Mit dem abgeschlossenen Schema können wir nun alle Informationen in den PCB-Editor übertragen und mit dem Verlegen der Platine beginnen.
Bleiben Sie dran für das nächste Update, in dem wir wertvolle Einblicke in das PCB-Layout des Webcam-Boards geben werden – verpassen Sie nicht die neuesten Details, die Ihr Verständnis für das Design und die Funktionalität verbessern werden!