Skocz do zawartości

JTyburski

Użytkownicy
  • Zawartość

    69
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    3

JTyburski zajął 1. miejsce w rankingu.
Data osiągnięcia: 21 czerwca 2018.

Treści użytkownika JTyburski zdobyły tego dnia najwięcej polubień!

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Warszawa
  • Zawód
    Uczelnia
  • Moje zainteresowania:
    FPGA

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

Osiągnięcia użytkownika JTyburski

Wynalazca

Wynalazca (6/19)

  • Za 5 postów
  • Za 25 postów
  • To już rok!

Odznaki

9

Reputacja

  1. Elvis - i z takiego wyświetlacza da się dużo wycisnąć! Kto powiedział, że musi być natywnie w takowym możliwość odrębnego ustawiania kontrastu czy jasności nawet w komendach- po to się sprytnie przesyła obrazy i się tak nimi kombinuje, aby to właśnie przetestować! Więc da się jak najbardziej 😃 A do tego w takich testach nie chodzi o to aby wyłąznie dead piksele sprawdzić - chodzi też o odwzorowanie odcieni kolorów chociażby, aby zobaczyć jak się w rzeczywistości prezentują i jak się wiernie prezentuje obraz czy szybkość reakcji takiej matrycy zwłaszcza na szybkie zmiany obrazu. A także właśnie celem takich testów jest sprawdzenie jak sobie daje radę taki wyświetlacz przy odbieganiu sygnałów od założonych parametrów (czyli czy jest cienki i muszę obchodzić się z nim jak z jajkiem bo taki wrażliwy jak małe dziecko na wszelkie choróbska zaraz po urodzeniu, czy też jest pancerny niczym radziecki czołg i śmiało wytrzyma i pobyt w Czarnobylu przy nie wiadomo jakim poziomie promieniowania). To wszystko jest bardzo istotne i ważne, dlatego jest co testować nawet na takim skromnym wyświetlaczu! I nie mów przy tym "niewiele to da" - bo właśnie przez takie myślenie potem w tym kraju nic się nie zmienia mimo 30 lat kapitalizmu (za granicą się cholera interesują śmiało takimi drobiazgami, w tym w Niemczech, a tu w Polsce - ot machnąć ręką bo co mnie to, mi tylko przyziemny chleb). Ale to taka już ode mnie praktyczna rada, bo ciągle to słychać wszędzie gdzie by się nie poszło (nawet w takim Multikinie) i co za tym idzie nie ma co się dziwić, że jest jak jest jak to się słyszy po raz kolejny 😉 I studenci u mnie o tym doskonale wiedzą i ich właśnie kuruję od tego przy każdej okazji ile popadnie i przynosi to już pierwsze skuteczne efekty 😃
  2. Projekt nawet bardzo fajny - taki bym powiedział, że wręcz studencki (czymś takim się bowiem w praktyce bawią studenci, choć potem bardzo szybko im się takie coś nudzi - ale nieważne). Odnosząc się do SPI - zwykle tutaj problemy wynikają z trzech klasycznych (i doskonale znanych od dawien dawna) problemów jakie zachodzą przy transmisjach synchronicznych: 1. Sygnał z danymi na wyprowadzeniach MISO oraz MOSI jest chcąc nie chcąc z racji opóźnień i tak nieznacznie przesunięty względem sygnału zegarowego, co sprawia, że choć powinieneś na danym zboczu narastającym zegara odebrać konkretny oczekiwany bit, to go nie odbierzesz i zamiast 1 otrzymasz 0, a zamiast 0 otrzymasz 1. I teraz starczy, że przekłamiesz tak parę bitów i wychodzi co wychodzi (A dlaczego tak? Bo sygnały przechodzą w końcu różnymi ścieżkami w takim mikroprocku po prostu). 2. Sygnał zegarowy nie jest też w końcu idealny - albo będą odchylenia od częstotliwości nominalnej albo też będzie zachodził jitter, który dodatkowo będzie powodował "przesunięcia" między sygnałem danych i kolejne przekłamania bitów. 3. Taki sygnał zegarowy i sygnał danych choć z założenia są niezależne od siebie, ale jednak zawsze w układach cyfrowych jest tak, że jeden sygnał wpływa czasem na drugi i to jeszcze powoduje dodatkowe problemy. Oczywiście wydaje się, że takie przesunięcia są niewielkie - i rzeczywiście zwykle są (no może poza paroma wyjątkami) - ale właśnie diabeł tkwi w tej mniejszości już nawet dla rzędu MHz (dla człowieka wydaje się to nic, ale dla takiej elektroniki ma kolosalne znaczenie!). W każdym razie - to już nie jest kwestia pisania kodu (który może być nie wiem jak wydajny, czy jak krótki - to nie ma znaczenia) ,a czystej elektroniki i rozmieszczania elementów np w FPGA w taki sposób, aby ścieżki między elementami były jak najkrótsze, a co za tym idzie aby wynikające stąd opóźnienia były jak najmniejsze (bardzo trudne zadanie, zwłaszcza przy bardzo precyzyjnej metrologii czasu na poziomie pikosekund i mniej, którą się m.in i ja zajmuje na swojej uczelni jako jedna ze specjalizacji). I tyle 🙂 [ Dodano: 22-07-2018, 11:46 ] Swoją drogą - ja to mam taki nawyk, że jak biorę dany wyświetlacz do ręki to zaraz piszę pod niego porządny tester, żeby zobaczyć drobiazgowo niczym Niemiec jego jakość - począwszy od pasów, skończywszy na migających w różnych sekwencjach i tempach dane screeny i obrazy. Do tego test rozdzielczości, częstotliwości odświeżania, szczegółowe testy i pomiary przesunięć między liniami komunikacyjnymi, testy jasności, kontrastów, określanie jasności świecenia itp. Słowem - jestem autentycznym maniakiem urządzeń przeznaczonych do wyświetlania czegokolwiek. Można zapytać dlaczego - bo i mój ojciec to też elektronik, który zresztą ponad 40 lat przesiedział w takiej technice i zna ją jak rzemieślnik od podszewki i mógłby godzinami nawijać, począwszy od kineskopowych telewizorów Unitry skończywszy na współczesnych Panasonicach i Samsungach (jeszcze wliczając w to nadawanie telewizyjne) i mnie przy okazji zaraził tym wszystkim jeszcze w latach 90-tych, gdy byłem dzieciakiem 🙂 I tak mi zostało 😃 [ Dodano: 22-07-2018, 12:01 ] A i oczywiście powodzonka przy dalszym "sztukowaniu" projektu! (tylko nie dziękuj, aby nie zapeszyć!)
  3. Tak jak napisałem to jest tylko alternatywna propozycja. A pieniądze warto oszczędzać jak jest tylko ku temu sposobność (przyda się zawsze każdy grosz, nawet i takie 30-40 zł) 🙂
  4. Wydaje się w porządku 🙂 Aczkolwiek zawsze możesz kupić jeszcze coś uniwersalniejszego co sam Digilent stosuje w swoich zestawach tj. ten oto moduł: https://store.digilentinc.com/jtag-smt2-surface-mount-programming-module/ https://reference.digilentinc.com/_media/jtag_smt2/jtag-smt2_rm.pdf https://kamami.pl/programatory/210316-jtag-smt2.html https://www.elfadistrelec.pl/pl/modul-programowania-jtag-smt2-polaczeniu-pc-jtag-usb-przewody-przewody-ieee-1149-spi-digilent-410-251-jtag-smt2/p/30109243 Obsługuje i Zynqa-7000 (w końcu w datasheecie to nawet pokazują), obsługuje i inne układy Xilinxa, które też chcesz obsługiwać (https://forum.digilentinc.com/topic/9636-jtag-smt2-nc/ - to jest co prawda dla modułu bez złącza USB, ale to tylko tym się różni od samego SMT2, więc skoro tam obsługuje bez problemu upragnione układy to i tu obsłuży) a do tego można i po SPI programować w razie czegoś, gdyby inne metody zawiodły (ot tu masz porównanie tego co oferuje Digilent, m.in uwzględniając Twój kabel: https://blog.digilentinc.com/wp-content/uploads/2015/06/compare.jpg). A poza tym cena! Jesteś do przodu nawet o 40 zł (za które kupisz sobie porządną 0,7l flaszkę i wypijesz z żoną albo z kolegami z pracy i się zabawisz) w stosunku do takiego kabla (bo są jeszcze i tańsze oferty), który przepraszam, ale nie jest tyle wart i nie warto się tak pi***lić z przepłacaniem (a tu zaoszczędzisz, dolutujesz tylko kabelki, przylutujesz do tego stosowny wtyk PMOD, który bez problemu znajdziesz za grosze np tutaj: https://www.tme.eu/pl/details/zl262-12dg/listwy-i-gniazda-kolkowe/connfly/ds1023-2_6s21/?brutto=1&gclid=Cj0KCQjwvqbaBRCOARIsAD9s1XDnX-NF47SmdE_rTauXSReu9Jjnc5q-kGbmpqgOVo9R_RWe8OCyznwaAsSpEALw_wcB i po sprawie!). Prawda że piękne? 😃 Oczywiście to tylko alternatywna propozycja (a przynajmniej ja bym tak zrobił, bo jednak się cenię i się na upartego targuję gdzie się da, widząc jasno, że nie wszystko jest warte tyle za ile jest oferowane) i nie mówię, że i ty masz tak robić (to tylko i wyłącznie alternatywna propozycja). I już! 😃 Udanego weekendu 😃
  5. JTyburski

    Watchdog

    Na chłopski rozum: Watchdog to dosłownie z angielskiego pies na łańcuchu czyli pies, który ma pilnować obiektu lub naszego domu. Tym samym już nazwa sugeruje, że jest to coś co pilnuje lub nadzoruje i to w jakimś celu. I tak samo w przypadku elektroniki (to jest po prostu analogia) - jest to po prostu układ, który będzie nadzorował w ogólności inny układ elektroniczny, aby nie doszło do czegoś czego my nie chcemy (w przypadku psa nie chcemy aby złodziej się włamał do domu i chcemy aby go przepędzić owym psem, a tu w przypadku elektroniki nie chcemy aby np: tak jak koledzy wspomnieli zawiesił się program i chcemy to przerwać możliwie jak najszybciej, bo po co nam coś co będzie wiecznie przywieszone. Inny przykład: nadzór napięcia - nie chcemy aby przekroczyło ono ustalonego napięcia i chcemy je natychmiast obniżyć no to też watchdoga zastosujemy). I tyle! Krótko i na temat! [ Dodano: 04-07-2018, 14:01 ] A poza tym nie ma co dziewczyny zasypywać książkami czy kursami (bo zapewne tylko chce krótko i na temat przyzwoicie bez pieprzenia zrozumieć co to jest watchdog), bo jak zrozumie istotę działania watchdoga to i bez tego pociągnie sama dalej temat jak efekt domina! Wystarczy, że najpierw niech sobie w C czy Javie napisze licznik modulo n, który w końcu zawiera takiego watchdoga (a jest nim po prsotu warunek sprawdzający to czy osiągneliśmy graniczną wartość - jeśli tak to wartość licznika jest zerowana, jeśli nie to podtrzymywana). I niech te wartości wyświetli najprostszym printf czy System.out.println(), dodając tylko stosowne opóźnienia (żeby za szybko ten licznik nie pracował). Jak to zrozumie to niech zasymuluje jakiś przebieg napięcia w tych samych językach (np: z pliku TXT lub losując wartości randem) i niech doda warunek po prostu, który sprawdzać będzie wartości napięcia i w wyniku którego np: dodamy jakiś offset aby obniżyć owe napięcie. A jak to zrozumie to dalej może kolejne analogie wymyślać na spokojnie. Jak to przerobi to dalej niech te pomysły przeniesie na VHDL, Verilog, SystemVerilog, SystemC itd i zobaczy, że w elektronice to ma jednak sens. A to jak opisać takie układy to znajdzie na spokojnie na YouTubie jak ten oto licznik: A jak już z tym da radę to konfiguracja watchdoga np: w STM-ie to już bajka (kwestia konfiguracji tylko rejestrów i wcześniejszego poznania trybów w jakich on działa). I tyle! 😃
  6. Rejestr przesuwny, czyli inaczej rejestr szeregowo-równoległy, zwany z angielskiego SIPO (Serial In Parallel Out) lub inaczej: shift register. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity shift_register_top is Port ( CLK : in STD_LOGIC; D : in STD_LOGIC; LED : inout STD_LOGIC_VECTOR(7 downto 0)); end shift_register_top; architecture Behavioral of shift_register_top is begin process (CLK) begin if rising_edge(CLK) then LED <= D&LED(7 downto 1); -- przesuw w prawo LED <= LED(6 downto 0)&D; -- przesuw w lewo end if; end process; end Behavioral; I już!
  7. Prawa autorskie niestety, więc nie mogę tak ot co upowszechniać tego (takie zarządzenie u nas)
  8. Jest to po prostu VHDL-owskie słowo kluczowe oznaczające wolny port (niezajęte przez sygnał wewnętrzny) , dołączone do jednobitowego (typu std_logic) wyjścia mikroprocesora Microblaze o nazwie "read_strobe", którego zadaniem jest wskazywanie czy w danej chwili realizowany jest odczyt z mikroprocesora oraz do jednobitowego wyjścia (typ std_logic) mikroprocesora Microblaze o nazwie "interrupt_ack", które związane jest z przerwaniami wspomnianego mikroprocesora i zgodnie z dokumentacją przyjmuje wartość binarną: - "00" w trakcie resetu mikroprocesora, - "01", gdy MicroBlaze obsługuje przerwanie (tj. realizowany jest przewidziany dla danego przerwania kod) - "10", gdy realizowany jest powrót z przerwania do trybu normalnego pracy mikroprocesora (przez instrukcję RTID), - "11", gdy uaktywniane są ponownie przerwania (co sygnalizowane jest poprzez zmianę bitu MSR[iE] z logicznej wartości 0 na logiczną wartość 1) Tyle 🙂
  9. Testbench to bez względu na środowisko i firmę jest dokładnie taki sam (ot wstawić komponent do kodu i tylko napisać prosty kod do symulacji) - i tyle ^^
  10. WS2812B to standard, który przerabiamy śmiało na uczelni. Jest tak prosty, że w 5 minut w byle HDL-u można go napisać (szkoda tylko, że wzrost mocy się pojawia jak z kilka tysięcy takich diod się połączy, ale coś za coś w końcu - łatwe sterowanie, ale jeszcze do tego scalaki przy każdej diodzie i same diody co jednak mocno świecą 🙂 )
  11. NIOS II to jest prosty tak naprawdę - np: u mnie na uczelni to my jako ćwiczenie dajemy obsługę wyświetlaczy Nokii które są dostępne na KAMAMI (tj: https://kamami.pl/lcd-84x48/180404-modlcd1.html). A proste bo jakby nie patrzeć to wszystkie instrukcje są wskaźnikami na dane rejony pamięci, na której pracuje softprocesor (a w których zawarte są związane z nimi rejestry )i starczy tylko wstawiać odpowiednie wartości w danych miejscach tejże pamięci (poza tym tych rejestrów sporo wcale nie jest jak w STM-ach czy AVR-ach i dlatego tym bardziej ten softprocesor jest prosty). To tak na boku ^^
  12. Układów FPGA oczywiście się nie programuje (tak samo jak VHDL czy Verilog to nie języki, a opisy układów cyfrowych) - ale to na boku. Po drugie natomiast pierwszy artykuł to po prostu opis znanych, dostępnych opisów cyfrowych (które z definicji nie są językami i nie służą do programowania, a do opisu sprzętu, a tym bardziej nie są to alternatywy do syntez!). Tytuł ostatniego artykułu z kolei wprowadza w błąd, ponieważ nie są to żadne techniki (jak to autor ujął), a jedynie tak naprawdę to co warto znać przy tworzeniu czegokolwiek na FPGA (nic wspólnego to z nowymi metodami syntez nie ma).
  13. A i tak w praktyce sens ten sam, tylko składnia i możliwości zapisu inne ^^
  14. Zapewne niejedno z was korzystając ze środowisk do projektowania w układach programowalnych z użyciem VHDL-a, Veriloga, SystemVeriloga, SystemC itd. denerwowało się jakie beznadziejne są ich domyślne edytory tekstowe. Jak się okazuje dłużej tak byś nie musi - wszystkie te środowiska bowiem umożliwiają dołączenie zewnętrznych edytorów, które zwłaszcza kolorują kody i umożliwiają znacznie większe możliwości ich formatowania. Jak to zrobić, zawarte zostało poniżej: - W przypadku Quartusa II wystarczy wejść w Tools -> Options -> Preferred Text Editor. W wyniku tego dojdziecie do okna, w którym wystarczy wybrać stosowną opcję przy pozycji "Text editor" i podać scieżkę lokalizacji poprzez przycisk z trzema kropkami przy pozycji "Command-line:" (nie przejmować się w tym względzie parametrami - środowisko po wskazaniu ścieżki samo je doda do niej) - W przypadku Xilinx ISE wystarczy wejść w Edit -> Preferences -> Editors. W wyniku tego dojdziecie do okna, w którym wystarczy wybrać stosowną opcję przy pozycji "Text editor" i podać scieżkę lokalizacji przy pozycji "Command line syntax:" według wzoru {ścieżka_do_pliku_wykonawczego} $1 +$2 (np: {C:\Program Files (x86)\Notepad++\notepad++.exe} $1 +$2) - W przypadku Vivado wystarczy wejść w Tools -> Settings -> Text Editor. W wyniku tego dojdziecie do okna, w którym wystarczy wybrać stosowną opcję przy pozycji "Current Editor", przy czym przy wyborze opcji "Custom Editor..." należy podać scieżkę według wzoru: ścieżka_do_pliku_wykonawczego [file name] +[line number] (np: d:/programy/sigasi/sigasi.exe [file name] +[line number]) - W przypadku Libero SoC wystarczy wejść w Project -> Preferences -> Text Editor. W wyniku tego dojdziecie do okna, w którym wystarczy odznaczyć opcję "Use Libero text editor" i wskazać scieżkę do pliku wykonawczego poprzez kliknięcie przycisku z trzema kropkami przy pozycji "Location" Co ciekawe to samo można poczynić w przypadku niektórych symulatorów takich jak np: Aldec Active HDL(https://www.aldec.com/…/su…/resources/documentation/faq/1318, byleby nie zapomnieć zaznaczyć opcji "Set as default editor for C/HDL code and external files). To tak jako ciekawostka.
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.