FPGA – Poradnik #3 | Pin planner

Cześć dziś głównie zajmiemy się bardzo ważnym oraz przydatnym narzędziem jakim jest Pin Planner.

Pin Planner umożliwia nam planowanie, przypisanie pinów do zmiennych zdefiniowanych w programie oraz zmiany ich napięcia.

Jest to bardzo przydatne narzędzie ponieważ z poziomu programu mamy możliwość niezależnego zmieniania napięcia na każdym z pinów. Co na przykład w mikrokontrolerach AVR nie jest możliwe z poziomu samego kodu/interfejsu programu. W mikrokontrolerach musielibyśmy zbudować na przykład układzik dzielnika napięcia co jest już utrudnieniem.

Warto dodać, że wszystko możemy zrobić z poziomu graficznego interfejsu programu.
pinplanner-minAby najlepiej zrozumieć zasadę Pin Plannera napiszemy sobie prosty program. Jedynym zadaniem tego programu będzie zapalenie diody na naszej płytce prototypowej.

Diody na płytce mają już wlutowane rezystory, dlatego nie musimy się o nic martwić.

maximator_ang3_i-min

 

Program „wywołuje” stan niski zmiennej (a dokładnie sygnału X jednak o tym powiemy więcej w kolejnych częściach kursu) (więcej o stanach logicznych przeczytasz troszkę niżej w artykule)

Tutaj jest pewna nieścisłość, ponieważ diody na płytce MAXimator podpięte są Anodami do pinu zasilającego dlatego stan 0 będzie działał tak jak stan 1 (jeżeli podłączyli byśmy zwykłą diodę musieli byśmy wywołać stan 1).
Dzięki czemu nasza dioda po wgraniu programu do układu FPGA powinna się zapalić. Jednak jak pewnie zauważyłeś nie mamy jej zdefiniowanej w programie więc nic się nie wydarzy.
Właśnie do tego celu potrzebne jest narzędzie Pin Planner.

Uruchamiamy Pin Planner
pinplanner-min (1) I teraz przechodzimy do najważniejszego momentu czyli przypisania pinu i napięcia dla naszej zmiennej. Z racji, że dioda ma już na płytce wbudowany opornik nie musimy się o to martwić.

Więc wybieramy napięcie 2,5V oraz wybieramy Pin.


Ale jaki Pin wybrać?

Tutaj musimy skorzystać z dokumentacji dostarczonej przez producenta zestawu MAXimator

23-5-min

Aby zapalić diodę nr 0 na płytce musimy wybrać opisany Pin M16.pin

Teraz przejdźmy do wgrania naszego „programu” do płytki.

Pierwszą czynnością jaką musimy wykonać jest podłączenie programatora oraz MAXimatora.
Wykonujemy to przy pomocy 10-żyłowego kabla połączeniowego oraz kabli Micro USB (zasilający płytkę oraz zasilający programator) Kabel do programatora podłączamy do komputera a zasilający płytkę możemy podłączyć do każdego portu USB (niekoniecznie w komputerze)
pinplanner-min (3)zdj.kamamibtc

Kompilujemy (tak jak pokazywałem to w poprzednich częściach) oraz włączamy zakładkę odpowiedzialną za programowaniepinplanner-min (2)Dodajemy nasz program, który mamy wgrać do płytki klikając
Add file -> wybieramy plik, który będzie w folderze output_files plik będzie miał rozszerzenie .sof 

1-min
Gdy już wykonaliśmy wszystkie poprzednie czynności możemy wgrać program na płytkę klikając Start, czego skutkiem powinno być zapalenie diody.

Możesz zrobić to samo z zewnętrzną diodą oraz opornikiem definiując tylko inny Pin.

Jeżeli już jesteśmy przy stanach logicznych możemy sobie powiedzieć o innych typach stanów jakie możemy napotkać w układach programowalnych.

Istnieje wiele takich typów w funkcji std_logic wymienię tutaj jedne z ważniejszych.

Stan wysoki i niski powinien być dla Ciebie zrozumiały ponieważ nie ma w nim nic skomplikowanego.

Ale dla bezpieczeństwa umieszczę obrazy poglądowe.
’0’ — stan niski
stan niski-min
’1’ — stan wysoki
stan wysoki-min
Kolejne stany różnią się troszkę od stanów, które prawdopodobnie znasz.
’Z’ — stan wysokiej impedancji
stan wysokiej impedancji-min Wartość logiczna tego stanu jest zmienna ponieważ wyłapuje on zakłócenia z otoczenia
’X’ — stan nieustalony
stan nieustalony-min
I wysoki i niski

A jak wam poszło zadanie z poprzedniego odcinka? Udało się ? Jeżeli nie, to dajcie znać w komentarzach z czym mieliście problemy.

Zapraszam Was także do grupy na Facebooku KLIK oraz Newslettera

 

Zapisz się do Newslettera


 

Poprzednia część kursu
  • alek

    o kant dxxx rozbić taki kurs – to tak jakby naukę czytania zakończyć na literze ‚c’