Popularny post Okiem_El Napisano Marzec 18, 2022 Popularny post Udostępnij Napisano Marzec 18, 2022 Jako że ostatnio miał miejsce światowy dzień liczby Pi - swoje małe święto miał też pewien popularny mikrokomputerek o podobnej nazwie 🙂 Dlatego zainspirowany tym, że naprawiłem już kilka takich, i słyszałem wiele sugestii by napisać podobny poradnik, pokusiłem się o popełnienie takiego. Pomógł zakupiony niedawno mikroskop (choć muszę jeszcze dopracować metodę pozyskiwania zdjęć) i partia kolejnych 3 malinek, która przyjechała na stół operacyjny. Na wstępie tego dokumentu chciałbym jeszcze zaznaczyć że będzie tutaj opis bardzo sprzętowy i najpierw spróbuję opisać działanie zasilania i kluczowych elementów malinki abyśmy wiedzieli gdzie później szukać ewentualnych usterek 🙂 I jeszcze dodam że tekst jest autorstwa @OkiemElektronika i zapraszam od razu do polubienia profilu na FB i do zaglądania częściej, gdyż pojawią się pewnie inne ciekawe wrzutki w przyszłości 🙂 A jeśli ten artykuł wybitnie Ci pomógł, możesz mnie wesprzeć stawiając mi kawę za tą pracę na - buycoffee.to/okiemelektronika – wielkie dzięki! RASPBERRY PI 3 Deep Dive 1. Analiza układu zasilania Układy elektroniczne zazwyczaj lepiej działają kiedy są zasilone 🙂 Więc aby nasza malina radośnie śmigała, wymaga wejściowego zasilania - W specyfikacji podane jest 5V i 2.5A, czyli o mocy 12.5W. Oczywiście nie zaszkodzi jeśli zastosujemy zasilacz o wyższej wydajności prądowej. Spotkałem się z wieloma komentarzami jakoby RPi zgłaszała błąd zbyt niskiego napięcia zasilania, jeśli to spada poniżej 5.1V więc tym bardziej, jeśli planujemy bardzo obciążać malinę zadaniami warto zastosować zasilacz z zapasem mocy, aby napięcie za bardzo nie spadało. Rpi może obciążać zasilacz impulsowo, więc nawet jeśli nasz zasilacz daje stabilne 5.1V potwierdzone pomiarem woltomierzem, może się zdarzyć, że przy impulsowym poborze prądu przez kilka µs-ms napięcie spadnie i już zostanie to zarejestrowane jako undervoltage. Sprzętowo pomóc mogą tutaj jedynie dodatkowe kondensatory odsprzęgające na zasilaniu, jeden duży (np 1000uF, 16V) oraz mniejsze 100nF i 10nF które pomogą przy bardzo krótkich „impulsach”. Schemat układu wejściowego zasilania 5V Napięcie wchodząc przez złącze micro USB posiada szereg test-pointów gdzie można sprawdzić jego wartość. Następnie przez resetowalny bezpiecznik polimerowy trafia na kondensator wejściowy (niewielki, zaledwie 1uF) i na układ zabezpieczający przed odwrotną polaryzacją. Następnie transil mający eliminować ESD i kondensator filtrujący 47uF na głównej szynie 5V. To właśnie do tego C1 można dołożyć dodatkowe pojemności aby poprawić reakcję na duże obciążenia. Spód maliny około wejścia USB. W czerwonej ramce zaznaczony układ wejściowy, powyżej kondensator C5 Szyna 5V trafia na główną przetwornicę napięcia PAM2306AYPKE, która następnie generuje napięcia 3V3 i 1V8 potrzebne do poprawnego działania „mózgu” czyli procesora BCM2837. Schemat głównej przetwornicy zasilającej Widać że szyna 5V wchodzi do wejścia Vin1 i od razu je załącza przez En1. W ten sposób na wyjściu za cewką L1 powstaje napięcie 3V3. Natomiast Vin2 jest włączane sygnałem En2 po układzie opóźniającym RC ze stałą czasową około 10mS, co powoduje powstanie napięcia 1V8 z lekkim opóźnieniem względem 3V3. Rzut oka na układ przetwornicy (C2=4E), widać gniazdo USB, transil D5 i kondensator C1 z układu wejściowego. Po lewej układ przetwornicy, oraz cewki L1 i L2. Po prawej mały czarny układ w ramce to U16, o nim za chwilę 🙂 Mamy już więc zasilanie 5V, które zostało przetworzone na 3V3 i 1V8. Następnie dzieje się równolegle kilka rzeczy. Napięcie 5V trafia też na układ, który przy poprawnym wygenerowaniu napięcia 1V8, podaje 5V dalej, przez tranzystor P-MOS jako szynę 5V_CORE, a ta generuje nam 2 ważne sygnały. Pierwszy to sygnał RUN, który włącza nam PLL i obsługę rezonatora kwarcowego w procesorze. Drugi to SDRAM_LDO_EN, który jak łatwo się domyślić włącza nam regulator napięcia odpowiedzialny za pamięć. Widać to dobrze na następnych schematach: Warto zauważyć że sygnał RUN możemy zapodać z zewnętrznego napięcia, bądź zworką zapiąć do masy przez złącze J2. Jeszcze rzut oka pod mikroskopem, widać wyraźnie tranzystory Q7 i Q8 z powyższego schematu Następnie, świeżo wygenerowana szyna 5V_CORE trafia na przetwornicę U16, która wytwarza nam napięcie VDD_CORE, czyli zasilanie rdzenia procesora. Tutaj mogą wpiąć się śmiałkowie chcący próbować z overclockingiem, można tu zewrzeć pin Enable do masy i zapodać na VDD_CORE swoje zewnętrzne napięcie, np. Wpinając się pod kondensator C163. Można też zmienić wartości rezystorów odpowiedzialnych za feedback. Normalnie R56 jest nieobecny na płytce a R55 to zwora. Jeśli wrzucimy tam dzielnik napięcia, uzyskamy wyższe napięcie VDD_CORE bezpośrednio z przetwornicy. Schemat działania przetwornicy U16 Zdjęcie przedstawiające U16 oraz kondensator C163 odpowiadający za VDD_CORE. Plus znajduje się po lewej stronie kondensatora, masa po prawej. Widać też R55 i brak R56. Po tych wszystkich zawiłościach powinny nam się zaświecić diody sygnalizujące poprawne zasilanie. Na poniższym schemacie widzimy, że przy obecności 5V i 3V3 powinna świecić dioda POWER OK, załączona przez układ U4 i tranzystor N-MOS oznaczony Q1. Przy braku 5V albo 3V3 procesor dostanie sygnał PWR_LOW_N. Przy poprawnym napięciu 3V3 i pracy procesora, będzie migać dioda STATUS - jeśli nie miga możemy śmiało szukać usterki zasilania, bądź „zwiechy” czy innego problemu software’owego. Schemat działania LED’ów sygnalizacyjnych Jak chodzi o podstawowe zasilanie i działanie to w tym momencie omówiliśmy wszystko co jest zawarte w schematach dostępnych w oficjalnych materiałach i schematach. Teraz przyjrzymy się tym, które się w nich nie pojawiły 🙂 2. Podstawowe bloki - układy scalone Rzućmy okiem całościowo na malinę i zobaczmy co nas może interesować. Na górnej warstwie widzimy mnóstwo elementów pasywnych, kilka złącz i układy scalone. Zobaczmy które uda nam się odszyfrować. 1. Tutaj bez niespodzianek, jest to nasz główny procek BCM2837, pewnie wiecie lepiej ode mnie do czego można go wykorzystać 🙂 2. Układ LAN 9514 – zintegrowany hub USB 2.0 i kontroler Ethernet. Obsługuje 4 porty USB znajdujące się po prawej stronie oraz gniazdo Ethernet. 3. Główna przetwornica napięcia PAM2306AYPKE, generuje napięcia 3V3 i 1V8. 4. Układ scalony oznaczony XTAH H9b – Tutaj kompletna tajemnica. Udało mi się dojść do głosów twierdzących że to expander GPIO. Układ znajduje się centralnie nad gniazdem karty micro SD oraz blisko Układu BT/Wlan, więc niewykluczone że może współpracować z którymś z nich. 5. Układ scalony oznaczony 19V – Regulator napięcia, nie udało mi się odkodować jego oznaczenia, ale umiejscowienie każe przypuszczać że generuje napięcie dla pamięci RAM znajdującej się pod spodem. Obudowa prawdopodobnie DFN6 i układ jest bardzo zbliżony do np. LD39050. 6. Układ scalony oznaczony JGJ 722 – Tutaj możemy spekulować. Układ scalony przyjmuje linie SDA i SCL, HotPlugDetect oraz napięcie H5V. Może to być jakiś układ zabezpieczający przed ESD albo będący buforem sygnałowym. 7. Przetwornica 5V_CORE na VDD_CORE - RT8088AW SC 8. NC7WZ16 bufor audio, układ odbiera sygnał PWM z procesora i zamienia go na użyteczny sygnał wyjściowy, który jest potem filtrowany i może zostać zastosowany jako wyjście audio. 9. EDB8132B3MC – Pamięć RAM DDR2 10. Układ scalony oznaczony EY – tego też nie udało mi się odkodować, ale topologia jest niemal identyczna jak przy układzie z numerem 5, więc prawdopodobnie to również regulator napięcia dla pamięci RAM 11. Broadcom BCM43438 – zintegrowany moduł Bluetooth i WLAN, obok antena 3. Najczęstsze usterki sprzętowe To teraz przyjrzyjmy się potencjalnym usterkom jakie mogą spotkać naszą malinkę. Najczęstszymi problemami sprzętowymi są na pewno uszkodzenia układów zasilania. W takich przypadkach następuje zanik jednego z napięć albo jego nieprawidłowa wartość. Często jest to połączone z uszkodzeniem jakiegoś elementu korzystającego z danego napięcia i przegrzewaniem się przetwornicy i uszkodzonego elementu. Napięcia można wygodnie sprawdzić posługując się test-padami, które zostały bardzo hojnie rozmieszczone po całej płytce z obydwu stron. - Dioda POWER OK się nie świeci Oznacza to brak napięcia 5V albo 3V3, czyli albo nasz zasilacz jest uszkodzony albo przetwornica (lub jakiś jej komponent) na płytce. Bardzo rzadko zdarza się że to bezpiecznik jest uszkodzony! Ale oczywiście warto go sprawdzić. Uszkodzeniu ulegają najczęściej elementy kluczujące czyli sam układ przetwornicy, ale także towarzyszące tranzystory. W żadnym wypadku tranzystor nie powinien przewodzić bez zasilania, więc można śmiało posprawdzać je omomierzem i testerem diod. Nie jest to oczywiście idealny pomiar, ale jeśli znajdziemy gdzieś bezpośrednie zwarcie to będziemy wiedzieć że coś jest na rzeczy. Brak napięcia zasilania może też być spowodowany tym, że któryś z kondensatorów jest zwarty. Na płytce znajdują się wyłącznie kondensatory ceramiczne MLCC, które są niestety podatne na uszkodzenie „na zwarcie”. Jeśli taki kondensator zamieni się w zworkę całe napięcie generowane przez przetwornice zostanie odprowadzone przez niego do masy a my zobaczymy że grzeje się przetwornica i kondensator. Przy usterkach zasilania bardzo przydaje się kamera termowizyjna, albo spray zamrażający. Możemy pokryć płytkę szronem dzięki takiemu spryskaniu i po podaniu zasilania zniknie on od razu tam gdzie temperatura jest najwyższa. - Dioda POWER świeci ale malinka nie odpowiada To będzie prawdopodobnie uszkodzenie szyny 1V8 albo elementów na niej pracujących. Może to być zarówno uszkodzenie głównej przetwornicy, która generuje to napięcie albo kondensatorów filtrujących przy przetwornicy, bądź uszkodzenie tranzystora Q8 generującego napięcia 5V_CORE. Warto prześledzić wszystkie elementy na tej szynie i szukać grzejącego się zwarcia. - Nie czyta karty uSD Jako że złącze karty jest lutowane bezpośrednio do płytki jest narażone na uszkodzenia mechaniczne. Wszelkie problemy z odczytem danych z karty uSD będą się wiązać sprzętowo z pękniętymi lutami od pinów gniazda, bądź mechanicznym uszkodzeniem mikrostyku jaki znajduje się wewnątrz gniazda. Brak styku uniemożliwi wykrycie karty. - Brak obrazu po HDMI W Malince nie występuje żaden level shifter/transciever HDMI, więc linie sygnałowe idą bezpośrednio do procesora przez koraliki ferrytowe L4-L7. Brak obrazu sprzętowo może być spowodowany mechanicznym uszkodzeniem takiego koralika (normalnie są zwarciem dla DC ale tłumią zakłócenia wyższych częstotliwości) bądź słabym połączeniem samego gniazda przez tzw „zimne luty” czyli pęknięcia cyny w miejscu styku gniazda z płytką. Może to też wynikać z uszkodzenia układu U8, który odbiera linie SDA i SCL ze złącza HDMI. Działa on z napięcia H5V generowanego przez regulator U9, zaraz obok gniazda HDMI. - Brak komunikacji USB/ETH Tutaj sprawa jest raczej prosta, ponieważ za oba protokoły odpowiada nam jeden układ scalony - LAN 9514. Brak komunikacji będzie oznaczać jego uszkodzenie, bądź zanik napięcia zasilania. Napięcie zasilania powinno pojawić się na kondensatorach C70 i C78 i wynosić odpowiednio 3V3 i 1V8 - Brak dźwięku Wyjście audio jest sterowane sygnałem PWM bezpośrednio z procesora, więc wszelkich uszkodzeń powinniśmy się dopatrywać w tych schemacie: Albo brak zasilania 3V3 na kondensatorze C61 albo uszkodzone filtry wyjściowe. - Brak Wifi/BT Za komunikację WiFi/BT Odpowiada jeden układ - Broadcom BCM43438. Wyraźnie widać odchodzący w lewo i w dół układ wyjściowy sygnału. Idzie on do przelotki, która przenosi go na drugą stronę do zintegrowanej anteny SMD. Słaby zasięg można przypisać uszkodzeniu elementów dopasowania impedancyjnego anteny, czyli kondensatorów, dławików i rezystorów. Warto też sprawdzić napięcia zasilania na kondensatorach. Układy RF są wrażliwe na pasożytnicze impedancje więc jeśli układ jest bardzo brudny (!) to wato go wyczyścić izopropanolem aby nie zaburzać dopasowania. - Uszkodzenia mechaniczne i ESD Przez to że Rpi jest komputerem jedno-płytkowym i sprzedawany jest w „otwartej wersji” to warto zwrócić uwagę na uszkodzenia mechaniczne. Płytka usiana jest gęsto drobnymi elementami SMD w obudowach 0402 i 0603, które można łatwo uszkodzić/oderwać. Równie łatwo jest zewrzeć różne układy odkładając Rpi na niewłaściwym podłożu. Warto stosować obudowy dodatkowo chroniące przed uszkodzeniami mechanicznymi i zalaniem. Kolejną ważną rzeczą są wyładowania elektrostatyczne. Malinka jest zabezpieczona przed ESD tylko przy porcie USB od strony zasilania, natomiast HDMI, Ethernet i gniazda USB idą bezpośrednio na odpowiadające im układy i można je uszkodzić wyładowaniem elektrostatycznym. Najczęściej wyładowanie takie ma charakter krótkiego wyładowania wysokiego napięcia o stosunkowo małej energii, ale czasem wystarczy by uszkodzić struktury półprzewodnikowe w układach scalonych i wtedy ratuje nas tylko ich wymiana. To tyle jeśli chodzi i zanurkowanie w architekturę Raspberry Pi 3B, wiem że to stara płytka ale akurat taką miałem pod ręką. Starałem się napisać wystarczająco by zainteresować, ale nie za dużo by nie przynudzać, dajcie znać czy chcielibyscie więcej informacji. Wiem że na pewno mogłem dodać oscylogramy i wyniki pomiarów napięć w różnych punktach. Mogę dodać Pomiary pobieranego prądu w wersji "czystej" i z konkretnymi uszkodzeniami. Nie zaszkodzą też zdjęcia z termowizji 🙂 Na pewno jak wyjdzie Rpi 5 to postaram się rzucić na nią od razu z pełniejszym „reverse engineering”. Tymczasem będę wdzięczny za wszelkie dyskusje, komentarze, i sugestie. Dzięki za uwagę i jeszcze raz zapraszam na @OkiemElektronika na FB! 8 Cytuj Link do komentarza Share on other sites More sharing options...
Gieneq Marzec 21, 2022 Udostępnij Marzec 21, 2022 @Okiem_El dziękujemy za publikację artykułu. Zapowiada się ciekawie 🙂 Wersja 3B RPi jest chyba małoproblematyczna, przynajmniej porównując z 4, w której już od początku było sporo problemów, np. aby mieć dostęp do SSH trzeba było odpiąć kabel HDMI bo było sprzężenie przy wybranej rozdzielczości obrazu. Rozwiązano to dopiero w której rewizji. Przy okazji warto podlinkować listę możliwych problemów na RPI: https://elinux.org/R-Pi_Troubleshooting Dnia 19.03.2022 o 00:59, Okiem_El napisał: Starałem się napisać wystarczająco by zainteresować, ale nie za dużo by nie przynudzać, dajcie znać czy chcielibyscie więcej informacji. Pewnie! Myślę że im wnikliwiej tym lepiej 🙂 Powodzenia w kolejnych wpisach! Cytuj Link do komentarza Share on other sites More sharing options...
JerzyO Kwiecień 20, 2022 Udostępnij Kwiecień 20, 2022 Kawał dobrej roboty - analizy. Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!