Popularny post FlyingDutch Napisano Czerwiec 18, 2020 Popularny post Udostępnij Napisano Czerwiec 18, 2020 Cześć, dzisiaj wykonałem próbę podłączenia prostej kamery VGA (sensor CMOS) do zestawu FPGA firmy QMTECH z Artix-7 (chip FPGA: XC7A100T-2FGG677i). Tutaj jest link do tego zestawu: https://pl.aliexpress.com/item/4000170042795.html?spm=a2g0o.productlist.0.0.1bbc3a488cWayC&algo_pvid=b8e2d6de-11a7-4045-be1d-dc82c5229b85&algo_expid=b8e2d6de-11a7-4045-be1d-dc82c5229b85-3&btsid=39edaf33-09cc-4522-882b-0168a91a733d&ws_ab_test=searchweb0_0,searchweb201602_4,searchweb201603_55i Zestaw ten kupiłem jakiś czas temu i postanowiłem go użyć w tym projekcie ze względu na dużą ilość zasobów - szczególnie dużą ilość BRAM 4,660Kb (potrzebna na frame-buffer). Pewnie łatwiej i sensowniej byłoby podłączać jakąś kamerę z interfejsem MIPI (i lepszym sensorem), ale nie posiadam żadnego zestawu FPGA, który by miał wbudowany taki interfejs 😉 Jest to moja pierwsza próba podłączenia jakiejkolwiek kamery do zestawu FPGA. Wybrałem tanią kamerę "OV7670" (sensor firmy Omnivision) - tutaj link do sklepu (chińskiego): https://www.banggood.com/Wareshare-OV7670-Camera-Module-CMOS-Acquisition-Board-Adjustable-Focus-300000-Pixel-p-1478355.html?rmmds=search&cur_warehouse=CN Tutaj link do datasheet do tego sensora: https://www.voti.nl/docs/OV7670.pdf Wybrałem projekt ze strony "FPGA4Student" ponieważ z kilku branych pod uwagę wydał mi się najprostszy:był https://www.fpga4student.com/2018/08/basys-3-fpga-ov7670-camera.html Projekt był zrobiny dla zestawu FPGA "Basys 3" z Artixem-7 (XC7A35T-1CPG236C) który posiada tylko 1800 Kb wewnętrznej pamieci BRAM - stąd frame-buffer obsługuje tylko max. rozdzielczość 320x240. Można by go też odpalić na zestawach "Artix-7 35T Arty" lub "Digilent Cmod At-35T" - tutaj linki do tych zestawów: https://kamami.pl/zestawy-uruchomieniowe/560134-artix-7-35t-arty-zestaw-ewaluacyjny-dla-fpga-artix-7.html https://kamami.pl/zestawy-uruchomieniowe/562401-digilent-cmod-a7-35t-modul-uruchomieniowy-z-fpga-artix-7-410-328-35.html Ale wracając do projektu - moja płytka FPGA firmy QMTECH (XC7A100T) nie posiada wyjściowego interfejsu VGA (ma HDMI które wypróbowałem i które działa dobrze), stąd wynikła potrzeba zbudowania go samemu. Wybrałem prosty interfejs (12) rezystorów wzorując się na układzie z zestawu "Basys 3". Tutaj schemat tego interfejsu: Zmontowałem do na płytce prototypowej (potrzebne jest gniazdo VGA 15 pinowe). Tak wygląda cały układ z kamerą, interfejsem VGA (na zielonej płytce) i zestawem FPGA QMTECH. A tu obraz na monitorze (tylko składowa niebieska): Jak widzicie próba nie zakończyła się pełnym sukcesem obraz jest o rozdzielczości 320x240 pikseli (i tak miało być) natomiast jest widoczna na ekranie tylko składowa niebieska.Podejrzewam, że błąd jest na zielonej płytce z interfejsem VGA - bo była ona dzisiaj "na szybko" polutowana a nie była najpierw przetestowana (może pomyliłem się przy gnieździe VGA). Zamieszczam tu pełen projekt dla Vivado 2018.3. Plik constraints dla mojej płytki QMETCH, ale na oryginalnej stronie projektu mo\zna pobrać pełen projekt dla "Basys 3". basys3_ov7670_v1.zip W najbliższym czasie zamierzam usunąć błędy z interfejsu VGA oraz zwiększyć pojemność frame-buffer'a do pełnej rozdzielczości VGA (na mojej płytce powinno wystarczyć pamieci BRAM w układzie FPGA). Zamieszczam projekt, bo może ktoś będzie także chciał spróbować podłączyć taki model kamery do układu FPGA. Zachęcam wszystkich do własnych prób z układami FPGA, bo w dziale "Układy programowalne" na Forbocie ostatnio bardzo mało się dzieje. Pozdrawiam 🙂 3 Cytuj Link do komentarza Share on other sites More sharing options...
diablo_911 Czerwiec 20, 2020 Udostępnij Czerwiec 20, 2020 @FlyingDutch wielkie ++ za publikację tego posta i podzielenie się swoimi doświadczeniami. 😉 Generalnie, niesamowity timing! Właśnie powoli kończę pisać swoją mgr-kę i ponieważ zwolnią mi się zasoby czasowe, już zacząłem się zastanawiać, w co włożę swój nos 😉 Szukałem jakichś tanich bardziej zaawansowanych FPGA, bo pomyślałem, że spróbuję zbudować jakiś proof of concept stereo kamery z przetwarzaniem na FPGA (just for fun, sporo mogę się nauczyć 😄) - a teraz spadasz mi z nieba z tym postem, niesamowite szczęście. 🙂 Właśnie wczoraj znalazłem profil QMTECH-a i zacząłem szukać po informacji o ich płytkach. Doczytałem się na EEVBlog forum, że ponoć płytki od QMTECH-a mają słaby decoupling. Masz może jakieś uwagi co do pracy tej płytki? Całe szczęście na ich github-ie jest trochę materiałów (aczkolwiek na EEVBlogu też narzekają na niektóre z repozytoriów). Rozumiem, że w zestawie otrzymałeś odpowiedni zasilacz, prawda? Wybacz ignorancję, używasz JTAG-a od Xilinx-a czy też mogę użyć dowolnego JTAGa? Pozdrawiam! 🙂 1 Cytuj Link do komentarza Share on other sites More sharing options...
FlyingDutch Czerwiec 21, 2020 Autor tematu Udostępnij Czerwiec 21, 2020 (edytowany) 17 godzin temu, diablo_911 napisał: @FlyingDutch wielkie ++ za publikację tego posta i podzielenie się swoimi doświadczeniami. 😉 .Doczytałem się na EEVBlog forum, że ponoć płytki od QMTECH-a mają słaby decoupling. Masz może jakieś uwagi co do pracy tej płytki? Całe szczęście na ich github-ie jest trochę materiałów (aczkolwiek na EEVBlogu też narzekają na niektóre z repozytoriów) Rozumiem, że w zestawie otrzymałeś odpowiedni zasilacz, prawda? Wybacz ignorancję, używasz JTAG-a od Xilinx-a czy też mogę użyć dowolnego JTAGa? Pozdrawiam! 🙂 Cześć, jest jeden dość poważny problem z tym modelem płytki QMTECH którą kupiłem, mianowicie pin głównego zegara (M22) ma nie najlepszy routing z wszystkimi obszarami układu FPGA (co często powoduje błędy implementacji). Można odpowiednią dyrektywą w pliku constraints (XDC) zamienić ten błąd w "critical warning" ale może to powodować gorsze osiągi (maksymalną częstotliwość zegara dla danego projektu). Ten Artix-7 ma maksa 600 MHz i pewno byś tej częstotliwości nie osiągnał - mimo wszystko z zegarem 475 Mhz (koder HDMI) projekt działał mimo tego krytycznego ostrzeżenia. Odnośnie JTAG'a to używam klonu "Xilinx cable v2" z Aliexpress za około 90 PLN i działa dobrze, przedtem miałem inny drogi model Digilenta (240 PLN) i miałem z nim ciągle kłopoty. Kupiłem tą płytkę ze względu na cenę (potrzebowałem FPGA o dużej ilości zasobów) i mam nadzieję, że pomimo tej wady o której pisałem da się ją wykorzystać w planowanych projektach. Pozdrawiam BTW: na stronie firmy Digilent są ciekawsze projekty z użyciem tego samego małego sensora CMOS. Patrz linki: https://projects.digilentinc.com/projects/tags/fpga?page=1 https://projects.digilentinc.com/cc-ad/cmos-sensor-camera-system-9f74f8 Ten projekt z drugiego linku mam na etapie braku błędów syntezy, czy implementacji (Vivado 2018.3) - także dla płytki FPGA QMTECH opisywanej wyżej. Nie miałem czasu sprawdzić go fizycznie "na sprzęcie", czy działa, ale brak błędów implementacji to bardzo dobry znak 😉 Chciałem tu zamieści cały spakowany projekt dla Vivado, ale projekt po kompresji zip'em ma 89 MB a Forbot ma ograniczenie wielkości załączników do 50 MB i się nie udało. Jak będę miał chwilę czasu to wrzucę ten spakowany projekt na mój "Google disk" i wkleję tu link. Edytowano Czerwiec 21, 2020 przez FlyingDutch 1 Cytuj Link do komentarza Share on other sites More sharing options...
diablo_911 Czerwiec 21, 2020 Udostępnij Czerwiec 21, 2020 29 minut temu, FlyingDutch napisał: Cześć, jest jeden dość poważny problem z tym modelem płytki QMTECH którą kupiłem, mianowicie pin głównego zegara (M22) ma nie najlepszy routing z wszystkimi obszarami układu FPGA (co często powoduje błędy implementacji). Można odpowiednią dyrektywą w pliku constraints (XDC) zamienić ten błąd w "critical warning" ale może to powodować gorsze osiągi (maksymalną częstotliwość zegara dla danego projektu). Ten Artix-7 ma maksa 600 MHz i pewno byś tej częstotliwości nie osiągnał - mimo wszystko z zegarem 475 Mhz (koder HDMI) projekt działał mimo tego krytycznego ostrzeżenia. Odnośnie JTAG'a to używam klonu "Xilinx cable v2" z Aliexpress za około 90 PLN i działa dobrze, przedtem miałem inny drogi model Digilenta (240 PLN) i miałem z nim ciągle kłopoty. Kupiłem tą płytkę ze względu na cenę (potrzebowałem FPGA o dużej ilości zasobów) i mam nadzieję, że pomimo tej wady o której pisałem da się ją wykorzystać w planowanych projektach. Pozdrawiam Dzięki za info. 😉 Czy wystarczy to nie wiem, muszę usiąść i zaplanować. Aczkolwiek, za tę cenę taki układ do implementacji średnio-zaawansowanych projektów wydaje się bardzo kuszącą propozycją. Czytając EEVBloga właśnie martwiłem się, czy w ogóle uda się coś odpalić, ale jak Twój przykład pokazał - mam zielone światełko do zakupu. 😉 Jaki frame rate udało Ci się uzyskać na tym układzie? Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
FlyingDutch Czerwiec 21, 2020 Autor tematu Udostępnij Czerwiec 21, 2020 (edytowany) 1 godzinę temu, diablo_911 napisał: Jaki frame rate udało Ci się uzyskać na tym układzie? Hej - jeszcze tego nie mierzyłem - od czasu gdy liczba równolegle prowadzonych projektów w pracy nie spada poniżej trzech mam naprawdę minimalne ilości czasu na własne zainteresowania 😉 Mógłbyś podesłać link do EEVBloga dotyczący tej płytki QMTECH ? Pozdrawiam Edytowano Czerwiec 21, 2020 przez FlyingDutch 1 Cytuj Link do komentarza Share on other sites More sharing options...
diablo_911 Czerwiec 21, 2020 Udostępnij Czerwiec 21, 2020 Generalnie sam wątek dotyczył płytek z Zynq-ami, ale są tam generalnie komentarze do płytek QMTECH-a - LINK Plus znalazłem taki krótki spis, w którym przy wszystkich płytkach QMTECH-a jest komentarz "so beware" 🙂 - LINK 1 Cytuj Link do komentarza Share on other sites More sharing options...
FlyingDutch Lipiec 15, 2020 Autor tematu Udostępnij Lipiec 15, 2020 Cześć, dzisiaj miałem chwilkę czasu i sprawdziłem układ VGA na płytce prototypowej - były tam błędy przy wtyczce VGA (pomyłka w pinach linii RGB). Po poprawce cały układ na płytce FPGA działa zupełnie poprawnie (są wszystkie składowe koloru). Pozdrawiam Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!