Witaj ponownie w serii projektów laptopów open-source! W poprzedniej aktualizacji, omówiliśmy, jak zintegrować różne czujniki oraz sam montaż elektroniki z ramką wyświetlacza laptopa.
Zdecydowaliśmy, jakiej technologii PCB chcemy użyć oraz jak będzie wyglądać montaż sprzętu dla płytki PCB kamery internetowej. W tej aktualizacji skupimy naszą uwagę na elektronice i projekcie PCB modułu kamery.
W pełni zmontowana płytki PCB kamery/czujników
Zacznijmy od zrozumienia, jak płytkę PCB kamery/czujników należy połączyć z płytą główną systemu. Musimy nawiązać cztery logiczne połączenia z płytą główną:
Pierwszy to interfejs kamery, czyli czujnika obrazu. Użyjemy czujnika Omnivision OV2740. Ten czujnik zapewnia obraz wysokiej rozdzielczości 1080p przy 60 klatkach na sekundę. Strumień danych obrazu jest przesyłany przez interfejs MIPI-CSI2. Do sterowania czujnikiem używany jest standardowy szeregowy interfejs SCCB. Obok tego interfejsu potrzebne są również kilka globalnych linii kontrolnych.
Zazwyczaj zarówno wewnętrzne, jak i zewnętrzne kamery internetowe są podłączane za pomocą interfejsu USB, który obsługuje protokół UVC. Specyfikacja UVC, czyli USB Video Device Class, umożliwia korzystanie z urządzeń do przesyłania wideo bez konieczności instalowania specyficznego dla sprzętu sterownika. Umożliwia to działanie w trybie plug-and-play zewnętrznych kamer internetowych. Kolejną zaletą korzystania z interfejsu USB jest to, że do połączenia z urządzeniem potrzebna jest tylko jedna para danych oraz połączenie zasilania i masy. Minimalizuje to ilość sygnałów, które muszą być przekierowane wewnątrz systemu, co redukuje złożoność złącza i zwiększa niezawodność całego systemu. Kolejną zaletą urządzenia lub modułu USB UVC jest to, że można je wymienić na dowolne inne urządzenie zgodne z USB UVC, co w przypadku naszego projektu laptopa umożliwiłoby łatwą aktualizację płyty kamery internetowej do nowszej wersji.
Istnieje jednak problem związany z użyciem urządzenia zgodnego z USB UVC w otwartym projekcie: aby przekształcić wyjście CSI czujnika obrazu na interfejs zgodny z USB UVC, potrzebny jest ASIC z niestandardowym oprogramowaniem i ISP. Dostępnych jest całkiem sporo zintegrowanych rozwiązań od dużych dostawców układów scalonych, takich jak Realtek czy SONIX Technology. Dokumentacja tych układów scalonych nie jest jednak dostępna bezpłatnie, dlatego nie są one odpowiednim wyborem dla otwartego projektu laptopa.
Jednym z wyjątków jest kontroler kamery EZ-USB™ CX3 MIPI CSI2 do USB 5 Gbps od Infineon. Ten układ scalony jest dostarczany z dostępną dokumentacją oraz SDK do projektowania własnego oprogramowania układowego dla czujnika obrazu. EZ-USB™ CX3 jest jednak przeznaczony do aplikacji USB3.0 dla czujników obrazu o wyższej rozdzielczości lub wyższej częstotliwości klatek. Przy cenie większej niż 10€ za układ scalony przy zakupie hurtowym, ten komponent byłby zdecydowanie zbyt zaawansowany dla naszej aplikacji. Ponieważ ten układ scalony ma wymiary 10mm X 10mm i 121 pinów BGA, nie bylibyśmy w stanie umieścić go na płytce kamery internetowej.
Na razie będziemy więc kierować cały interfejs CSI2 dostarczony przez czujnik obrazu bezpośrednio do płyty głównej. Mamy dwie opcje: albo wykorzystać dostępną przestrzeń do zaimplementowania własnego konwertera USB UVC, albo połączyć czujnik obrazu bezpośrednio z CPU/PCH i obsługiwać przetwarzanie sygnału obrazu za pomocą oprogramowania układowego w głównym procesorze. W tym momencie pierwsza opcja wydaje się bardziej prawdopodobna do realizacji. Zajmiemy się tym bardziej szczegółowo w późniejszej aktualizacji.
Inne interfejsy, które musimy poprowadzić do płyty głównej, to:
Korzystamy z dwóch mikrofonów MEMS, aby nagrywać dźwięk stereo. Te mikrofony MEMS dostarczają sygnał PWM (modulacja gęstości impulsów), który może być odczytany przez PCH lub wbudowany kontroler na płycie głównej.
Czujnik światła otoczenia zapewnia interfejs I2C, który również musi być podłączony do wbudowanego kontrolera na płycie głównej.
Na koniec, musimy przekierować wyjście klawiszy dotykowych do wbudowanego kontrolera. Te wyjścia informują wbudowany kontroler, czy interfejs WiFi lub kamery został dezaktywowany sprzętowo.
Teraz, gdy wiemy, ile pinów musimy przeznaczyć na interfejs między płytą kamery internetowej a płytą główną, możemy wybrać odpowiednie złącze płyta-do-płyty. Aby zminimalizować potrzebną przestrzeń na złącze, użyjemy złącza o małym rozstawie pinów.
Do tej wersji płyty kamery internetowej użyjemy złącza Molex SlimStack 505550 z 40 pinami o rozstawie 0.4mm.
Złącze Molex SlimStack
Będziemy używać dwuwarstwowej FPC do przekazywania sygnału z płytki PCB kamery internetowej do płyty głównej. Chociaż złącze SlimStack jest rozwiązaniem oszczędzającym miejsce, testy wykazały, że odłączenie tego złącza jest bardzo trudne, gdy panel wyświetlacza znajduje się na górze FPC.
FPC połączone z zainstalowanym na górze panelem wyświetlacza
Aby ułatwić wymianę płytki PCB kamery internetowej z zainstalowanym panelem wyświetlacza, zamienimy to złącze płyta-do-płyty na bezpośrednie złącze FPC. Interesującym kandydatem na takie złącze może być seria Hirose FH35C, która charakteryzuje się bardzo wysoką gęstością pinów oraz dobrą siłą zatrzymania.
Czujniki dotykowe pojemnościowe TTP232-CA6 używane na płytce kamery internetowej to dwukanałowe układy czujnikowe od Tontek. Jeden chip obsługuje dwa kanały, dzięki czemu każdy układ IC obsługuje zarówno aktywację, jak i dezaktywację przycisków dla funkcji Kamery internetowej, WiFi i Mikrofonu.
Na każdym wejściu układów czujnikowych umieszczony jest opcjonalny kondensator o obrysie 0201. Czułość układu dotykowego można dostroić za pomocą tych opcjonalnych kondensatorów.
Po układach czujnikowych stosuje się zatrzask do przechowywania informacji o ostatnim naciśnięciu przycisku. W obecnej implementacji zatrzasku urządzenie startuje z dezaktywowaną funkcjonalnością kamery, WiFi i mikrofonu po restarcie zasilania. Szczególnie dla funkcjonalności WiFi takie zachowanie może być niepożądane, dlatego domyślny stan tego kanału może zostać później odwrócony.
Kanał czujnika dotykowego dla funkcjonalności WiFi
Mikrofony i czujniki światła otoczenia, które wybraliśmy w poprzedniej aktualizacji projektu, zostały zaimplementowane zgodnie z kartą katalogową. Oba czujniki są zasilane z osobnego stabilizatora LDO 3,3V, który dostarcza napięcie zasilające wygenerowane z 5V mocy wejściowej, która jest kierowana do płyty kamery internetowej.
Czujnik światła otoczenia znajduje się na małej dodatkowej płytce, która zawiera kondensator rozprzęgający i rezystory pull-up magistrali I2C.
Mikrofon i czujnik światła otoczenia
Sensor obrazu kamery internetowej jest zaimplementowany w następujący sposób. Szyny zasilające dla sensora są generowane lokalnie przez trzy małe stabilizatory LDO. Seria stabilizatorów TLV740P to bardzo oszczędzające miejsce i kosztowne rozwiązanie. Użyta obudowa to 1mm X 1mm X2SON, co skutkuje ogólnie bardzo małym rozmiarem rozwiązania.
Pobór mocy czujnika obrazu jest na tyle niski, że każda szyna zasilająca może być wygenerowana przez obniżenie globalnej szyny 5V za pomocą regulatorów liniowych.
Schemat czujnika obrazu kamery internetowej
Ukończony projekt schematu PCB kamery internetowej można zobaczyć w przeglądarce Altium 365:
Oprócz klawiszy dotykowych i czujników, płytkę PCB kamery internetowej zawiera również diodę RGB LED dla każdego wyjścia kanału sensorycznego. Diodę RGB LED wybrano, aby móc dokładnie dostosować kolor podświetlanych ikon poprzez zmianę wartości rezystora użytego dla każdego pojedynczego koloru.
Mały tranzystor MOSFET N-Channel w obudowie SOT-883 jest używany do zastosowania globalnego ściemniania PWM do wszystkich diod LED na płytce kamery internetowej. Ten sam sygnał PWM, który będzie używany do zmiany jasności ekranu, może być również użyty do kontrolowania diod LED dla podświetlanych ikon w ramce ekranu. Dzięki temu ikony nie będą rozpraszające w przypadku wybrania niskiej jasności ekranu.
Z ukończonym schematem, możemy teraz przekazać wszystkie informacje do edytora PCB i rozpocząć trasowanie płytki.
Bądź na bieżąco z kolejną aktualizacją, gdzie przedstawimy cenne spostrzeżenia dotyczące układu PCB płyty kamery internetowej – nie przegap najnowszych szczegółów, które wzbogacą Twoje zrozumienie projektu i funkcjonalności!