Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki

Hydepark działu mikrokontrolerów

dondu 02 Mar 2017 16:00
  • #332 02 Mar 2017 16:50
    tmf
    Moderator Mikrokontrolery Projektowanie

    @michalko12 Zauważ, że raz, że ruch nie jest jakiś porywający, dwa, że jest dużo tematów z pogranicza. IMHO lepiej jeśli to jest subforum. Od Gulsona wiemy, że planowane jest wprowadzenie personalizacji i już wkrótce będziesz sobie mógł zaznaczyć co chcesz widzieć, a co nie. Mam nadzieję, że to rozwiąże problem. Wyrzucisz sobie forum Arduino i będziesz mógł zapomnieć, że ono istnieje :)

  • #333 02 Mar 2017 16:59
    michalko12
    Specjalista - Mikrokontrolery

    Ankietę poproszę.

  • #334 02 Mar 2017 21:32
    Piotrus_999
    Poziom 39  

    I tak połowa postów jest związania bym powiedział z programowaniem ogólnie, a nie mikrokontrolerami. Już tak biorąc fundamentalnie wszystkie posty związane z debouncingiem, if-ami, warunkami logicznymi, błedami w programach - o ile nie dotycza konkretnie np. skonfigurowania DMA powinny trafiać do innego działu.

    Dlatego zgadzam się z dondu że granica jest tak miękka, że trudno byłoby opracować ścisłe reguły klasyfikacji postów.

  • #335 10 Mar 2017 00:13
    R-MIK
    Poziom 35  

    Może nie jest to rewelacja ale używając spi marnujemy 2 wyprowadzenia (SCK i MISO). Używając uarta zużywamy tylko linię TxD. Jeśli weźmiemy pod uwagę fakt, że obsługa led jest zrealizowana na IRQ to robi sie ciekawiej. Dodając do tego fakt, że pomiędzy IRQ (bez optymalizacji) procek wykonuje 18 rozkazów a wszystkie inne przerwania muszą być nie blokowalne (INTERRUPT a nie SIGNAL), to jak na IRQ obsłużyć transmisje DMX, która dość mocno obciąża procesor i wymaga przerwań nie blokowalnych? Da się. Sposoby są dwa.

    Filmiki kiepskie bo taka kamerka a komp nie bardzo radzi sobie z przechwytem.

  • #336 10 Mar 2017 00:32
    grko
    Poziom 31  

    No dobrze, ale jaki jest problem? Bo tak mniej więcej działa to podforum, że ludzie przychodzą z problemem a reszta stara się odpowiadać. No chyba, że to jest temat z cyklu "patrzcie co udało mi się zrobić". Jeżeli tak, to podziel się chociaż kodem.

  • #337 10 Mar 2017 00:39
    R-MIK
    Poziom 35  

    Nie ten dział. Miało być w DIY. Napiszę do moda o przeniesienie.

    Moderowany przez dondu:

    Artykuł został przesunięty przez któregoś z moderatorów, ponieważ nie spełniał wymogów działu DIY.
    Ponieważ nie udostępniasz kodów i żadnych innych materiałów, to by nie wywalić go do kosza łączę z Hydeparkiem.

  • #338 10 Mar 2017 08:37
    BlueDraco
    Specjalista - Mikrokontrolery

    Teraz jeszcze dorzuć odbiór poleceń z PC przez UART na przerwaniach i dorzuć animację z symulacją ruchu jednostajnie przyspieszonego, jakieś 50 ramek na sekundę, załóżmy że dla 288 diod.
    Nie da się? No to weź najtańszego Cortexa M0 dowolnego producenta i już się da, za 2..4 zł, , bez kombinowania i liczenia taktów zegara co do jednego.

  • #339 10 Mar 2017 08:45
    R-MIK
    Poziom 35  

    BlueDraco napisał:
    Teraz jeszcze dorzuć odbiór poleceń z PC przez UART na przerwaniach i dorzuć animację z symulacją ruchu jednostajnie przyspieszonego, jakieś 50 ramek na sekundę, załóżmy że dla 288 diod.
    Nie da się? No to weź najtańszego Cortexa M0 dowolnego producenta i już się da, za 2..4 zł, , bez kombinowania i liczenia taktów zegara co do jednego.

    Jak znam życie to 2..4 zł to teoretycznie bo przy zakupie 1000szt i pewnie i tak wyjdzie 10zł.
    Proszę o praktyczny przykład opisanego rozwiązania z Cortex'em.
    Nie liczyłem cykli co do jednego, nie robiłem wstawek ASM, choć zyskałbym 7 taktów cpu.

    Jeśli to co zrobiłem nie jest niczym nadzwyczajnym to proszę osiągnąć wymaganą przepływność danych na uart w AVRmega/tiny przy max 20MHz.

  • #340 10 Mar 2017 08:57
    grko
    Poziom 31  

    R-MIK napisał:


    Jeśli to co zrobiłem nie jest niczym nadzwyczajnym to proszę osiągnąć wymaganą przepływność danych na uart w AVRmega/tiny przy max 20MHz.


    Znowu się zaczyna... Tak ja już pisałem, Twój temat tutaj nie pasuje. Nie pasuje również do działu DIY, który oznacza w skrócie zrób to sam. Nie da się tego zrobić samemu bo sie niczym nie podzieliłeś. Na githubie jak wpiszesz WS2812 to dostaniesz setki projektów od AVR do różnych ARMów obsługiwane na różne sposoby.

  • #341 10 Mar 2017 09:53
    R-MIK
    Poziom 35  

    Nie mogę zgłosić do moda o przeniesienie bo jest zgłoszony przez kogoś innego. Pozostaje czekać.

    Ponadto nikogo nie zmuszam to pisania w tym poście zwłaszcza tego, że zły procek wybrałem bo do przetaktowania nie można się przyczepić. A jeśli wybrałem zły mikrokontroler, to proszę to wykazać a nie pisać, że jak damy mu jeszcze do zrobienia (i tu długa lista) to sie nie wyrobi a inny by sie wyrobił.
    Założenia spełnia? Tak!
    Coś niegodne ze specyfikacją? Nie!
    Co jeszcze nie pasuje?

    Rzeczowo proszę, bo jak nie to ja też zacznę oceniać projekty kolegi i narzekać, że gdyby jeszcze miał krawaty wiązać to tego nie zrobi.

  • #342 10 Mar 2017 10:10
    grko
    Poziom 31  

    R-MIK napisał:

    Co jeszcze nie pasuje?

    Rzeczowo proszę, bo jak nie to ja też zacznę oceniać projekty kolegi i narzekać, że gdyby jeszcze miał krawaty wiązać to tego nie zrobi.


    Nie pasuje to, że nie wrzuciłeś ani jednego kawałka kodu. Powiedz mi jak to miałoby kwalifikować się do DIY? Napisałeś tylko magiczne:

    R-MIK napisał:

    Da się. Sposoby są dwa.


    Więc jeśli od nas wymagasz konkretów to sam coś zaprezentuj bo na chwilę obecną to nie ma tutaj żadnego punktu zaczepienia. Moje projekty możesz sobie oceniać. Linki w stopce.

  • #343 10 Mar 2017 10:25
    R-MIK
    Poziom 35  

    grko napisał:

    Nie pasuje to, że nie wrzuciłeś ani jednego kawałka kodu.

    Wielokrotnie w DIY nie udostępnia sie kodów, bardzo często do projektów w rodzaju miganie diodą. Dlaczego więc ja miałbym udostępnić kody?
    Mając doświadczenia z pomocą na forach rozumuję tak:
    Gdy potrzebuję pomocy, najczęściej jestem tylko naprowadzany na trop i pewnie tak by było gdybym otworzył temat sterowanie WS2812 z DMX na AVR. Mogę więc naprowadzić. Do odczytu danych z DMX użyłem timera bo takie przerwania mogą być INTERRUPT. Drugie rozwiązanie, łatwiejsze, to użycie zewnętrznego uarta z FIFO. Nie nadaje sie tu uart po IIC bo AVR sprzętowo obsługuje max 400kHz a przynajmniej tak wynika z AN. Trzeba użyć SPI ale i tu, aby nie wchodzić w przerwanie co 44us trzeba inteligentnie odczytywać FIFO z zewnętrznego uarta.
    Co do WS2812 to tryb transmisji uaert 7-bit, jak sie okazało jest znany, ale działa w Xmega. W AVR uart nie może pracować (a przynajmniej tak by się wydawało) z taka prędkością aby obsługiwać ledy. Jak ktoś gdzieś wyliczył potrzebna jest przepływność 2,5Mb/s. Mnie się udało ledy obsłużyć uartem na AVR taktowanym 16MHz (tiny/mega) bo na Xmega 32 MHz to nie sztuka.

    No a fakt, nie nadaje sia do DIY bo:
    - nie ma kodów, źródłowych, to nie ważne, że inni nia dają ja mam obowiązek udostępnić,
    - nie było takiego projektu na Elektorodzie na AVRtiny/mega i nie jest innowacyjny, gdybym zrobił na Xmega, ARM to ok, to juz było więc jest innowacja,
    - nie złożyłem tego z kitu i nie wstawiłem do pudełka po butach, takie projekty jak najbardziej nadają się na DIY, ale jeśli zrobiło sie samemu to już się nie nadaje.

    Teraz kupię złożony kit/moduł, podłączę zasilacz, wstawię w ładne pudełko i zabłysnę na Elektrodzie :-)

  • #344 12 Mar 2017 01:08
    R-MIK
    Poziom 35  

    60 led, 6 warstw, 10 obiektów (różne prędkości i kierunki) na Atmega164. Ram (1kB) zajęty w 90%, FLASH 2,4kB.

    Podmieniłem film na nagrany telefonem, jakość zdecydowanie lepsza.

  • #345 12 Mar 2017 01:34
    Piotrus_999
    Poziom 39  

    już chyba gorszej jakości nie mogłeś zamieścić - nic nie widać.

  • #346 12 Mar 2017 05:19
    R-MIK
    Poziom 35  

    Takie są kamerki internetowe, a aparat fotograficzny mam 160km od aktualnego miejsca pobytu. Dołączam oscylogramy transmisji do WS2812 i odbioru DMX512.
    Hydepark działu mikrokontrolerówprobkowani...rq LED.gif Download (68.5 kB) Hydepark działu mikrokontrolerówprobkowani...D ZOOM.gif Download (57.56 kB)
    Wyjaśnienia:
    Przerwania od usart nie mogą byc typu interrupt więc ustawiłem timer aby sprawdzał co 33us uarta DMX. Żółty kanał to transmisja do led. Błękitny IRQ od TX uarta led. Fiolet - bajty przychodzące po DMX. Niebieski próbkowanie timerem uarta DMX. Oczywiście przerwania od timera interrupt, więc transmisja do led może je przerwać.

    Poniższy oscylogram:
    Hydepark działu mikrokontrolerówMAIN na tl... i LED.gif Download (58.89 kB)

    niebieski (ostatni przebieg) to pętla main o budowie:
    LOOP:
    WDG_RESET
    SET PORT
    RESET PORT
    JMP LOOP
    Używam tej pętli do testu obciążenia cpu. Normalnie wykonywane sa w niej animacje ledów. No właśnie z tak oszałamiającą szybkością? Po 12 czasem 2 rozkazy pomiędzy IRQ? Program główny rozwija skrzydła w dwu przypadkach:
    1 - pomiędzy transmisjami led dałem sobie 50ms przerwy
    2 - DMX ma stosunkowo długi break.

  • #347 15 Mar 2017 19:10
    R-MIK
    Poziom 35  

    Nagrania z korektą Gamma i bez.