Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'FPGA'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - roboty
    • Projekty - DIY
    • Projekty - DIY (początkujący)
    • Projekty - w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie
    • Kosz

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Znaleziono 8 wyników

  1. Cześć jestem tu nowy zakupiłem niedawno płytkę Elbert V2 do Waszego kursu, mam pytanie dotyczące instalacji środowiska ISE, która wersja będzie dla mnie najbardziej kompatybilna z zestawem ( mam windows 10 ) w instrukcji dotyczącej kursu jest podana wersja dla windowsa 7 powinienem ją zainstalować, czy pobrać wersję dla mojego windowsa 10? aktualizowaną 2018r. czy pobranie nowszej wersji znacząco utrudni mi "przejście" kursu? Pozdrawiam
  2. Jakiś czas temu na forum zaprezentowałem projekt procesora zrealizowanego na układzie FPGA. Był to układ zrealizowany na dwóch płytkach Elbert v2. Aby go uruchomić należało wykonać dość sporo pracy. Dzisiaj prezentuję pierwszą wersję układu DCE Q816, czyli bezpośredniej kontynuacji poprzedniego projektu. Można powiedzieć, że pierwsza wersja Q818 to tak naprawdę Q816 zrealizowany tylko na jednej płytce Elbert v2. Układ jest w pełni kompatybilny z poprzednim projektem oraz posiada identyczną listę rozkazów. Na ten moment nie będę skupiał się na budowie procesora, ponieważ jest ona praktycznie identyczna jak w układzie Q816. Jedyną różnicą jest to, że pamięć ROM oraz procesor zaimplementowane została na tym samym układzie FPGA. W związku z tym każdy, kto posiada płytkę Elbert v2 może pobrać projekt, który dostępny jest tutaj, a następnie uruchomić procesor Q818 w swoim domu. Po implementacji projektu na płytce FPGA powinniśmy zobaczyć następujący efekt świetlny. Należy również wspomnieć, że porty procesora skonfigurowane zostały w następujący sposób. przełączniki DIP Switch - wejście IN procesora (logika odwrotna) przycisk SW1 - RESET port P1 - wyjście OUT1 procesora diody LED - wyjście OUT2 procesora Programowanie procesora odbywa się poprzez zmianę zawartości pamięci ROM procesora. Aby tego dokonać musimy otworzyć plik ROM.vhd i następnie wpisać binarną zawartość kolejnych komórek pamięci. Najmłodsze 5-bitów to rozkaz dla procesora. Kolejne 8 to tzw. dana bezpośrednia, którą możemy przesłać do innych rejestrów. Poniżej umieszczam spis dostępnych rozkazów procesora oraz instrukcje dla ALU zapisywane w rejestrze C. Na ten moment jest to pierwsza wersja układu Q816 w przyszłości postaram się o uporządkowanie samego kodu, jak i dodanie kolejnych funkcji. O zmianach i kolejnych wersjach postaram się informować w komentarzach do tego posta.
  3. W ramach pewnego projektu muszę obsłużyć komunikację za pomocą interfejsu LVDS w układzie programowalnym FPGA (lub w zasadzie, w tej chwili, SoC). Interesuje mnie zarówno nadajnik, jak również odbiornik. Szukam materiałów na ten temat w internecie i w zasadzie jedyne co znalazłem to odpowiednie skonfigurowanie pinów i użycie prymitywów (np. IBUFDS - dla Xilinxa) w kodzie VHDL (tego języka używam). Czy jest jakaś (w miarę prosta) możliwość zastąpienia tych prymitywów własnym kodem? Nie mam pomysłu na napisanie takiego elementu, niewprowadzającego zbędnych opóźnień. Zależy mi na zapewnieniu możliwie jak największej „przenoszalności" kodu. Czy jest możliwość sprawdzenia, co tak naprawdę znajduje się w tych prymitywach (chciałbym zobaczyć, co „siedzi" w środku)? Czy może jest to po prostu fizyczny element, „zaszyty" wewnątrz FPGA? Czy jeżeli opiszę własny komponent, mający dwa wejścia (sygnały różnicowe zanegowany i nie) i jedno wyjście (które będzie po prostu podłączone do wejścia niezanegowanego lub będzie działać według załączonej tabeli zaczerpniętej z dokumentacji Xilinxa), to narzędzie do syntezy „domyśli się", że trzeba wstawić w to miejsce wejściowy bufor różnicowy? Czy nie będzie problemu z przeniesieniem projektu na inny układ (innego producenta)? Przepraszam za poziom pytań, ale pierwszy raz będę korzystał z transmisji różnicowej i nie wszystko jest dla mnie jasne. Ponadto, nie mam dużego doświadczenia z układami programowalnymi.
  4. Chciałbym krótko opisać projekt który obecnie realizuję a jest to procesor zrealizowany na układzie FPGA. DCE Q816 (nazwa własna bez większego znaczenia) to 8 bitowa jednostka o architekturze mojego własnego pomysłu. Procesor może działać przy maksymalnej częstotliwości taktowania 12MHz. Dodatkowym układem pełniącym funkcję pamięci ROM oraz koprocesora jest DCE Q817 również zrealizowany na układzie FPGA. Pierwszy jak i drugi układ powstały na płytce Elbert v2 a jest to płytka z kursu FPGA na Forbot. Kolejnymi elementami wchodzącymi w skład projektu jest wyświetlacz 7 segmentowy oraz LCD dzięki którym mamy możliwość komunikowania się ze światem zewnętrznym. Jak widać na zdjęciu płytki z układami FPGA przeszły kilka modyfikacji. Odlutowane zostały wyświetlacze LED, część przycisków oraz diody LED. Dzięki temu do dyspozycji miałem więcej pinów. Procesor może obsłużyć prosty program zapisany w pamięci ROM pełna lista rozkazów dostępna jest poniżej. Proces budowy oraz projektowania układu opisuję na moim blogu oraz Fanpagu. Jeżeli kogoś zainteresował temat zapraszam do zapoznania się z większą liczbą informacji. Dodatkowo poniżej umieszczam filmy pokazujące możliwości procesora DCE Q186.
  5. Witam, chciałbym zapytać czy do płytki z kursu Forbot możliwe jest podpięcie układu CD4056 (BCD-7 segment). Dokładniej mam na myśli podpięcie czterech wyjść FPGA do wejść BCDA układu. Czy zasilając układ scalony napięciem 5V nie uszkodzę FPGA? Wydaje mi się że takie połączenie nie uszkodzi FPGA ponieważ jego wyjścia podpięte zostaną do wejść układu zasilanego napięciem 5V. Na tych końcówkach nigdy nie powinno pojawić się 5V ponieważ są to wejścia. Jednak chciałbym na wszelki wypadek zapytać czy na pewno dobrze myślę.
  6. Temat o Arduino w dziale układów programowalnych może się w pierwszej chwili wydawać nieco nie na miejscu, ale chciałem napisać kilka słów o interesującej płytce od Arduino, a mianowicie o tytułowym MKR Vidor 4000. Układ chociaż zaprojektowany przez fundację Arduino jest jednak dość nietypowy. Nie znajdziemy w nim starego i niekoniecznie dobrego AVR, zamiast tego jest SAMD21 z rdzeniem ARM Cortex-M0+, 256KB pamięci flash oraz 32KB RAM. To jeszcze nic nadzwyczajnego, ciekawie robi się dalej. Okazuje się, że na tej małej płytce znalazło się miejsce na jeszcze jeden mikrokontroler - jest to moduł WiFi oparty o ESP32. Na koniec najciekawsze, czyli układ programowalny FPGA ze stajni Intel-a (dawniej Altery): nowiutki Cyclone 10. Więcej o samej płytce można przeczytać na stronie Arduino: https://store.arduino.cc/usa/arduino-vidor-4000 Płytka ma ogromne możliwości, ale wydaje się być jeszcze w fazie nazwijmy to późnego prototypu. Oprogramowanie nie jest jeszcze dopracowane, nie wszystko zostało opublikowane, a część kodu ma typowe dla Intela problemy z licencją - albo raczej z jej brakiem. Do tego nie najlepiej wygląda dokumentacja. Trochę to przypomina Intel Edison-a, ale miejmy nadzieję, że Intel nie spaprze kolejnego fajnego urządzenia. To co na dzień dzisiejszy jest dostępne to wsparcie dla płytki MKR 4000 w Arduino IDE. Dostępne są również cztery dedykowane biblioteki oraz nieco przykładów. Zabawę z płytką najlepiej zacząć od przeczytania instrukcji, czyli: https://www.arduino.cc/en/Guide/MKRVidor4000 W niej znajdziemy podstawowe informacje o płytce - zapomniałem wspomnieć, że jest dostępna nawet ładowarka dla akumulatora Li-Po. Zgodnie z instrukcją warto uruchomić nieśmiertelny przykład z migającą diodą - działa Z kolejnymi przykładami jest nieco trudniej. Ja na razie przetestowałem raptem kilka. Na początek bibliotekę "WiFiNINA" do obsługi WiFi za pomocą modułu firmy U-BLOX. Zgodnie z oczekiwaniami wszystko działa poprawnie, chociaż łączenie z siecią zajmuje zaskakująco dużo czasu - to chyba wina małej anteny przyklejonej na termogluta... producent chyba zdawał sobie sprawę, że zawalił projekt, bo opisano to w języku marketingu następująco: "The WiFi antenna built-in in the u-blox NINA-W102 module is made for embedded products and should NOT be touched." W każdym razie WiFi działa, czyli na początek mamy Arduino + moduł wifi. Można testować dalej. Kolejny etap to podłączenie monitora HDMI. MKR 4000 jest wyposażony w wyjście micro-HDMI podłączone do układu FPGA. Po podłączeniu monitora można zobaczyć logo Arduino: Jednak uruchomienie własnego programu (nawet przykładowego) jest nieco trudniejsze. Okazuje się że musimy uruchomić monitor portu szeregowego i... podłączyć monitor po uruchomieniu programu. Przynajmniej u mnie inaczej nie działało. Ale długo zgadywałem o co chodzi W każdym razie podłączając stary sprawdzony monitorek 7" udało mi się uzyskać Arduino z wyjściem HDMI: Samo programowanie odbywa się tradycyjnie w Arduino IDE. Cała komunikacja z FPGA ukryta jest w bibliotekach. Przykładowy program wygląda następująco: #include "VidorGraphics.h" #include "Vidor_GFX.h" Vidor_GFX vdgfx; void setup() { Serial.begin(9600); // wait for the serial monitor to open, // if you are powering the board from a USB charger remove the next line while (!Serial); // Initialize the FPGA if (!FPGA.begin()) { Serial.println("Initialization failed!"); while (1) {} } } void loop() { // Fill the screen with a white background vdgfx.fillRect(0, 0, 640, 480, vdgfx.White()); vdgfx.text.setCursor(150, 240); vdgfx.text.setAlpha(255); vdgfx.text.setSize(5); vdgfx.text.setColor(vdgfx.Blue()); vdgfx.println("Forbot"); while (1) { } } Arduino z monitorem to nie koniec możliwości jakie daje MKR 4000. Na płytce znajdziemy jeszcze złącze MIPI do podłączenia kamery. Jak można przeczytać na stronie jest to "Omnivision OV5647 camera. The MIPI camera connector is a standard format that you find on several commercial products". Okazuje się, że chodzi o kamerę do Raspberry Pi - wersja 1.3 zadziałała bez problemu. Dołączony przykład pozwala na wyświetlenie na monitorze HDMI obrazu, który rejestruje kamera: Nie widać tego na zdjęciu, ale warto podkreślić, że to nie jest znany z kamer dla Arduino standard 1 FPS. Obraz wyświetlany jest płynnie, a brak ostrości wynika z totalnie zdewastowanej kamery którą podłączyłem (jakoś nie miałem odwagi eksperymentować z nowym egzemplarzem). Wśród przykładów znajdziemy również rozpoznawanie kodów QR - ale wymaga lepszego "obiektywu" niż ma moja kamerka". Na koniec najciekawsze. Na mikrokontroler SAMD21 można wgrać "emulator" programatora FPGA, czyli USB Blaster-a. Dzięki temu będziemy mogli programować układ Cyclone 10 bezpośrednio z poziomu Quartus-a. Producent dostarcza kilka przykładowych projektów: https://github.com/vidor-libraries Jednak jak wspominałem, baza oprogramowania wydaje się dopiero powstawać. Ale jeśli Intel nie zniechęci się do własnego produktu, MKR 4000 wydaje się być bardzo ciekawym rozwiązaniem. Na koniec dostępność - jak zwykle Botland: https://botland.com.pl/pl/arduino-team-oryginalne-plytki/12946-arduino-mkr-vidor4000-abx00022-modul-z-fpga-cyclone-10.html A cena - porównując z Arduino raczej zaporowa, ale przy porównaniu z modułami FPGA - bardzo korzystna.
  7. Witam, tak jak w tytule mam do sprzedania zestaw startowy Terasic DE0-Nano, kupiłem go już dość dawno temu, ale prawie go nie używałem i tylko się kurzy, więc postanowiłem się go pozbyć. Myślę, że 200 zł będzie dobrą ceną za niego. Optymalny dla mnie jest odbiór osobisty w Warszawie, ewentualnie wysyłka(do ceny należy doliczyć jej koszt).
  8. Witam, Chciałbym zaprezentować swojego pierwszego robota "Robot FPGA v02". Opisywana konstrukcja to dwukołowy robot napędzany silnikami DC bezpośrednio połączonymi z kołami. Podwozie podpiera się na ruchomej kulce znajdującej się z tyłu. Platforma mobilna została wykonana z plastiku łączonego klejem lub śrubami. Silniki DC sterowane są metodą PWM i podłączone są do wyjść podwójnego mostka H bazującego na układzie L298. Zasilanie robota to osiem akumulatorów typu AA. Oprogramowanie zostało napisane w języku VHDL i wykonuje się na układzie FPGA Altera Cyclon II. Platforma FPGA to płytka rozwojowa Terasic DE1, zasilana jest przez przetwornicę impulsową. Robot posiada zapisaną na stałe sekwencję ruchów. W kodzie są to dwie listy, gdzie pierwsza lista zawiera nazwę ruchu, druga lista zawiera czas przez jaki ma się on wykonywać. Lista komend ruchu: IDLE, FORWARD, BACKWARD, TURN_LEFT, TURN_RIGHT, ROTATE_L, ROTATE_R. Dane techniczne: Masa robota: 965g Wymiary: szerokość, długość, wysokość : 190mm/200mm/105mm Maksymalna prędkość: 0.295 m/s (1.062 km/h) Maksymalny kąt podjazdu: 30 stopni Prześwit: 10mm Promień koła: 30mm Napięcie zasilania płytki FPGA Terasic DE1: 7,5V Parametry wyjść płytki DE1: 3.3V/25mA Napięcie zasilania silników DC: od 8,8V do 10,4V Rodzaj zasilania: 8 akumulatorów AA (NiMH) Częstotliwość PWM: 2000Hz Robot jest podstawową platformą, która posiada miejsce i zasoby pozwalające na rozbudowę i ulepszenia. Dla zainteresowanych, szczegóły opis projektu znajduje się na stronie: Link do dokumentacji robota
×
×
  • Utwórz nowe...