KONKURS: Napisz artykuł, wygraj 2000 zł »

Jak powstawał mikrokontroler Raspberry Pi RP2040?

Jak powstawał mikrokontroler Raspberry Pi RP2040?

Projektowanie mikrokontrolera to bardzo długi i rozbudowany proces. Przykładowo układ RP2040, który jest sercem nowego Raspberry Pi Pico, był rozwijany już od lata 2017 roku.

Jeden z inżynierów pracujących nad projektem postanowił podzielić się swoim doświadczeniem z ciekawskimi fanami projektu.

Jednym z pierwszych etapów powstawania nowego chipa jest projektowanie jego architektury. Służy do tego język opisu sprzętu. Może to być język Verilog lub język VHDL, którego możecie się nauczyć przy okazji naszego darmowego kursu programowania układów FPGA.

Układ FPGA to programowalna macierz bramek logicznych, którą można skonfigurować w sposób odpowiadający działaniu warstwy fizycznej jakiegoś chipu. Czyli - innymi słowy - można stworzyć własny prototyp układu scalonego, którego funkcjonalność jest ograniczona głównie liczbą dostępnych bramek logicznych w danym modelu FPGA.

Porównanie zbliżonego funkcjonalnie kodu w C++ i Verilog

Porównanie zbliżonego funkcjonalnie kodu w C++ i Verilog

Gotową architekturę trzeba najpierw przetestować, bo błędy popełnione na etapie projektowania mogą doprowadzić nawet do zniszczenia drogiego układu FPGA. W tym celu przeprowadza się symulacje na komputerze PC. Co ciekawe, symulowanie kilku sekund działania chipu może trwać wiele godzin.

Nawet nowoczesny, wielordzeniowy i wielowątkowy procesor nie jest w stanie działać tak wydajnie, jak sprzętowe rozwiązanie. Dzieje się tak przez zrównoleglanie działań w prawdziwym układzie FPGA, bo większość operacji wykonuje się w nim nie jedna po drugiej, a równocześnie. 

Testowanie architektury nowego chipu na FPGA

Testowanie architektury nowego chipu na FPGA

Oczywiście oprócz zalet, praca z FPGA niesie też pewne wyzwania. Przede wszystkim - układ FPGA nie zmienia swojej konfiguracji na stałe. Potrzebna jest dodatkowa pamięć flash, która przechowuje ją podczas zaniku zasilania i przywraca podczas każdego uruchomienia układu. Zwykle nie można też w prosty sposób odtworzyć w FPGA analogowego toru sygnałów, np. zasilania referencyjnego dla ADC.

Istnieje jednak opcja rozszerzenia możliwości FPGA dzięki zewnętrznym układom, co pozwala testować także elementy inne niż cyfrowe, a zmniejszenie prędkości przeważnie nie jest na tyle znaczące, by uniemożliwić dokończenie etapu projektowania prototypu.

Testowanie USB układu RP2040 na FPGA

Testowanie USB układu RP2040 na FPGA

Gdy projektowanie i testy na uniwersalnym FPGA są już zakończone, następuje faza prototypowania krzemowego odpowiednika konfiguracji jego bramek logicznych. Przeważnie architektury układów tworzone w FPGA zajmują tylko pewien fragment jego macierzy. W docelowym układzie po prostu przenosi się ten fragment na czysty krzem, dodając opcjonalnie odpowiedniki analogowych rozszerzeń i "wypala" się te struktury już na stałe.

Jak widać na poniższym zdjęciu, w porównaniu do wielkości standardowej obudowy, sam chip RP2040 nie jest zbyt duży. Jak większość firm, Raspberry Pi zleciła jego wykonanie wyspecjalizowanym podwykonawcom. Ciekawostką jest fakt, że większość światowych firm produkujących krzem dla układów scalonych, po dziś dzień korzysta z tzw. metody Czochralskiego - techniki wynalezionej przeszło sto lat temu przez polskiego chemika - Jana Czochralskiego.

Raspberry Pi RP2040 w wygodnej obudowie do montażu przewlekanego

Raspberry Pi RP2040 w wygodnej obudowie do montażu przewlekanego

Po odebraniu prototypu, projektanci chipu przechodzą do kolejnych faz testowania. Uruchamiany produkt musi spełniać specyfikację zakresów pracy dla napięć i temperatur pracy. Zakresy, które znajdziemy w dokumentacji, są tylko statystycznie "najbezpieczniejszym" wycinkiem tego, jakim próbom poddawany jest układ w laboratorium producenta.

Testy laboratoryjne - ekstremalne temperatury i napięcia pracy

Testy laboratoryjne - ekstremalne temperatury i napięcia pracy

Jeśli wszystkie etapy przebiegną pomyślnie, kolejnym etapem jest seria próbna chipów, które znów poddawane są obszernym testom. Jeśli wszystkie zakończą się pomyślnie, rozpoczyna się produkcja masowa. W przeciwnym wypadku - zdarzają się powroty do etapu projektowania na FPGA lub tworzenia kolejnych wersji prototypów i ponowne testy.

Należy pamiętać, że nawet najlepszy układ okaże się bezużytecznym kawałkiem krzemu, jeśli nie będzie miał porządnej dokumentacji. Aby móc czegoś używać, trzeba wiedzieć jak i w jakich warunkach można to robić. W przypadku Raspberry Pi 2040, inżynierowie stanęli na wysokości zadania, spędzając wiele miesięcy na tworzeniu dokumentów i poradników. Dzięki nim praktycznie każdy może sam dokładnie poznać i zastosować rodzinę tych mikrokontrolerów we własnych projektach.

Rust, RT-Thread i FreeRTOS od teraz na Raspberry Pi Pico
Rust, RT-Thread i FreeRTOS od teraz na Raspberry Pi Pico

Programy na nowe Raspberry Pi Pico można już pisać w zyskującym na popularności języku Rust. To jednak nie koniec nowości,…... Czytaj dalej »

Źródło: [1]

2040, fpga, pico, raspberrypi, verilog, vhdl

Trwa ładowanie komentarzy...