Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

IOLinker - moduł rekonfigurowalnych wyjść do mikrokontrolerów itp

ghost666 09 Mar 2017 19:59 2400 0
  • IOLinker - moduł rekonfigurowalnych wyjść do mikrokontrolerów itp
    IOLinker to nowatorski pomysł, mający umożliwić rozszerzenie możliwości typowych modułów z mikrokontrolerami. Układ ten jest elastycznym i konfigurowalnym systemem zapewniającym dodatkowe wyjścia, multipleksery i interfejsy w systemie. Konfiguruje się go z wykorzystaniem UART, SPI lub I²C. Moduł oferuje, między innymi:

    * Dodatkowe porty GPIO
    * Komutację cyfrowych portów IO
    * Wyjścia z sygnałem PWM.

    Aż do 127 modułów IOLinker zintegrować można w jednym systemie - każda płytka ma unikalny adres, który to umożliwia. Oferuje to możliwość zaimplementowania w systemie ogromnej ilości dodatkowych portów wejścia i wyjścia.

    Moduł oparty jest o układ FPGA. Wyprowadzono z niego, w przypadku tego modułu, 49 pinów GPIO, wszystkie dostępne dla użytkownika. Programowanie zachowania układu zrealizowane jest z wykorzystaniem prostej w użyciu biblioteki, przygotowanej do wykorzystania modułu m.in. z Arduino, Raspberry Pi oraz komputerami PC. Przykładowy projekt, obrazujący jak to zrealizować znaleźć można na portalu Instructables (Jeśli ktoś jest zainteresowany jego także mogę przetłumaczyć i umieścić na Forum - przyp.red.).

    Z wykorzystaniem opisywanego modułu do Raspberry Pi bez problemu dopiąć można np. klawiaturę matrycową, taką jak pokazana na poniższej ilustracji:

    IOLinker - moduł rekonfigurowalnych wyjść do mikrokontrolerów itp


    Łączenie pinów IO - od tego moduł wziął swoją nazwę i taka jest podstawowa funkcjonalność układu - konfigurowalnego, elastycznego multipleksera. Załóżmy na przykład, że chcemy połączyć ze sobą piny P5 i P1, gdzie P1 działać będzie jako wejście - wszystkie sygnały, podane na ten pin zostaną skierowane do P5; w ten sposób z modułu otrzymujemy konfigurowalną macierz połączeń. Łatwo zdać sobie sprawę, jakie daje to możliwości!

    Ogromną zaletą systemu jest fakt, że cała macierz połączeń zakodowana jest wewnątrz układu programowalnego w module; wszystko opisane i zrealizowane jest programowo. Dzięki temu można elastycznie zmieniać macierz połączeń podczas realizacji projektów. Dodatkowo, moduł posiada wbudowane układy detekcji stanu na poszczególnych pinach, a także potrafi wykrywać no, zwarcia. To wymarzone narzędzie dla każdego projektanta, developera i hobbysty.

    Architektura IOLinkera niezwykle upraszcza nam konstrukcję układów. Chcesz podłączyć dwa urządzenia komunikujące się po UART do mikrokontrolera? Nie ma problemu. Skomunikuj się z jednym, a następnie przełącz interfejs. W ten sposób można dołączyć np. do jednego modułu Arduino 24 kolejnych i dynamicznie komutować które komunikuje się z którym. Dodatkowo moduł może na bieżąco testować naszą sieć Arduino na wypadek np. zwarć czy awarii poszczególnych urządzeń.

    Opisana konfiguracja jest o wiele prostsza niż łączenie modułów np. zworkami, nie mówiąc już, że przekładanie 'na gorąco' kabelków jest niemalże niemożliwe. Wykorzystanie IOLinkera oferuje nam możliwość tworzenia o wiele bardziej elastycznych połączeń - mniej kabelków, mniejszy problem, większa elastyczność i wszystko kontrolowane programowo z wykorzystaniem nieskomplikowanych bibliotek.

    Układ ten może znaleźć zastosowanie w gotowych urządzeniach. Łatwiej konstruuje się prototyp z jego wykorzystaniem, a zmniejszenie ilości potrzebnego sprzętu w układzie przekłada się na niższą cenę. Łatwiej jest też oprogramować taki system z uwagi na fakt, że wiele robią za nas biblioteki i sam układ FPGA, m.in. w nim wbudowane są systemy automatycznego testowania wejść i wyjść.

    Moduł jest w stanie przełączać cyfrowe sygnały o częstotliwości do 29,56 MHz. Pozwala to na realizację urządzeń takich jak to:



    Układ programowalny, będący sercem IOLinkera ma także możliwość generowania sygnałów PWM. Można je wykorzystać do sterowania jasnością diod LED lub kontroli nad silnikiem prądu stałego. Funkcja ta jest dosyć uproszczona, jednakże i tak daje szerokie możliwości.

    Jeśli chcemy poszerzyć możliwości opisywanego modułu możemy pokusić się o przeprogramowanie układu FPGA. Do normalnego wykorzystania modułu, jakie opisano powyżej, nie jest to konieczne, jednakże jeśli chcemy nauczyć się FPGA (lub już go znamy) to jak najbardziej możliwe jest zaprogramowanie go własnym kodem - na płytce znajdziemy interfejs JTAG przeznaczony do flashowania tego układu. Wystarczy zaopatrzyć się w odpowiedni kabel, zgodny z standardem HS-USBN-2A firmy Lattice (do nabycia za około 20 euro) i już można programować układ FPGA wykorzystując darmowe środowisko Lattice Diamond. Autorzy konstrukcji planują w późniejszym czasie opublikować poświęcony temu poradnik.



    Dostępne moduły

    IOLinker - moduł rekonfigurowalnych wyjść do mikrokontrolerów itp


    Kampania crowdfundingowa na Kickstarterze obejmuje dwa moduły IOLinker:

    1) Płytke główną IOLinkera z FPGA Lattice, wyposażoną w 49 pinów GPIO. Sercem tego modułu jest ukłąd programowalny LCMXO3L-4300E-5UWG81CTR50 zawierający 4300 LUT. FPGA zasilany jest napięciem 1,2 V, ale w module wbudowano translator poziomów, co umożliwia podłączenie modułu do układów pracujących przy napięciu 3,3 V.

    Wszystkie 49 pinów GPIO modułu może być wykorzystane przez użytkownika jako dodatkowe interfejsy IO i multipleksery. Dodatkowo na 10 z nich wystawić można sygnały PWM. Sposób kontroli modułu - UART, SPI lub I²C zależny jest od wgranego do układ programowalnego wsadu.

    2) Shield Arduino, pozwalający na podłączenie IOLinkera do Arduino. W shield wbudowano translatory sygnałów, co pozwala na bezproblemową współpracę modułu z systemami zasilanymi 5 V. Wszystkie 49 pinów GPIO modułu dostępne jest dla Arduino, a interfejs jakim komunikuje się FPGA z mikrokontrolerem konfiguruje się z pomocą oporników na PCB.

    Pamiętajmy oczywiście, że IOLinkera podłączyć można także bezpośrednio do komputera, korzystając z interfejsu USB-UART z wyjściem w standardzie 3.3 V. Pozwala to na kontrolowanie jednej lub wielu płytek z poziomu PC.

    Dodatkowe funkcje

    Oprogramowanie układu FPGA jest bardzo skomplikowane i wykorzystuje zasoby sprzętowe tego układu niemalże w 100%. Co jeżeli potrzebujemy odrobinę innej funkcjonalności? możemy zaprogramować FPGA innym, opcjonalnym wsadem, jaki zamierzają przygotować twórcy modułu. W planach są między innymi wersje takie jak:

    * Wyspecjalizowany moduł z 49 wyjściami PWM.
    * Moduł wyposażony w dodatkowe interfejsy UART lub SPI do konfiguracji IOLinkera.
    * Wersja z wbudowaną translacją z dwu- do trzypoziomowego standrdu komunikacji cyfrowej do towrzenia interfejsów równoległych.

    Autorzy planują także w przyszłości dodać do układu niewielki mikrokontroler, np. jakiś układ z rodziny ATtiny do przeprowadzania testowania i weryfikacji układu, aby jeszcze bardziej ułatwić korzystanie z systemu.

    Kolejne moduły

    Prototypowanie tych modułów jest drogie, dlatego póki co powstała tylko jedna wersja IOLinkera jednakże twórcy mają już gotowe projekty kolejnych modułów:

    * Ekonomiczna płytka z 64 GPIO oparta o niewielki FPGA (LCMXO256C-3TN100C) w obudowie TQFP100, wyposażony w jedynie 256 LUTów.
    * Miniaturkowa płytka z 14 GPIO oparta o FPGA w miniaturowej obudowie WLCSP-36 (LCMXO3L-1300E-5UWG36CTR50) ale sporych możliwościach z 1300 LUT.
    * Duży moduł z 192 GPIO, zbudowany w oparciu o FPA w obufowie CABGA-256 z 1300 LUT (LCMXO3L-1300C-5BG256C).
    * Shield do Arduino oparty o ten sam FPGA jak w dużej płytce. Wyposażony ma być w 104 piny GPIO.

    IOLinker - moduł rekonfigurowalnych wyjść do mikrokontrolerów itp


    Źródło: https://www.kickstarter.com/projects/jinvent/iolinker-fpga-boards-rewire-and-extend-microcontro

    Fajne! Ranking DIY
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 napisał 9948 postów o ocenie 8210, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.