Skocz do zawartości

rafal2808

Użytkownicy
  • Zawartość

    17
  • Rejestracja

  • Ostatnio

Reputacja

16 Dobra

O rafal2808

  • Ranga
    2/10
  • Urodziny 28.08.1999

Informacje

Ostatnio na profilu byli

95 wyświetleń profilu
  1. Witam, czy ktoś wie jakie jest oznaczenie przetwornika AC na płytce Red Pitaya STEMLab 125-10. Przeglądałem dokumentację oraz schemat jednak nie znalazłem nic na ten temat. Podany jest model układu CA ale o AC nic nie ma.
  2. rafal2808

    Jaki programator wybrać?

    Też wybiorę chyba DLC9G bo jednak jest pewniejszy niż kombinowanie z przejściówkami. Posiadam już płytkę Elbert v2 z kursu FPGA i przyznaję komunikacja przez USB jest bardzo wygodna, ale chciałbym również popracować na innych układach.
  3. Witam, mam dość proste pytanie czy układy FPGA np. coś takiego można zaprogramować za pomocą konwertera USB-LPT. A następnie podłączonego do niego programatora. Zastanawiam się czy takie coś w ogóle zadziała. Czy może lepiej kupić po prostu programator na USB, którego cena jest jednak wyższa.
  4. Dokładnie układy za te 7,40zł mogą często nie działać jak należy.
  5. Można powiedzieć, że koszt jest minimalnie niższy niż gotowej płytki, ale zyskane doświadczenie jest bezcenne.
  6. Pochwale się jeszcze jednym tym razem nieco mniejszym projektem. Jakiś czas temu wykonałem własne arduino uno oraz pokaże, w jaki sposób programuje się taką płytkę. A wydaje mi się to dość ciekawy temat, ponieważ wgrywam tak kod bez wcześniej wypalonego bootloadera. Moje własne arduino powstało z następujących elementów: Płytka uniwersalna 5x7cm mikrokontroler ATmega 328 rezonator kwarcowy 16MHz podstawowe elementy takie jak rezystory, kondensatory, dioda LED,przycisk tact switch oraz złącza goldpin Do samego programowania potrzebny jest jeszcze odpowiedni programator USBasp osobiście korzystam z takiej konstrukcji. Na zdjęciach można także zobaczyć, że na płytce znajduje się złącze DC 2,5mm oraz stabilizator 7805 nie są one jednak używane. Sama konstrukcja mojego arduino jest dość prosta. Mamy tutaj miktokontroler ATmega 328 do którego wyjść zostały podpięte i opisane złącza goldpin(wszystko opisane zostało zgodnie z pinami oryginalnego arduino). Dodatkowo na płytce znajduje się przycisk RESET oraz zielona dioda LED sygnalizująca zasilanie. Niezbędnym elementem jest rezonator kwarcowy 16MHz bez niego nasza płytka nie będzie działać. Jeżeli ktoś postanowi zbudować podobną płytkę polecam umieścić mikrokontroler na odpowiedniej podstawce. Programowanie takiego układu jak już wcześniej wspomniałem odbywa się za pomocą programatora USBasp. Jednak sam proces programowania wygląda nieco inaczej. Po pierwsze w zakładce narzędzia wybieramy tylko płytkę jako arduino uno inne opcje nas nie interesują. Gdy napiszemy już nasz kod klikamy przycisk 'zweryfikuj'. Następnie musimy połączyć naszą płytkę z programatorem oraz uruchomić program, który umożliwi nam przesłanie kodu w formacie pliku hex na nasz mikrokontroler osobiście korzystam z MkAvrCalculator (niestety darmowa wersja nie obsługuje układu ATmega 328). Należy upewnić się, że układ pracuje przy zegarze 16MHz. Teraz możemy już wybrać plik z kodem, który chcemy przesłać. Środowisko arduino IDE zapisuje swoje pliki dla akurat skompilowanego programu w folderze tymczasowym systemu windows i to właśnie tam szukamy plików hex. Folder ten w systemie windows 7 znajduje się pod adresem %UserProfile%\AppData\Local\Temp %WinDir%\Temp. Możemy tam znaleźć folder arduino_build, który to zawiera dwa pliki w formacie hex. Jeden z nich jest z dopiskiem bootloader drugi bez. Jako plik, który chcemy przesłać wybieramy ten bez dopisku bootloader. Na samym końcu możemy już zaprogramować nasz układ. Ciekawostką jest to, że program przesłany w taki sposób uruchamia się znacznie szybciej niż w przypadku oryginalnego arduino. Dodatkowo umieszczam kilka zdjęć wykonanej płytki oraz miejsce, w którym to znajduje się na co dzień.
  7. rafal2808

    DCE 812 (8-bitowy mikroprocesor własnej roboty)

    No cóż możliwe, że właśnie nieświadomie mylę te dwa pojęcia. Jeszcze sporo nauki przedemną, ale dziękuje za nakreślenie drogi.
  8. rafal2808

    DCE 812 (8-bitowy mikroprocesor własnej roboty)

    No akurat w przypadku tego układu tłumaczenie programu było dość czasochłonne, bo każdy rozkaz starałem się przekonwertować na polecenia dla procesora ręcznie za pomocą właśnie kartki i ołówka. Jeżeli chodzi o mój obecny projekt na FPGA to wszystkie postępy w pracach opisuje na moim blogu. Tym razem już z góry założyłem sobie, że układ ma obsługiwać skoki bezwarunkowe oraz warunkowe. Jutro bądź najpóźniej pojutrze skończę projektować licznik programu oraz sam blok pamięci ROM i przy okazji tego pojawi się pełna lista rozkazów obsługiwanych przez mój nowy projekt. Kwestia programowania nie została jeszcze do końca rozwiązana, ale na pewno nie będzie to ręczne programowanie za pomocą przycisków. Obecnie wymyśliłem sobie, że pamięć będzie można programować za pomocą mikrokontrolera a dokładniej postaram się stworzyć listę poleceń w języku C odpowiadających rozkazom procesora. Każde takie polecenie będzie wywoływać podprogram, który to będzie już zapisywał do pamięci odpowiednie wartości binarne. Można powiedzieć, że stworzę coś podobnego do asemblera.
  9. rafal2808

    DCE 812 (8-bitowy mikroprocesor własnej roboty)

    @marek1707 Z perspektywy czasu muszę powiedzieć, że owszem brak jakichkolwiek rozkazów skoków to nie był najlepszy pomysł. Jednak na tamten moment wydawało mi się, że będzie to dobre rozwiązanie. Nie chciałem rozbudowywać licznika programu oraz układu sterującego do monstrualnych rozmiarów. I tak program odpowiedzialny za generowanie liczb z ciągu Fibonacciego składał się z kilkudziesięciu instrukcji. Gdyby układ obsługiwał jakiekolwiek skoki to można by to zrealizować na kilku instrukcjach. Był to pierwszy, że tak powiem pierwszy większy projekt, jaki realizowałem (poprzednie dwa to bardzo proste procesory, chociaż słowo procesor jest nadużyciem) ale mimo wszystko nie zakładałem możliwości podłączenia zewnętrznych urządzeń układ miał tylko i wyłącznie obsługiwać kilka prostych instrukcji oraz diody LED. Jeżeli chodzi o pamięć ROM to pierwsze 8 bitów był to adres dla pamięci RAM natomiast następne 4 bity były rozkazem. Trafiał on do części logicznej, która to generowała sygnały sterujące. Czy 8K RAM było nadużyciem możliwe jednak akurat taki układ miałem pod ręką, ale mimo wszystko procesor mógł zapisywać tam dane więc RAM nie był obsługiwany tylko za pomocą przycisków. Obecnie przeniosłem się na FPGA bo projektowanie w taki sposób jest prostsze i nie mamy ograniczeń, jakie stwarzają nam układy małej skali integracji, ale projektowanie układów cyfrowych w tej czy innej formie zawsze sprawiało mi wiele radości. Przyznam się szczerze, że nie wiem jakim cudem, ale nie słyszałem o tym układzie, chociaż w cyfrówce siedzę już od dłuższego czasu. Będę musiał poczytać sobie na ten temat więcej.
  10. rafal2808

    DCE 812 (8-bitowy mikroprocesor własnej roboty)

    @FlyingDutch Dziękuję i również pozdrawiam
  11. Niewątpliwie procesory, bądź mikroprocesory stanowią ogromną część elektroniki użytkowej. Prawie w każdym urządzeniu, poczynając od najprostszych, a kończąc na najbardziej zaawansowanych komputerach, najważniejsza jest jednostka centralna. Czasy największej świetności ośmiobitowe procesory mają już za sobą, ale nadal stanowią ważną część elektroniki. Wiele urządzeń nadal z nich korzysta. Moją przygodę z elektroniką cyfrową rozpocząłem od programowania mikroprocesorów firmy Atmel były to dokładniej procesory Atmega8 oraz Atmega328. Mimo wielkich możliwości jakie dają mikrokontrolery bardziej interesowała mnie strona hardware’owa tych układów. Na ich podstawie oraz procesorów takich jak Intel 4004, 8080 stopniowo poznawałem budowę oraz działanie mikroprocesorów. W pewnym momencie stwierdziłem że nie jest to takie trudne i sam zbuduję własny procesor. Był to DCE 4 (D-digital, C-computer, E-electronic, 4 ponieważ była to jednostka czterobitowa). Następnie rozpocząłem prace nad ośmiobitowym procesorem DCE 84. Jednak i on z upływem czasu wydał mi się bardzo prosty. Prezentowany mikroprocesor DCE 812 zaprojektowałem korzystając z rozwiązań zastosowanych w DCE 84 bazując na pełnej architekturze harwardzkiej (gdzie pamięć dla programu i danych jest fizycznie rozdzielona). Schemat blokowy układu można znaleźć poniżej. Do budowy zostały użyte podstawowe układy logiczne wykonane w technologii CMOS (przykładowo bramki AND) oraz gotowe układy pamięci RAM (UL6516 2k x 8bit) oraz ROM(dwa układy 28c64 8k x 8bit) , ponieważ budowa własnych pamięci nie była możliwa z powodu braku czasu i środków. Elementy takie jak ALU, układ sterowania, zegar, oraz obsługa pamięci i poszczególnych rejestrów roboczych została zaprojektowana przeze mnie od podstaw. Fizycznie układ powstał stosunkowo niedawno i nie obyło się bez komplikacji. Zmiana układu obsługującego pamięć RAM sprawiła, że układ działa zgodnie z założeniami. Pozwala on na wykonywanie podstawowych działań matematycznych oraz prostych programów stworzonych w języku C++ i przekonwertowanych na polecenia dla tego procesora. Najbardziej zaawansowanym programem, który udało mi się uruchomić było generowanie kolejnych liczb z ciągu Fibonacciego. Praca mikroprocesora zostaje rozpoczęta od wciśnięcia fizycznego przycisku RESET, który ustawia stan "0" na wyjściach wszystkich wewnętrznych rejestrów. Uzyskujemy poprzez to adres zero na wyjściu licznika rozkazów co powoduje rozpoczęcie pracy od pierwszego wprowadzonego rozkazu (lista rozkazów widoczna na zdjęciu poniżej). Następnie układ zaczyna liczyć od 0 do 15 wewnątrz układu sterowania do każdej z tych mikrooperacji przypisane jest odpowiednie działanie zgodne z rozkazem wprowadzonym do pamięci ROM może to być np. zapis do rejestru B, reset licznika rozkazów. Po wykonaniu wszystkich mikrooperacji licznik rozkazów zwiększa swoją wartość o jeden co skutkuje przejściem do kolejnego rozkazu i cały cykl wykonywany jest ponownie. Programowanie procesora realizowane jest poprzez odpowiednie przełączniki które umożliwiają przełączanie układu między stanem pracy a programowaniem. Wprowadzanie danych oraz wybieranie adresów również realizowane jest w ten sposób. Odpowiednie przełączniki służą również do sterowania zegarem procesora. Generowanie impulsów może odbywać się automatycznie z częstotliwością ok. 10Hz lub manualnie poprzez wciśnięcie przycisku. Obecnie projektuje kolejną wersje własnego procesora tym razem staram się wszystko umieścić w jednym układzie FPGA (Korzystam z tej płytki). Postępy w pracach można obserwować na moim blogu https://rafal-bartoszak.blogspot.com/ Dodatkowo wstawiam też link do filmu gdzie można zobaczyć działanie układu.
  12. Witam, dopiero zaczynam moją przygodę z układami FPGA i przyszło mi do głowy takie pytanie czy np. tworząc multiplekser zamiast używać instrukcji with-select można posługiwać się wyłącznie funkcjami logicznymi. Po prostu tworzyć takie elementy jak multipleksery czy sumatory tylko i wyłącznie na bramkach logicznych i ich działanie opisywać za pomocą funkcji logicznych. Czy takie pisanie kodu jest dobre i czy ma to jakiś wpływ na syntezę?
×