Projekt oscyloskopu cyfrowego. Trochę czasu minęło odkąd wszystko zacząłem, jakiś miesiąc - przez ten czas do ogarnięcia było sporo dużych i drobnych problemów, które potrafiły zająć cały dzień.. Zdecydowanie projektowanie czegoś na FPGA wymaga dużej trzeźwości umysłu. W sumie spędziłem może nad tym projektem z 100 roboczogodzin.

W ostatnim wpisie pokazałem Wam połączony moduł ADC, pamięć RAM i interfejs VGA, wraz z niewielką ilością systemu napisanego w VHDL. Dało to w efekcie prosty oscyloskop z buforem obrazu, który później rozwinąłem o obsługę dwóch enkoderów i przycisków do skalowania/przesuwania w czasie i zdałem jako projekt z elektroniki na zaliczenie na 5.0 ;-)

Projekt pozostawiony na tamtym etapie nie nazwał bym rozwojowym - implementacja kolejnych funkcjonalności nie należała do przyjemnych i zdecydowanie brakowało już na tym etapie architektury mikroprocesora, który zajął by się renderowaniem obrazu. Oczywiście poszedłem w tym kierunku ;-)

Altera
Visher - Projekt oscyloskopu cyfrowego. Trochę czasu minęło odkąd wszystko zacząłem, ...

źródło: comment_yKlgVPc8UOU7D9ZREo85MjJeETRcFpTB.jpg

Pobierz
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Elo Mirko. Pamiętacie jak tydzień temu mówiłem, że idę w kierunku oscyloskopu? Nie kłamałem i swoje przez ten tydzień zrobiłem ( ͡° ͜ʖ ͡°) Jest i gfycat na dole ( ͡° ͜ʖ ͡°) Pod punktami informacje co dalej z projektem

Trochę to trwało, bo wyszedł dodatek do Wiedźmina, ale pomimo tego udało mi się zrobić to co chciałem. Po kolei:

1) Nauczyłem się obsługiwać wbudowaną pamięć RAM w układach MAX10. Z dostępnych 378 kb (kilo BITÓW) pamięci utworzyłem bufor na 8-kolorowy obraz 320 x 240 px. Mało, ale daje to sporo czasu na renderowanie. Przy 60 FPS 1024x786 (taki mam monitor, wyświetlam na nim tylko fragment 320 x 240), po wyrenderowaniu pierwszych 240 linii, zostaje mi czas 546 linii. Jedna linia trwa 0.021 ms, czyli mam 11.46 ms na wyrenderowanie obrazu. Póki co renderowanie realizuję przy pomocy bardzo prostej architektury procesora, który maksymalnie (bez błędów zapisu do pamięci) daje się taktować
Visher - Elo Mirko. Pamiętacie jak tydzień temu mówiłem, że idę w kierunku oscyloskop...

źródło: comment_YX1P0z92fKFIu29AN2sOiZcdHCEHN66T.jpg

Pobierz
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Visher: Nie chcę Ci podcinać skrzydeł ale raczej nie masz szans konkurować na rynku oscyloskopów USB z chińczykami (chociażby). Za $100 można już na aliexpress przebierać w modelach, a według Twoich wyliczeń (zakładam, że są poprawne) nie pokrywa to nawet kosztów komponentów. A gdzie produkcja (produkt z układami BGA trudno będzie sprzedać jako kit), testowanie, pisanie softu czy zysk. Nie mówiąc o inwestorze/dystrybutorze, który będzie też chciał swoją działkę. Polecam
  • Odpowiedz
@olewales: odnosząc się do rynku konsumentów i przedsiębiorców bardziej miałem na myśli to, czy budowa czegoś takiego gdziekolwiek by się przydała. Głównie informacja, czy ktoś by chciał mieć wygodny interfejs w komputerze, bo choć tak naprawdę byłem tylko w jednym warsztacie elektronicznym pewnej firmy z różnymi "poważnymi" maszynami: stanowisko na sito do pasy lutowniczej, piec do lutowania (w formie taśmy), maszyna do automatycznego nakładania elementów SMD i parę innych podobnych, oraz innymi lżejszyi urządzeniami elektronicznymi: oscyloskop, generator, miernik, zasilacz - to nie przypominam sobie żeby tam stał komputer. Czasem jak trzeba to pojawiał się laptop. I to mnie zastanawia.
Bo dla hobbysty, myślę że to nie problem, zwykle komputer jest na tym samym biurku, a nikt nie chce płacić za twardą plastikową obudowę i dziesiątki przycisków oraz trwałych enkoderów.

Do projektu budżetowego jestem zdecydowanie za mały. Sam nie dam rady - w sumie to robić to samemu, to ciężka sprawa. Tym bardziej że do tej pory byłem gościem od kodzenia. Dopiero od 2 lat poznaję tajniki elektroniki, automatyki, druku 3D - z naciskiem na to pierwsze - a w przyszłości chciał bym to wszystko jakoś połączyć.

Na sam pomysł pracy inżynierskiej też bardzo patrzę przez palce - ale to głównie dlatego że narobię się, za przeproszeniem, jak s-------n, robiąc coś co równie dobrze mogło by być pracą magisterską, a nie będzie to ciekawe i nikt nie doceni aspektu edukacyjnego projektu - poza przyszłym pracodawcą, zapewne. Z tym przekazaniem praw autorskich to mnie zaciekawiłeś, bo cokolwiek by to nie było, na pracę inżynierską chciałem zawsze zrobić coś, co
  • Odpowiedz
UART skończony, teraz pora na 8-kolorowe VGA :-)

I to nie byle jakie, bo od razu skok w 1920 x 1080 @ 60 fps - z zegarem 148,5 MHz! Bo mnie stać ;-)

Taki testowy ekran jak na obrazku zajmuje 50 na 8000 bloków logicznych w moim układzie FPGA. Choć brzmi to obiecująco jeżeli myśleć o tym ile można w taki układ wpakować funkcji, to mimo tego podobno szybko zaczyna miejsca brakować - zobaczymy. Niektóre układy mogą mieć takich bloków setki tysięcy.

Obecnie
Visher - UART skończony, teraz pora na 8-kolorowe VGA :-)

I to nie byle jakie, bo ...

źródło: comment_ljITNk4VBphsl5BDIF9Wvfzf2G1Q8j4v.jpg

Pobierz
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

UART, ciągle UART. Przyczynę poprzedniego problemu znalazłem, zawiniło txIdle które było w stanie wysokim przez dwa cykle i dwukrotnie zwiększyło indeks po pierwszym znaku, przeskakując na trzeci. Wynikało to ze złego przekazywania zmiennej w procesie do sygnału - wołam @olewales

Problem rozwiązałem rozszerzając kod UART.vhd tak, aby przy dłuższym czasie trwania txIdle, nie przeskakiwało do kolejnego znaku. I fajnie, niby powinno działać.

Przy okazji nauczyłem się obsługiwać symulator ModelSim - jakie to fajne! Zdecydowanie potrzebne narzędzie przy testowaniu, dodatkowo pozwala wykryć pewne błędy już w działającym programie, które kompilator przepuści (co mu się dziwić).
Visher - UART, ciągle UART. Przyczynę poprzedniego problemu znalazłem, zawiniło txIdl...

źródło: comment_Uttil5ouGIUCZP1dJIAxofc3OqMllhy7.jpg

Pobierz
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zmagania z FPGA i VHDL ciąg dalszy ;-)

Tym razem rzuciłem sobie wyzwanie napisać UARTa, poszło całkiem sprawnie i czuję większa swobodę w tym języku konfiguracji. Póki co zaimplementowałem samo nadawanie które na ogół działa, cechuje się jednak dziwnym błędem - zawsze wcina drugi znak. Jakikolwiek by nie był, cokolwiek by przed nim nie stało.. Pozostałe znaki w napisach o różnej długości są spoko, problem przy różnych baudach (testowałem 9600 i 38400). To samo na PuTTY oraz Realterm.

Wrzucam kod, ktoś coś widzi, wiecie o co może chodzić?

Plik
Visher - Zmagania z FPGA i VHDL ciąg dalszy ;-) 

Tym razem rzuciłem sobie wyzwanie...

źródło: comment_WDOwVE0BJ7UQVWtuR68VNtf4y3YOvDg6.jpg

Pobierz
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#maximator #max10 Czy są Mirki które już przetestowały ten zestaw z #kamami Wczoraj przyszedł a chciałem podpytać odnośnie jakiegoś fajnego materiału opisującego Verilog lub VHDL na ich stronce są tylko przykłady z użyciem gotowych modułów niestety nie wystarcza mi to bo chciałem coś ambitniejszego zrobić
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#fpga #maximator Otworzyłem zestaw od #kamami i od razu urwałem przycisk reset (taki kątowy, przy porcie USB). Nie wiem czy tylko u mnie był on jakoś słabo zamontowany czy to wada projektowa czy po prostu ja mam dwie lewe ręce ale jeżeli nie chcecie lutować elementu SMD to bądźcie ostrożni
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach