Skocz do zawartości

FlyingDutch

Użytkownicy
  • Zawartość

    588
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    27

Wszystko napisane przez FlyingDutch

  1. FlyingDutch

    Jak pisać biblioteki na Arduino?

    Cześć, to raczej powinno wyglądać tak, że do metody led.start(int NrDiody, ...) przekazujesz parametr numer diody (oprócz reszty parametrów) i tak modyfikujesz kod tej funkcji, aby to działało poprawnie. Pozdrawiam
  2. FlyingDutch

    STM32F446 i napiecie 5V na ADC

    Cześć, a po co inne pomysły gdy najprostszy z dzielnikiem napięcia jest dobry. Pozdrawiam
  3. FlyingDutch

    Smart Home RPI co najlepiej wybrać

    @ethanak, to było kilka ładnych lat temu, nie pamiętam już co mi nie działało. Pewnie teraz jest OK i można użyć tego watchgdog'a z jądra Linuxa. Pozdrawiam
  4. FlyingDutch

    Odległość urządzeń od siebie

    Światło o dowolnej długości nadal jest falą elektro-magnetyczną Pozdrawiam
  5. FlyingDutch

    Smart Home RPI co najlepiej wybrać

    Ja sobie zrobiłem zewnętrzny Watchdogtimer na ATTiny45 (na stosie USB V-USB programowym) i działał bardzo dobrze przez około 2 lata. Jądro Linux'a ma wbudowany WatchdogTimer, ale pamiętam, że były z używaniem go związane jakieś niedogodności. Pozdrawiam
  6. FlyingDutch

    Smart Home RPI co najlepiej wybrać

    Do malinki można podłączyć Watchdog-Timer (nawet zewnętrzny na USB) i gdyby się zawiesiła robić sprzętowy restart. Pozdrawiam
  7. FlyingDutch

    Odległość urządzeń od siebie

    Cześć, nie prędkość dźwięku tylko prędkość światła (a dokładnie rozchodzenia się fali elektro-magnetycznej w powietrzu). Nie jest to równoznaczne z samą prędkością przesyłu wiadomości tym kanałem - trzeba doliczyć czas na rozkodowanie wiadomości w kontrolerze. Pozrawiam
  8. FlyingDutch

    Smart Home RPI co najlepiej wybrać

    Cześć, no i sam sobie odpowiedziałeś, koszty są znacząco wyższe niż dla innych rozwiązań i jest to jedyny minus PLC. Natomiast pewność działania, certyfikaty itp. przemawiają na korzyść PLC (jeśli dla kogoś te aspekty są istotne). Pozdrawiam
  9. FlyingDutch

    Smart Home RPI co najlepiej wybrać

    Cześć, to nie tak, nigdy nie miałem nic przeciwko PLC, tylko koszty są dużo wyższe. Pozdrawiam
  10. Cześć, to coś musiało pójść nie tak. Plik licencji musi być w folderze do którego użytkownik systemu operacyjnego uruchamiający ISE musi mieć uprawnienia do odczytu. Opisz jakie czynności wykonałeś, aby zainstalować plik licencji, może wtedy będziemy mogli coś pomóc. Wersja 64 bity u mnie na Windows 10 Pro nie działa prawidłowo - losowe błędy i kilowanie aplikacji bez powodu. U mnie działa poprawnie jedynie wersja 32-bitowa ISE. Spróbuj z 32 bit i daj znać, co się dzieje. Pozdrawiam
  11. FlyingDutch

    LicheeTang Anlogic EG4S20 FPGA Board (RISC-V)

    Cześć, podczas tworzenia pliku "user constraint file" dla płytki Mimas V.2. napotkałem problem z Briey SoC . Otóż ten soft-procesor ma osobno magistralę do odczytu i zapisu pamięci DDR - patrz te sygnały procesora: input [15:0] io_sdram_DQ_read, output [15:0] io_sdram_DQ_write, A pamięć LPDDR na płytce Mimas V.2 ma 16 bitową dwukierunkową magistralę danych. Zastanawiam się jak to zamapować w pliku ucf (czy być może do Briey trzeba dodać jakiś dodatkowy bufor z wyborem kierunku transmisji) ? Może ktoś może coś doradzić? Na razie zamapowałem te piny dwa razy (raz jako wejściowe i raz jako wyjściowe) - nie ma żadnych błędów podczas wszystkich faz implementacji projektu, ale czy będzie działać to nie jestem pewien. Tak to wygląda w pliku ucf projektu: NET "Clk100Mhz1" LOC = V10 | IOSTANDARD = LVCMOS33 | PERIOD = 100MHz ; NET "Clk100Mhz2" LOC = V10 | IOSTANDARD = LVCMOS33 | PERIOD = 100MHz ; NET "io_asyncReset" LOC = M18 | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST | PULLUP; #SW1 NET "io_jtag_tms" LOC = U7 | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST ; #Pin 1 NET "IO_P6[6]" LOC = V7 | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST ; #Pin 2 NET "IO_P6[5]" LOC = T4 | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST ; #Pin 3 NET "IO_P6[4]" LOC = V4 | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST ; #Pin 4 NET "io_sdram_ADDR[0]" LOC = J7 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_ADDR[10]" LOC = F4 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_ADDR[11]" LOC = D3 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_ADDR[12]" LOC = G6 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_ADDR[1]" LOC = J6 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_ADDR[2]" LOC = H5 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_ADDR[3]" LOC = L7 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_ADDR[4]" LOC = F3 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_ADDR[5]" LOC = H4 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_ADDR[6]" LOC = H3 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_ADDR[7]" LOC = H6 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_ADDR[8]" LOC = D2 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_ADDR[9]" LOC = D1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_BA[0]" LOC = F2 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_BA[1]" LOC = F1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[0]" LOC = L2 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[10]" LOC = N2 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[11]" LOC = N1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[12]" LOC = T2 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[13]" LOC = T1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[14]" LOC = U2 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[15]" LOC = U1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[1]" LOC = L1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[2]" LOC = K2 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[3]" LOC = K1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[4]" LOC = H2 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[5]" LOC = H1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[6]" LOC = J3 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[7]" LOC = J1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[8]" LOC = M3 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_read[9]" LOC = M1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[0]" LOC = L2 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[10]" LOC = N2 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[11]" LOC = N1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[12]" LOC = T2 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[13]" LOC = T1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[14]" LOC = U2 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[15]" LOC = U1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[1]" LOC = L1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[2]" LOC = K2 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[3]" LOC = K1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[4]" LOC = H2 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[5]" LOC = H1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[6]" LOC = J3 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[7]" LOC = J1 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[8]" LOC = M3 | IOSTANDARD = MOBILE_DDR; NET "io_sdram_DQ_write[9]" LOC = M1 | IOSTANDARD = MOBILE_DDR; Pozdrawiam
  12. Cześć, ostatnio dość dużo się mówi (także na Forbot.pl) o nowej otwartej architekturze RISC-V. Pojawia się coraz więcej różnych zestawów uruchomieniowych z tą architekturą. Oto kolejny przykład: Lichee Tang : https://www.banggood.com/Lichee-Tang-64Mbit-SDRAM-Onboard-FPGA-Downloader-Dual-Flash-RISC-V-Development-Board-p-1352386.html?rmmds=myorder&cur_warehouse=CN Właściwie to nie byłem zdecydowany w jakim dziale umieścić ten post, ale stwierdziłem, że najbardziej pasuje do tego działu. Skąd ta trudność w klasyfikacji: otóż jest to dość duży układ FPGA około 20 K logic units. Oparty na chipie FPGA - EG4S20 firmy Anlogic. Na tym układzie FPGA jest zaimplementowany jako soft-Core (podobnie jak opisywane Picoblaze, Microblaze, czy NIOSII) dwurdzieniowy CPU o architekturze RISC-V. Tutaj kilka linków dot. tej płytki: https://www.cnx-software.com/2018/09/04/licheetang-anlogic-eg4s20-fpga-board-targets-risc-v-development/ https://www.cnx-software.com/tag/anlogic/ https://www.elektroda.pl/rtvforum/topic3496915.html Zamówiłem tą płytkę, jak dotrze (pewnie około miesiąca) i będę miał chwilę wolnego czasu to podzielę się wrażeniami z uruchomienia. jedyne czego się obawiam to brak porządnej dokumentacji. Pozdrawiam BTW: zamieszczam jeszcze linki do dokładniejszego opisu i środowiska (IDE) do programowania układu: http://myosuploads3.banggood.com/products/20181113/20181113213840SipeedlicheeTangSpecificationsV1.0.pdf https://github.com/Lichee-Pi/Tang_E203_Mini Jeśli ktoś ma więcej informacji o tym zestawie to niech się podzieli nimi - z chęcią się zapoznam
  13. FlyingDutch

    Smart Home RPI co najlepiej wybrać

    Cześć, według mnie CAN jest bardzo często wykorzystywany w przemyśle. Ja pracuje w zupełnie innej branży niż motoryzacja a CAN jest najczęściej używaną magistralą w projektach w których uczestniczę. Jeśli chodzi o PLC to też CAN jest często używany oraz coraz częściej Profinet (odmiana Ethernet'u). Jako serwer WWW wystarczy ESP8266. Jeśli myślisz, że na RPI będzie to chodziło wydajniej niż na STM32 to jesteś w błędzie. Sam Linux bardzo mocno obciąża te procesory (zobacz sobie kiedyś ile demonów chodzi w tle). Byłoby inaczej, gdybyś sam uszył sobie Linuxa "na miarę" np. korzystając z meta-dystrybucji Gentoo (łącznie z jądrem szytym na miarę), ale raczej nie będziesz tego robił? Po któreś tam tak jak pisałem, to chyba Domoticz ma obsługę CAN bus (jakiś moduł dodatkowy). Ale to oczywiście ma być system dla Ciebie, więc możesz wybrać rozwiązania jakie Ci pasują. Pozdrawiam
  14. FlyingDutch

    Smart Home RPI co najlepiej wybrać

    Cześć, ja osobiście gdybym chciał sobie zrobić taki system wybrałbym płytki z STM32 i magistralę CAN (posiłkując się czasem ESP8266). Pozdrawiam
  15. FlyingDutch

    Smart Home RPI co najlepiej wybrać

    Cześć, tak, teraz według mnie twoja interpretacja jest poprawna. W praktyce stosują odpowiednia konfigurację sieci i odpowiednie układy scalone można uzyskać nawet te 256 urządzeń podpiętych do magistrali. Pozdrawiam
  16. FlyingDutch

    Smart Home RPI co najlepiej wybrać

    Cześć, nie jest to dokładnie tak, jak to interpretujesz. Patrz np. ten link: https://www.amplicon.com/info/faq-answer.cfm?id=459 A tutaj to samo tylko dokładnie wytłumaczone: http://www.ti.com/lit/an/slla166/slla166.pdf Pozdrawiam
  17. Cześć, a przypadkiem przy wypalaniu bootloadera nie poprzestawialy ci się jakieś "fuse bits" - o ile dobrze pamiętam to jest chyba jeden, który blokuje "ISP programming". Patrz te wątki: https://forum.arduino.cc/index.php?topic=374842.0 https://forum.arduino.cc/index.php?topic=71580.0 Pozdrawiam
  18. FlyingDutch

    Smart Home RPI co najlepiej wybrać

    Cześć, tutaj masz skrócony opis kilku stosowanych protokołów (niestety część z nich jest bezprzewodowa)., no i oczywiście nie są to wszystkie stosowane: https://www.safewise.com/blog/makes-house-smart-home-home-automation-protocols/ Pozdrawiam BTW: znalazłem jakiś wątek o wykorzystaniu CAN'a w Domoticzu, ale ile jest wart to nie potrafię powiedzieć: https://www.domoticz.com/forum/viewtopic.php?t=17726 Jeśli CAN by działał z Domoticzem OK, to ja osobiście wybrałbym tą opcję.
  19. FlyingDutch

    Jak pisać biblioteki na Arduino?

    Cześć, jeśli znasz C++, to praktycznie powinieneś móc napisać własną bibliotekę do Arduino - jest to po prostu klasa w języku C++ (bez żadnych udziwnień w stosuknu do C++). Na oryginalnej stronie Arduino jest tutorial: https://www.arduino.cc/en/Hacking/libraryTutorial Niestety po łacinie Pozdrawiam
  20. FlyingDutch

    Smart Home RPI co najlepiej wybrać

    Cześć, taka mała uwaga tylko: dla RS485 trzeba się sporo napisać (kodu programu). Ta magistrala nie ma żadnego sprzętowego arbitrażu dostępu do niej i wszystko trzeba samemu oprogramować (RS nie ma żadnych adresów dostępu sprzętowych). CAN bus jest zbliżony jeśli chodzi o duże odległości transmisji, ale ma sprzętowy arbitraż dostępu do magistrali i korektę błędów (czyli jest lepszy do programowania niż RS485). Ale jeśli wybrałbyś CAN to RPI go bezpośrednio nie obsłuży - trzeba dokupować odpowiednie shieldy i raczej programować to samemu (nie wiem, czy np. Domoticz ma moduły do jego obsługi). Jeśli chodzi o obsługę CAN'a to np. STM32 mają ją wbudowaną w procesor (np. tanie STM32F103x), wystarczy dodać prosty scalak z driverem magistrali. Jeśli już korzystać z RS485 to z jakimś protokołem wyższych warstw np. Modbus, który załatwi adresację modułów a RS485 tylko jako warstwa fizyczna magistrali (np. Modbus RTU). Pozdrawiam
  21. FlyingDutch

    LicheeTang Anlogic EG4S20 FPGA Board (RISC-V)

    Cześć Elvis, to bardzo dobra wiadomość. Dzięki za linki i podzielenie się informacją Pozdrawiam BTW: właśnie pracuje nad BrieySoC tak, aby można go uruchomić na płytce Mimas V.2 (ze Spartanem6 i pamięcią DDR). Właśnie skończyłem przeróbkę BrieySoC - dodałem dwa zegary (PLL) dla magistrali AXI (%0MHz) i VGA(25.175MHz). projekt dla Spartana6 syntetyzuje się poprawnie. Teraz wystarczy stworzyć plik ucf (user constraints file) dla płytki MIMAS V.2 - wgrać projekt do FPGA i zobaczyć, czy będzie działał (spróbować załadować przykładowy program do procesora za pomocą programatora JTAG). Tutaj spakowany projekt (Xilinx ISE): BrieySoCNext.zip Pozdrawiam
  22. FlyingDutch

    Ciekawostki ze świata elektroniki i mechaniki

    Cześć, tutaj link z kilkoma przykładami (Video) co ciekawego można robić już dziś z procesorami opartymi na architekturze RISC-V z akceleratorem sieci neuronowych: https://www.eevblog.com/forum/microcontrollers/sipeed-maixpy-and-maixduino-show-case-run-ai-easier~/ Mam nadzieję, że się wam spodoba Mam nadzieję, że wklejenie linku z innego forum nie jest wbrew regulaminowi? Pozdrawiam
  23. FlyingDutch

    LicheeTang Anlogic EG4S20 FPGA Board (RISC-V)

    Cześć, właśnie dzisiaj udało mi się uruchomić bardzo proste demo (UART) na płytce "Lichee Tang Anlogic FPGA": https://www.banggood.com/Lichee-Tang-64Mbit-SDRAM-Onboard-FPGA-Downloader-Dual-Flash-RISC-V-Development-Board-p-1352386.html?rmmds=myorder&cur_warehouse=CN z użyciem tego programatora JTAG firmy Sipeed (dedykowany dla RISCV): https://www.banggood.com/FT2232D-JTAG-USB-RV-Debugger-For-Lichee-Tang-RISC-V-Development-Board-p-1352457.html?rmmds=search&cur_warehouse=CN Postępowałem według tego tutoriala: Hello World on the Lichee Tang RISC-V/FPGA board Mój OS to Linux Mint 18.1 Serena z desktopem Mate i nie miałem problemu z żadnym z punktów tutoriala. Końcowy efekt widać na zrzucie ekranu: Teraz mam zamiar wypróbować bardziej złożone programy oraz IDE "Freedom Studio RiscV" oraz "SEGGER Embedded Studio for RISC-V 4.12" , a także chcę się zapoznać z programem do syntezy FPGA firmy Anlogic. Aby zrobić jakieś bardziej spektakularne próby musiałbym kupić ekran LCD dedykowany do tej płytki: https://www.banggood.com/Lichee-Pi-5-inch-LCD-Display-RTP-800480-Resolution-With-4-wire-Resistive-Touch-Screen-p-1340806.html?rmmds=search&cur_warehouse=CN i moduł kamery. Jak dotychczas nie udało mi się zweryfikować, czy ta płytka ma sterownik VGA, czy nie (jest to niejasno napisane w opcjach), to byłaby najlepsza opcja. To na tyle jeśli chodzi o tą płytkę Anlogic FPGA (z pewnością będę jeszcze do niej wracał z bardziej złożonymi programami - na razie wykonałem pierwszy krok). Największą trudnością dotyczącą tej płytki jest dokumentacja w większości dostępna tylko w języku chińskim. BTW: W Banggood.com pojawiła się tania wersja modułu RISC-V (dual-core) z modułem akceleratora dla AI firmy Sipeed, o której wcześniej pisał Elvis. Jest to właściwie sam procesor a nie cała þłytka uruchomieniowa, ale cena wynosi tylko 54 PLN (na dzień dzisiejszy). Tutaj jest link: https://www.banggood.com/Sipeed-Maix-1-RISC-V-Dual-Core-64bit-With-FPU-AI-Module-Development-Board-Mini-PC-p-1409994.html?rmmds=detail-left-hotproducts__4&cur_warehouse=CN Pozdrawiam Cześć, teraz, gdy mam działający programator JTAG dla RISC-V to może uda mi się uruchomić "Briey SoC" na FPGA ze Spartan6 (MIMAS V2), a przynajmniej będę próbował. A tutaj znalazłem kod w Verilogu z implementacją wyjścia VGA dla "Lichee Tang Anlogic" board: https://github.com/piotr-go/Lichee-Tang/blob/master/VGA/src/vga.v A tutaj dużo przydatnych linków: https://github.com/Lichee-Pi Pozdrawiam
  24. Cześć, działa ale tylko wersja 32-bitowa (instalowane są obie 32 i 64 bity) wersja 64-bitowa nie działa prawidłowo. Dużo lepiej działa pod Linuxem. Pozdrawiam
  25. FlyingDutch

    DCE Q816 procesor w FPGA

    Cześć, nie zauważyłem, że masz te rozkazy z nimi to jest pełnoprawny procesor Jest jeszcze tylko jedno pytanie - przeważnie operacje arytmetyczne ustawiają dwie flagi procesora: ZERO (ostatnia operacja arytmetyczna spowodowała wyzerowanie akumulatora) i CURRY (w operacji arytmetycznej wystąpiło przepełnienie arytmetyczne). Ułatwia to pisanie operacji arytmetycznych na długich liczbach. Przeważnie z tymi flagami są skojarzone dwie instrukcje skoków warunkowych: JumpIfZero i JumpIfCurry co ułatwia pisanie programów z użyciem operacji arytmetycznych na długich liczbach. Być może masz to już obsłużone, jeśli nie to nie jest to krytyka tylko temat do przemyślenia, czy może warto to brać pod uwagę przy rozbudowie projektu. Pozdrawiam
×