BCM2835-Zgodnie z prawem Moore'a, liczba tranzystorów w układach scalonych rośnie wykładniczo co dwa lata. Gordon Moore pierwotnie przedstawił tę teorię w 1965 roku. Dziś jest ona nadal aktualna (w mniejszym stopniu). Możemy mieć potężne komputery jednopłytkowe, takie jak Raspberry Pi 4. Pakiety System on a Chip (SoC), takie jak BCM 2835, pozwalają SBC na przetwarzanie mocy, która znacznie przekracza możliwości superkomputerów z lat 60. Czym jednak jest BCM2835 i jak działa? Poniższy przewodnik zbada te pytania i udzieli na nie odpowiedzi.
Czym jest BCM2835
Przegląd Raspberry Pi z układem BCM2835
Źródło: Wikimedia Commons
BCM2835 to SoC, który opracowała firma Broadcom Semiconductors. Jak krótko wspomnieliśmy we wstępie, pakiety SoC takie jak BCM2835 umożliwiają powstanie urządzeń takich jak Raspberry Pi Zero. Dodatkowo The Raspberry Pi Foundation posiada BCM 2835 w Raspberry Pi A, A+, B, B+ oraz Raspberry Pi Zero W. Ponadto można go znaleźć w rzadkich modelach, takich jak Raspberry Pi Compute Module 1.
Ponieważ jest to starszy pakiet układów scalonych, raczej nie znajdziesz go w nowszych mikrokontrolerach czy komputerach jednopłytkowych. Jednak jego możliwości i peryferia wciąż są warte poznania.
Specyfikacja BCM2835
Raspberry Pi B z BCM 2835
Źródło: Wikimedia Commons
Architektura procesora: ARM
Prędkość procesora: 700 MHz
Podarchitektura procesora: Procesor ARM1176JZF-S
RAM: 512MB
SODIMM Rozmiar płyty: 6,5x3,0 cm
Piny złącza krawędziowego: 200
Pamięć Flash na pokładzie: 4GB eMMC
GPU: GPU VideoCore IV pracujący z częstotliwością 250MHz
Peryferia BCM2835 ARM
Raspberry Pi Model A wykorzystujące BCM 2835 SOC
Źródło: Wikimedia Commons
Dostępne peryferia BCM 2835 są następujące:
System Timer: Ten peryferyjny układ dostarcza pojedynczy 64-bitowy licznik wolnozmienny oraz cztery 32-bitowe kanały licznikowe.
Kontroler przerwań: Wysyła przerwania do procesora, gdy otrzymuje sygnały z innych peryferiów, takich jak systemowy timer, lub gdy któryś z bitów statusu jest ustawiony.
GPIO: BCM2835 posiada 534 linie wejścia/wyjścia ogólnego przeznaczenia. Co więcej, linie te rezydują równo w dwóch różnych bankach. Każdy pin GPIO ma więcej niż jedną funkcję w ramach pakietu BCM2835.
USB: Odnosi się do rdzenia uniwersalnej magistrali szeregowej, który wykorzystuje procesor multimedialny VideoCore/GPU. BCM2835 wykorzystuje budowę IP firmy Synopsys.
PCM / I2S Audio: Modulacja kodu impulsowego / Dźwięk międzykanałowy. BCM2835 używa tego peryferium do prezentacji dźwięku. Zasadniczo jest to zaawansowana szyna peryferyjna, która zapewnia zarówno wejściowe i wyjściowe strumienie audio, jak i dźwięk mowy. Zawiera ona cztery sygnały interfejsu: PCM_CLK (zegar bitowy), PCM_FS (sygnał synchronizacji ramki), PCM_DIN (wejście danych szeregowych) i PCM_DOUT (wyjście danych szeregowych)
Kontroler DMA: Kontroler bezpośredniego dostępu do nośników danych. Umożliwia innym urządzeniom peryferyjnym i urządzeniom wejścia/wyjścia bezpośredni dostęp do pamięci. Ponadto wymaga niewielkiego udziału procesora, ponieważ ułatwia tę funkcję. Musisz go skonfigurować, aby korzystać z fizycznych adresów sprzętowych urządzeń peryferyjnych.
I2C master: Kontroler główny dla magistrali szeregowej I2C/IIC.
I2C / SPI slave: Działa jako slave dla magistrali szeregowej I2C/IIC.
SPI (SPI0, SPI1, SPI2): Magistrala szeregowego interfejsu peryferyjnego. SPI pozwala na podłączenie wielu urządzeń do jednej grupy pinów poprzez przypisanie ich do różnych odpowiadających im pinów chip-select.
PWM: Modulator szerokości impulsów. Posiada dwa niezależne strumienie o stałych częstotliwościach. UART (UART0, UART1): BCM2835 posiada dwa uniwersalne nadajniki odbiorników asynchronicznych. Pierwszy z nich to mini UART (UART), natomiast drugi to UART PL011.
BCM2835 vs. BCM2711
BCM2711 Chip
Źródło: Wikimedia Commons
Numery wersji mogą Cię oszukać, że BCM2835 jest nowszy od BCM2711. Tak jednak nie jest. Po raz kolejny Broadcom wypuścił BCM2825 w 2013 roku. Kontrastowo, wydali BCM2711 w 2019 roku.
Jak można się spodziewać, BCM2711 zawiera wiele ulepszeń w stosunku do BCM3825. Na przykład BCM2711 wykorzystuje 64-bitowy procesor ARMv8-A z czterema rdzeniami ramienia i wątkami. Jego częstotliwość zegara wynosi 1,5 GHz.
Z kolei BCM2835 wykorzystuje jednordzeniowy i wątkowy mikroprocesor 32-bitowy. Po raz kolejny charakteryzuje się on częstotliwością taktowania 700 Mhz. Posiada jednak zdolność turbo, która pozwala na zwiększenie częstotliwości zegara do 1 GHz. Niestety, ta funkcja jest nieobecna w BCM2711.
Niemniej jednak, kolejnym obszarem, w którym BCM2711 triumfuje nad swoim poprzednikiem jest ilość pamięci, którą posiada. Jego maksymalna pojemność pamięci wynosi 8GB, czyli znacznie więcej niż 512MB BCM2835.
To tylko niektóre z najbardziej zauważalnych różnic. BCM2711 jest ogólnie dużo bardziej zaawansowanym i dopracowanym pakietem niż BCM2835. Fundacja Raspberry PI (Raspberry Pi Ltd) używa BCM2711 w swoich komputerach jednopłytkowych Raspberry Pi 4. Wykorzystuje on ulepszenia architektury x64 (64-bitowej) w stosunku do architektury x86 (32-bitowej).
FAQ

Raspberry Pi z BCM2836/35
Czym jest biblioteka BCM2835?
Biblioteka BCM2835 jest biblioteką C, która umożliwia dostęp do GPIO i innych funkcji peryferyjnych na układzie BCM2835 na RaspberryPi. Dzięki niej będziesz mógł bezpośrednio programować SoC.
Czy Raspberry Pi może pracować w trybie 32-bitowym?
Wczesne iteracje Raspberry Pi używały 32-bitowych procesorów. Na przykład BCM2835 wykorzystuje 32-bitową architekturę mikroprocesora. W związku z tym był w stanie uruchomić 32-bitowy system operacyjny. Współczesne Raspberry Pis mimo zastosowania mikroprocesorów o architekturze 64-bitowej nadal są w stanie uruchamiać 32-bitowe oprogramowanie i systemy operacyjne. Zdolność ta wynika z tego, że są one wstecznie kompatybilne z oprogramowaniem wykorzystującym architekturę 32-bitową.
Czy Raspberry Pi 4 używa BCM2835?
Raspberry Pi 4 nie korzysta z układu BCM2835. Broadcom zaprzestał produkcji BCM2835. Raspberry Pi 4 używa BCM2711, znacznie solidniejszego pakietu.
Podsumowanie
W tym przewodniku zbadaliśmy BCM 2835. Jeśli używasz starszego Raspberry Pi, może on używać BCM 2835 SoC. Chociaż jest to przestarzały SoC, to wciąż jest ważny. Szczególnie dla początkujących pracujących nad małymi projektami, takimi jak obwody nadajnika FM. Nie musisz kupować Raspberry Pi, aby korzystać z Broadcom BCM 2835. Ewentualnie możesz kupić pakiet osobno i podłączyć go do swojego obwodu lub płytki drukowanej.