Blog (30)
Komentarze (1.1k)
Recenzje (0)

Raspberry Pi w slocie PCI

@KaworuRaspberry Pi w slocie PCI23.09.2015 18:33

[image=IMG_3355]

Nie jest to takie wspaniałe, jak mogło by się wydawać (bo nie komunikuje się z PC), ale do tej pory chyba nikt jeszcze nie wpadł na taki pomysł. Może od początku. Od jakiegoś czasu mam skłonność do redukcji liczby zasilaczy i obudów w okolicy, chodzi w tym o kilka rzeczy, marnotrawstwo watów, zajmowane miejsce, ale przede wszystkim - zwolnione gniazdka. Domownicy mają tyle różnych elektronicznych zabawek, że doszło już do tego, iż za telewizorem są dwie, pięciogniazdkowe listwy zasilające, a wolne z tego jest całe jedno miejsce.

Dlatego ostatnimi czasy montuję sobie różne "customowe" zasilacze podobne do tego:

Ten konkretny model, podłączony do 12V zasilania pełni dwie funkcje - rozdzielacza i ładowarki do urządzeń ładowanych przez USB. Dzięki temu, jedno 12V/40W laptopowe źródło zasilania, jest w stanie podawać jedzenie bezpośrednio do sześciu urządzeń (wykorzystane są cztery). A poprzez wbudowaną ładowarkę USB nakarmi także do dwóch urządzeń USB jednocześnie, o ile sumarycznie nie pochłaniają więcej niż pięć amperów. Dzięki temu z całkowitej liczby siedmiu różnych zasilaczy ostał się ino jeden.

Ale co z tym Pi

Jak wiemy, Pi jest zasilane napięciem 5V. Można to robić przez wbudowane złącze µUSB, czego fanem nie jestem, lub przez złącze GPIO. Druga metoda zawsze wydawał mi się ciekawsza/lepsza, z dwóch powodów. Po pierwsze ograniczenia prądowe Pi a po drugie, rezygnując z zasilania przez µUSB pozbywamy się całkowicie wtyczek po jednej stronie płytki (nie mówię o wersji 2).

Gdyby ktoś chciał pytać, "ale co ty chcesz podłączyć, że potrzebujesz dużego prądu?!" - wyświetlacze LEDowe, głównie. Jeden matrycowy wyświetlacz LED 8x8 pobiera w szczycie 0,3A. Takich wyświetlaczy razem zestawiam 4-5, co w najgorszym razie daje 1,5A.

Wracając do tematu, temu czemuś na wzór serwera przydałby się zdalny reset/włącznik, a poza tym ma w sobie niezbyt obciążony 300W zasilacz. To może by go wykorzystać? Moglibyśmy wykorzystać bardzo teoretycznie któryś z wewnętrznych portów USB, ale to nam zajmie cały port (włącznie z linią danych). Możemy się wpiąć bezpośrednio w złącze molex prowadzące do PSU, ale wtedy musimy jeszcze gdzieś wsadzić samo Pi (nie lubię jak coś w obudowie nie jest dobrze przykręcone) i zrobić przelotkę. I wtedy olśnienie, wolny slot PCI.

Slot PCI ma tę przewagę nad PCIe, że dostępna jest na nim cała gama napięć, 3v3 (+standby), +5V, +12V i -12V (i możemy z niego wyciągnąć z grubsza 25W). Nic tylko się wpiąć i korzystać, a "przejściówka" przy okazji załatwi problem z mechanicznym umiejscowieniem Pi w obudowie.

Idealnie byłoby gdyby w Pi dało się odpiąć regulator napięcia 3v3 bez potrzeby odlutowania go. Wtedy można wykorzystać linię 3v3 standby dostępną nawet kiedy komputer nie pracuje. Takiej opcji nie ma, także zostaje nam skorzystanie z 5V albo osadzenie na płytce regulatora przerabiającego 12V na 5V. Zastosujemy pierwsza opcję, bo prościej a poza tym to prototyp, najwyżej się zmieni. Do tego dwie dodatkowe zabawki, RTC oraz Atmega8, gdyż:

  • Chcę przetestować jak wbudowany w Pi sprzętowy moduł SPI radzi sobie z programowaniem kontrolerów AVR programowanych przez SPI
  • Ma dwa (w sumie trzy) wyjścia PWM (wentylatory)
  • Pragnę przetestować driver do wentylatorów ATX, który wymóżdżyłem po tym jak zastosowanie TD62783AFG w innym projekcie nie wypaliło
  • Toleruje wyższe napięcia, jak mi się coś zetknie do 5V, to nic mu się nie stanie, jak GPIO Pi zetknie się z 5V to "papa Pi" (już raz przerobiłem)

Oryginalnie chciałem wykorzystać szynę SMBus, (która jest dostępna na złączu PCI) do komunikacji miedzy Pi a serwerem. SMBus to nic innego jak I2C z nieco doprecyzowaną specyfikacją, także wyprowadzenia do tegoż są dostępne na złączu GPIO. Ale... Ale się nie da bo Linux. I rezystory, ale Linux jest większą przeszkodą. Pi ma zamontowane na szynie I2C rezystory podciągające je do 3v3, mają wartość 1k8 i trzeba je zdemontować, jeśli Pi ma być używane jako slave. Inaczej płynący przez SMBus prąd przekroczy wszystkie normy. Druga opcją jest zainstalowanie "voltage level-shiftera" na tych liniach, co przy okazji odizoluje trochę Pi od komputera. Ale nawet jeśli zmodyfikujemy sprzęt, to i tak nie możemy wykorzystać modułu i2c procesora w trybie slave (chociaż jest obsługiwany w sprzęcie) bo sam Linux nie posiada odpowiedniego wsparcia. A jestem zbyt leniwy aby takie wsparcie dopisać. Poza tym nie jestem pewien czy dokładna dokumentacja tego procesora jest dostępna w potrzebnym zakresie. Jedyną opcją wydaje się być wsadzenie między Pi a PCI dodatkowego układu posiadającego dwa moduły i2c albo jw. i realizacja transmisji programowo.

Tak czy inaczej zostaje nam wykorzystanie PCI tylko w ramach zasilania i rozszerzenia Pi o RTC i kilka testowych zabawek, włączając to opcję wywołania resetu serwera i ewentualnego wyłączenia wszystkiego (te funkcje realizowane przez AVR).

Jak widać złącze USB zostało zdemontowane, wystawało za bardzo w tył w stosunku do sieciowego, i tak nigdy do pi nie podłączyłem niczego poza modułem Bluetooth. Poza tym Pi dostanie jeszcze swój własny pełnowymiarowy dysk HDD (skoro już niedaleko jest odpowiednie źródło mocy) podłączony przez adapter USB, który wymontowałem z kieszeni zewnętrznej na takie właśnie dyski.

Suma summarum mamy:

  • Porządnie mechanicznie osadzone Pi
  • Zdalny reset komputera w którym siedzi
  • Zdalne wyłączenie komputera w którym siedzi
  • Sterowanie wentylatorem chłodzącym Pi (wydmuchuje ciepłe powietrze na zewnątrz)
  • Monitorowanie napięć (no skoro Atmega8 ma adc...)
  • Monitorowanie temperatur (bo DS18B20 i one-wire to nie problem dorzucić)
  • Zegar RTC z podtrzymaniem
  • I wszystko mieści się w slocie PCI jak powinno, nie wystaje i nawet śledzia dostanie ;)
  • 6 kontrolek LED, z czego 3 sterowalne i wyprowadzone na śledzia

Swoją drogą ciekawostka: mini-PCIe ma wyprowadzone na sobie piny od interfejsu USB (Pi nie ma USB-device, ale można mu je dodać, co już kiedyś zrobiłem), ani PCI, ani normalne PCIe takich nie posiadają, ale miało je... AGP. Nie wiem po co je miało AGP, znaczy wiem - aby puścić do monitora, tylko chyba nigdy takiego zastosowania nie widziałem.

Oraz fascynuje mnie zrobienie wersji na złączu PCIe, z opcjonalnym akumulatorem w ramach UPS i wpięciu się w +5V SB dostępne na wtyczce zasilania płyty głównej. Tylko wtedy dysk nie będzie dostępny w momencie kiedy główne obwody prądowe zasilacza są odłączone/na zasilaniu awaryjnym. Lubimy rozwiązywać takie problemy. :D

Notka: Bateria, LEDy i rezystory do dzielników napięcia (pomiar napięć) nie są jeszcze na nich zainstalowane.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.