wersja mobilna | kontakt z nami

Pierwsze kroki z FPGA, Szkoła MAXimatora - sprzęt i oprogramowanie. cz. 1

Numer: Kwiecień/2016

Zainteresowanie projektowaniem w układach FPGA wśród elektroników jest duże, ale - mam wrażenie - przede wszystkim potencjalne. Jednym z podstawowych powodów takiej sytuacji jest historyczne przekonanie propagujące się wśród konstruktorów o wysokich cenach tych układów, trudnej obsłudze i wysokich kosztach oprogramowania do ich projektowania i podstawowych narzędzi sprzętowych, a także trudnym procesie pisania dla nich "programów" (jak często, nieprawidłowo, mówią konstruktorzy niemający doświadczenia z językami HDL). Rynkowa nowość - zestaw startowy MAXimator firmy KAMAMI - daje szansę taniego zweryfikowania dotychczasowych poglądów na FPGA.

Pobierz PDF

Zestaw MAXimator jest rozwiązaniem nie tylko dla początkujących elektroników, charakteryzującym się kompleksowością, niską ceną, zastosowanym nowoczesnym układem FPGA o dużych zasobach logicznych, a także dobrym wyposażeniem, dostępem do bezpłatnych narzędzi i przyzwoitym wsparciem.

Zacznijmy od krótkiej prezentacji zestawu, który będzie naszą platformą bazową, szczegółowy opis tego zestawu przedstawiliśmy w EP2/2016. Rozmieszczenie najważniejszych elementów wyposażenia pokazano na rysunku 1.

"Sercem" zestawu jest układ FPGA 10M08DAF256C-8GES z oferty firmy Altera, należący do rodziny MAX10 (prezentowanej na łamach EP w zeszłym roku).

Udostępnia on użytkownikom duże zasoby logiczne, m.in.: ponad 8000 komórek LE, 378 kb konfigurowalnej pamięci podzielonej na moduły M9K, 1376 kb wewnętrznej pamięci Flash dla aplikacji użytkownika, wewnętrzną pamięć konfiguracji Flash (nie ma konieczności używania zewnętrznego konfiguratora!), wewnętrzny generator sygnału zegarowego, wbudowany 12-bitowy przetwornik A/C o częstotliwości próbkowania 1 MHz, 2 wewnętrzne wielokanałowe syntezery PLL, które mogą także spełniać rolę dzielników częstotliwości.

Rysunek 1. Rozmieszczenie najważniejszych elementów wyposażenia zestawu MAXimator

Fotografia 2. Wygląd płytki bazowej MAXimator

W bardziej wyrafinowanych aplikacjach przydatne mogą okazać się także 24 sprzętowe multiplikatory, wbudowany sensor temperatury oraz interfejsy LVDS zintegrowane w komórkach wejściowo-wyjściowych.

Płytka MAXimator została przez producenta wyposażona w złącza zgodne z Arduino Uno Rev 3, wyposażonymi na liniach cyfrowych w translatory poziomów napięć 3,3/5 V, które umożliwiają współpracę zestawu ze standardowymi shieldami Arduino, zasilanymi napięciem 5 V.

Na złącza Arduino wprowadzono także 5 kanałów ADC (12 bitów/1 MSPS) z ochroną nadnapięciową, która zabezpiecza linie wejściowe przed przekroczeniem zakresu pomiarowego ADC, który wynosi 0…+2,5 V.

Kolejnymi elementami wyposażenia MAXimatora są:

  • interfejs HDMI (z warstwą fizyczną CEC oraz DDC),
  • interfejs VGA,
  • kwarcowy generator sygnału zegarowego 10 MHz,
  • 4 diody LED dla aplikacji użytkownika,
  • 2 diody LED sygnalizacyjne (zasilanie, konfiguracja FPGA),
  • potencjometr analogowy dołączony do dedykowanej linii wejściowej ADC,
  • gniazdo karty Flash MicroSD,
  • złącze konwertera USB/UART,
  • przycisk globalnego zerowania DEV_CLR,
  • złącze JTAG zgodne z USB Blasterem.

Zestaw jest przystosowany do zasilania napięciem 5 V ze złącza USB lub napięcia o tej samej wartości doprowadzonego do jednego z pinów na listwie PWR złącza Arduino Uno Rev. 3, oznaczonego symbolem "+5 V". Linia zasilająca jest zabezpieczona bezpiecznikiem polimerowym, który chroni interfejs USB zasilający zestaw przed przeciążeniem.

Z napięcia 5 V w zestawie MAXimator są wytwarzane 3 napięcia niezbędne do prawidłowej pracy FPGA: 1,2 V, 2,5 V oraz 3,3 V. Napięcia te są wytwarzane w MAXimatorze za pomocą miniaturowych przetwornic DC/DC z serii Altera Enpirion, oznaczonych symbolem EP5388QI.

Fotografia 3. Wygląd programatora USB Blaster, który wchodzi w skład zestawu MAXimator

Fotografia 4. Wygląd ekspandera z zestawu MAXimator

Wygląd płytki bazowej zestawu MAXimator przedstawiono na fotografii 2.

Dobrze wyposażona płytka bazowa to nie koniec atrakcji oferowanych przez zestaw MAXimator, w którego skład wchodzi także programator-debugger JTAG (fotografia 3), który jest zgodny z oferowanym przez Alterę interfejsem USB Blaster.

Za jego pomocą można programować i konfigurować układ MAX10 zastosowany w zestawie, można także debugować pracę zaimplementowanej w nim logiki, do czego służy funkcja o nazwie SignalTAP II, dostępna także w bezpłatnej wersji pakietu narzędziowego Quartus Prime Lite.

Dokumentacje, schematy, przykłady, pin-outy…

W Internecie jest dostępna specjalna strona supportowa zestawu MAXimator - www.maximator-fpga.org, na której są dostępne m.in.: schematy elektryczne, pliki produkcyjne PCB, instrukcja, rozmieszczenie wyprowadzeń zestawu, przykładowe projekty, zdjęcia, linki do filmów itp. materiały, które mogą się przydać użytkownikom zestawu MAXimator.

Kolejną, bardzo przydatną w praktyce, atrakcją zestawu MAXimator jest ekspander (shield - fotografia 4) zgodny z formatem mechanicznym Arduino, który wyposażono w 4-pozycyjny, 7-segmentowy wyświetlacz LED sterowany multipleksowo, dwie diody LED-RGB z wbudowanymi sterownikami (WS2812B), czujnik temperatury z wyjściem analogowym (świetne opracowanie STMicroelectronics - STLM20), a także trzy przyciski - jeden to "arduinowy" RESET, pozostałe do dowolnego wykorzystania przez użytkownika w aplikacjach.

W ten sposób poznaliśmy sprzęt, który będzie naszą kursową platformą, przechodzimy do oprogramowania.

Firma Altera opracowała własne środowisko projektowe dla produkowanych przez siebie układów FPGA, które nosi nazwę Quartus Prime. Jest ono dostępne w trzech wersjach o odmiennych funkcjonalnościach, z których jedna wersja - Lite - jest dostępna bezpłatnie, pozostałe dwie (Standard i Pro) są dostępne komercyjnie.

Rysunek 5. Pierwszy etap pobierania oprogramowania - Downloads na stronie altera.com

Rysunek 6. Wybieramy bezpłatną wersję Lite Edition

Do nauki projektowania w FPGA w zupełności wystarcza bezpłatna wersja Lite, która bez istotnych wyłączeń obsługuje możliwości układów MAX10, oferując bogatą gamę predefiniowanych elementów bibliotecznych. Dostępne są zarówno funkcjonalne odpowiedniki rodziny układów TTL, często stosowane bloki (liczniki, multipleksery, demultipleksery, pamięci) z możliwością łatwej parametryzacji przez użytkownika, a także spora gama IP Core'ów, które łącznie upraszczają implementację projektów i to zarówno budowanych w którymś z języków HDL jak i definiowanych za pomocą edytora schematów.

Na takim właśnie sposobu przygotowania projektów skupimy się w naszym cyklu - zapewnia on bowiem dużą przejrzystość struktury projektu, łatwe zarządzanie zmianami i jego rozbudową, jest także bliskie elektronikom, ze względu na bliskość metody implementacji projektu z projektowaniem standardowych urządzeń dla elektroników z tym, że zamiast projektu PCB implementujemy moduły cyfrowe w FPGA.

Zaczynamy od pobrania programu Quartus Prime Lite, co wymaga wejścia na stronę www.altera.com i wybranie na niej opcji Downloads ( rysunek 5). W kolejnym oknie (rysunek 6) wybieramy najnowszą dostępną wersję Lite oprogramowania (w chwili pisania artykułu była to wersja 15.1), następnie konfigurujemy listę pobrań jak pokazano na rysunku 7 - nie ma konieczności pobierania relatywnie dużych plików z narzędziami i bibliotekami do syntezy logicznej dla układów innych niż MAX10.

Rysunek 7. Nie ma konieczności pobierania całego środowiska - w zupełności wystarczą opcje pokazane na rysunku

Rysunek 8. W kolejnym kroku trzeba się zalogować lub założyć bezpłatne konto

Niezbędny dla nas jest pakiet Quartus Prime, przydatny będzie także symulator ModelSIM Altera Edition. Po naciśnięciu przycisku Download Selected Files wyświetla się okno pokazane na rysunku 8 - jeżeli mamy już założone bezpłatne konto dostępowe należy się zalogować, jeżeli nie mamy takiego konta - trzeba się zarejestrować (także bez jakichkolwiek kosztów).

W zależności od aktualnej sytuacji może się okazać konieczne pobranie update'u plików instalacyjnych, ich dostępność jest sygnalizowana wykrzyknikiem na zakładce Updates (rysunek 9).

Instalacja oprogramowania przebiega standardowo, jedynym dodatkowym zabiegiem, jaki trzeba zazwyczaj wykonać ręcznie jest wskazanie systemowi operacyjnemu Windows ścieżki do driverów obsługujących programator USB Blaster.

Rysunek 9. Opcjonalnie można pobrać także update - ich dostępność jest sygnalizowana za pomocą wykrzyknika na zakładce Updates

Rysunek 10. Prawidłowe zainstalowanie sterowników USB Blastera można zweryfi kować w systemowym Menedżerze Urządzeń

Są one instalowane w katalogu sciezka_instalacjiquartusdriversusb-blaster (dostępne są wersje 32- i 64-bitowa), po zainstalowaniu pakietu oraz pierwszym dołączeniu interfejsu USB Blaster trzeba go ręcznie wskazać. Ręczna interwencja jest potrzebna ze względu na ulokowanie sterowników w nieoczywistym z punktu widzenia OS katalogu instalacji całego pakietu.

Poprawność zainstalowania sterowników można zweryfikować sprawdzając w Menedżerze Urządzeń obecność w sekcji Kontrolery uniwersalnej magistrali szeregowej urządzenia o nazwie Altera USB-Blaster (rysunek 10).

Tak skonfigurowane środowisko sprzętowo-programowe będzie dla nas bazą do kolejnych kroków - za miesiąc zaimplementujemy w FPGA pierwszy projekt. Krok-po-kroku!

Piotr Zbysiński, EP

Pozostałe artykuły

System sterowania DMX512 dla każdego (4). Kontrolowanie urządzeń

Numer: Wrzesień/2016

W kolejnej części kursu obsługi urządzeń z interfejsem DMX512 kontynuujemy opis programu sterującego. Teraz zajmiemy się szczegółowym opisem jego funkcji, korzystając przy tym z wcześniej nabytej wiedzy. Będziemy też sterowali naszym układem demonstracyjnym z diodami LED powodując zmiany parametrów ich świecenia. Będzie to wstępem do komponowania obrazów świetlnych, tzw. Cue.

System sterowania DMX512 dla każdego (3) Adresowanie urządzeń

Numer: Sierpień/2016

W kolejnej części kursu obsługi urządzeń z interfejsem DMX512 wykonamy próbne sterowanie oświetleniem w postaci diod LED RGB. Zainstalujemy też program pomocniczy, ułatwiający adresowanie urządzeń DMX i chroniący przed popełnianiem błędów.

Zastosowanie modułu Wi-Fi ESP-12 (2). Wirtualny interfejs szeregowy

Numer: Sierpień/2016

UART jest jednym z interfejsów używanych do komunikacji. Jest on łatwy w obsłudze programowej i użyciu, szczególnie w wypadku komunikacji z komputerem PC. Dla uzyskania podstawowej funkcjonalności jest przyłączenie jedynie 3 linii: RxD, TxD oraz masy. Ileż prościej by było, gdyby można zastosować taki interfejs bez używania żadnych kabli. Pozwoliłoby to na bezproblemową komunikację komputera z systemem wbudowanym, bez konieczności ...

Programowanie paneli HMI (4)

Numer: Lipiec/2016

Praca z nowym urządzeniem zawsze zaczyna się od prostego przykładu. Takim przykładem zazwyczaj jest Hello world, czyli tak naprawdę sprawdzenie poprawności działania urządzenia. W tym odcinku kursu HMI wykonamy nieskomplikowany ekran wizualizacji z napisem "Hello world!".

System sterowania DMX512 dla każdego (2). Konfigurowanie urządzeń oraz okablowanie sieci

Numer: Lipiec/2016

W kolejnej części kursu obsługi urządzeń z interfejsem DMX512 zajmiemy się skonfigurowaniem urządzeń w sieci DMX512. Podamy też uwagi, które pozwolą na wykonanie poprawnego okablowania oraz uzyskanie wymaganego zasięgu transmisji danych. Jest to szczególnie ważne przy tworzeniu rozległych instalacji scenicznych.

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Październik 2017

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym