[1] Pierwsze kroki z FPGA – szkoła MAXimatora – sprzęt i oprogramowanie

na-poczatek

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 nie mający doświadczeń z językami HDL).

Rynkowa nowość – zestaw startowy MAXimator firmy KAMAMI – daje szansę taniego zweryfikowania dotychczasowych poglądów na FPGA…

  Artykuł był publikowany w wydaniu 4/2016 miesięcznika Elektronika Praktyczna.

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 supportem.

 Szukasz supportu?

Projekty przykładowe, dokumentacje oraz filmy poświęcone MAXimatorowi są dostępne na stronie www.maximator-fpga.org.

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

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

„Sercem” zestawu jest układ FPGA 10M08DAF256C8GES 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 ADC 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. 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.

 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.

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 5V. 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 5V 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 +5V. Linia zasilająca jest zabezpieczona bezpiecznikiem polimerowym, który chroni interfejs USB zasilający zestaw przed przeciążeniem. Z napięcia 5V w zestawie MAXimator są wytwarzane 3 napięcia niezbędne do prawidłowej pracy FPGA, o wartościach: 1,2, 2,5 oraz 3,3 V. Napięcia te są wytwarzane w MAXimatorze za pomocą miniaturowych przetwornic DC/DC z serii Altera Enpirion, oznaczonych symbolem EP5388QI.

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

Fot. 2. Wygląd płytki bazowej MAXimator
Fot. 2. Wygląd płytki bazowej MAXimator

Dobrze wyposażona płytka bazowa to nie koniec atrakcji oferowanych przez zestaw MAXimator, w skład którego 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.

Fot. 3. Wygląd programatora USB Blaster, który wchodzi w skład zestawu MAXimator
Fot. 3. Wygląd programatora USB Blaster, który wchodzi w skład 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.

Fot. 4. Wygląd ekspandera z zestawu MAXimator
Fot. 4. Wygląd ekspandera z zestawu MAXimator

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

O autorze