Elektroda.pl
Elektroda.pl
X
Mitronik
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

WS2812 na choince w przerwaniach od USART - AVR Mega

18 Gru 2017 21:09 4365 25
  • Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • Mitronik
  • #2 19 Gru 2017 11:49
    maviozo
    Poziom 8  

    Czy coś jest nie tak z odtwarzaczem, czy filmem, bo mam stopklatkę? Pobrane mp4 się rusza, ale na stronie jest tylko dźwięk. Sprawdzone w chrome i firefox.
    Co do projektu, to ja jakoś nie mogę w ogóle skumać, co ten kod robi, ale mało się znam :)

  • #3 19 Gru 2017 12:00
    22053
    Użytkownik usunął konto  
  • #6 21 Gru 2017 01:20
    mongoł2000
    Poziom 18  

    Ja tylko chciałbym dodać, że zamiennikiem bramki aby dostosować napięcie do WSów są dwa rezystory :) Jeden podciągający i jeden na wyjściu do WSa. Tanie i proste :)
    Potrzebowałem super małego i taniego rozwiązania więc pobawiłem się i wybrałem takie rezystory, że sygnał jest możliwie najlepszy. Dla 512 diod nie było żadnych przekłamań. Warunkiem jest oczywiście posiadanie wyjściu open-drain i akceptacja 5V na pinie. Do tego nawet w przypadku zwarcia pinu sterującego do +5 lub GND podczas pracy, pin sterujący jest bezpieczny (dzięki rezystorowi na wyjściu nie sa przekraczane prady max dla pinu).

    No a sterowanie mam na 800khz o ile pamiętam, w pełni sprzętowe.

    Taka ciekawostka.

  • Mitronik
  • #7 21 Gru 2017 01:46
    22053
    Użytkownik usunął konto  
  • #8 21 Gru 2017 02:10
    mongoł2000
    Poziom 18  

    Nigdy nie korzystałem z USARTa do WS2812, ale jak mówisz, ze negacja musi być to niech będzie i tu rezystory nie pomogą. Zawsze działałem albo na SPI albo I2S i nigdy negacja nie była potrzebna. W przypadku STM można o ile wiem w niektórych logikę na wyjściu. Tu jest tylko AVR, więc może nic się nie da zrobić.

    Cytat:
    A ja mam w pełni programowe?


    Jeśli kolega przygotowuje wcześniej dane pod protokół WS2812, to nie jest to w pełni sprzętowe. U mnie wrzucam 255, 255, 255 do SPI i reszta robi się sama bez użycia procesora. To jest w pełni sprzętowe.

    W jednym przypadku miałem kabel ekranowany 1.2m.

    Oczywiście, że kabel słabej jakości i do tego długi będzie powodował problemy. Wszystko zależy od konkretnej aplikacji. Rezystory 1k podciągający i na wyjściu 220R do sterowania (obecnie mam podciągniete do linii 4.1V - na 5 też było ok, a pin bangla od 0-3.3V).

  • #9 21 Gru 2017 08:50
    22053
    Użytkownik usunął konto  
  • #10 21 Gru 2017 09:22
    mongoł2000
    Poziom 18  

    Cytat:
    Ile wyprowadzeń uC trzeba poświęcić na tyransmisję z użyciem SPI czy I2C a ile z USART?


    Napisałem I2S (w niektórych mcu większa możliwość zmiany zegara). Minimalnie 1 wyprowadzenie, bo przecież można włączyć tylko jeden pin z SPI/I2S. W pełni sprzętowym rozwiązaniu kolegi PiotrGo to wymaga około 5 albo 6 pinów, ale niesamowicie się przydaje, jeśli na MCU mamy np. smoothing, wireless czy inne algorytmy.
    Nawet jeśli USART wymaga odwracania to w nowych mikrokontrolerach jest zmiana polaryzacji wyjścia.

    Cytat:
    Naturalnie w AVRmega/tiny

    Co naturalnie??

    Cytat:
    Pytanie czy warto sie w to bawić? Zewrzyj pojedyncze wyprowadzenie uC czy jakiegoś innego układu C-MOS (np 74HCxx) z masa lub zasilaniem na dzień czy dwa i co uszkodzi sie? Nie będę pisał tu referatów na ten temat, dlaczego nie. Już kiedyś to wyjaśniałem, dlatego zabezpieczenie wyjścia rezystorami przed zwarciem z masą lub zasilaniem to zbędne elementy, które w tym przypadku wprowadzają zniekształcenia sygnału przy długich przewodach:


    Gdzie kolega ma swoje referaty, bo chętnie poczytam :) Przecież zwarcie działającego wyjścia do do GND lub + uszkodzi z czasem takie działające wyjście :)
    Niech kolega sobie wyobrazi że wyjście ma akurat stan niski, a my go zwieramy do +5V. Pin uszkodzony. Wydajność prądowa pinów jest ograniczona i należy go zabezpieczać. Czasem też daje się rezystory na wejścia, ze względu na ESD.

  • #11 21 Gru 2017 09:37
    22053
    Użytkownik usunął konto  
  • #12 21 Gru 2017 10:41
    mongoł2000
    Poziom 18  

    Cytat:
    W jakim uC można wyłączyć SCL czy CLK w I2C lub SPI?

    W każdym z STMx miałem taką możliwość.

    Cytat:
    W pełni sprzętowe sterowanie WS2812 osiągnął kolega po SPi w AVR.

    Jak? Link? Samo SPI nie potrafi raczej przygotować ramek pod WSy.

    Nie będę szukał kolegi rozważań, bo są z góry skazane na niepowodzenie i ogólnie to piaskownica jest :) Oczywiście, że się uszkodzi taki nawet pojedyńczy pin...nie ma to znaczenia. Mam kilka takich na biurku, więc można i wystarczy często jedno zwarcie i pin uwalony.

  • #13 21 Gru 2017 11:52
    22053
    Użytkownik usunął konto  
  • #14 21 Gru 2017 12:59
    mongoł2000
    Poziom 18  

    Cytat:
    W pełni sprzętowe sterowanie WS2812 osiągnął kolega po SPi w AVR.

    Jak? Link? Samo SPI nie potrafi raczej przygotować ramek pod WSy.

    To ja się pytam jak? Nie ja napisałem:


    Zdanie kolegi jest twierdzące, że ktoś zrobił sterowanie WS po SPI na AVR w pełni sprzętowo.
    Ja wykorzystuję kawał dobrej roboty kolegi Piotr_go : https://www.elektroda.pl/rtvforum/topic3280019.html

    Co do zwarć na wyjściu - nawet przekaźnik ma ograniczenie prądowe, więc pin z MCU nie może być jak "ze stali". W żadnej konstrukcji nie można przekraczać wartości max dla pinów..oczywiście jak przekroczymy o te 10-20%, albo nawet więcej w piku, to może przeżyje..ale na pewno nie jest jak kolega napisał.

  • #15 21 Gru 2017 13:44
    22053
    Użytkownik usunął konto  
  • #17 23 Gru 2017 17:47
    22053
    Użytkownik usunął konto  
  • #18 29 Gru 2017 22:39
    es2
    Poziom 16  

    Jakieś foto PCB, schemat?

    Z jaka częstotliwością musi pracować AVR aby uzyskać przepływność 2.4Mb/s (800kb/s * 3 = 2,4Mb/s)?
    Dla Double Speed mode (U2Xn = 1):
    BAUD = fosc/8*(UBRR+1)
    gdy Fosc 16MHz UBRR=1 to:
    16e6/(8*(1+1)) = 1'000'000
    czyli dużo za mało. Dopiero dla Fosc 39MHz uzyskamy 2,437500Mb/s a tyle to nawet Xmega nie pociągnie.

  • #19 30 Gru 2017 17:59
    tmf
    Moderator Mikrokontrolery Projektowanie

    @es2 BAUD może być równy 0, wtedy taktowanie USART wyniesie Fclk/8=2 MHz, autor użył zegara 18,4321, co daje nam baudrate 2,3 Mbps, czyli po podzieleniu przez 3 ok. 768 kbps, czyli w zakresie tolerancji dla WS2812B.

  • #20 06 Sty 2018 21:06
    22053
    Użytkownik usunął konto  
  • #21 06 Sty 2018 21:34
    tmf
    Moderator Mikrokontrolery Projektowanie

    Nie mogę odtworzyć filmików - widzę tylko stopklatkę. Jaką kompresję zastosowałeś? Może wrzuć w h.264 i powinno działać, przynajmniej mnie na elektrodzie filmy z tą kompresją chodzą bez problemu.
    Wrzucisz kod generujący te efekty?

  • #22 06 Sty 2018 21:47
    22053
    Użytkownik usunął konto  
  • #23 06 Sty 2018 22:08
    tmf
    Moderator Mikrokontrolery Projektowanie

    Ładne efekty. Może w domu na choince by mnie na dłuższą metę te dwa ostatnie wkurzały, ale na zewnątrz byłoby ok. Musze się kiedyś wziąć za budowę takiego sterownika do realizacji efektów, na razie mam to tylko na jakiejś płytce prototypowej. Plan jest taki, żeby móc przez telefon wybierać efekty z bazy efektów, ustawiać ich kolejność i czas trwania, po czym przesłać do MCU, który by to zrealizował. Ale przez rok nie miałem czasu się tym zająć, kto wie, może na następne święta.
    BTW, czym zasilasz te diody? Ja mam w łańcuchu 600 sztuk, docelowo będzie 4xtyle, a już te 600 bierze w porywach 180 W. Niestety zasilacze IP68 jakie widziałem nie mają takiej mocy, a doraźnie zasilam je z przerobionego zasilacza do PC, ale nie podoba mi się to rozwiązanie.

  • #24 06 Sty 2018 22:56
    22053
    Użytkownik usunął konto  
  • #25 06 Sty 2018 23:21
    tmf
    Moderator Mikrokontrolery Projektowanie

    Oczywiście klasyczne AVR nie, od dawna z AVR używam wyłącznie XMEGA, innych się po prostu nie opłaca. Nic, kiedyś się za ten projekt wezmę.

  • #26 09 Sty 2018 14:44
    BlueDraco
    Specjalista - Mikrokontrolery

    Coś takiego na STM32 popełniłem ponad 2 lata temu. Na choince mam 576 szt. (4 metry) WS2812B z czterema spokojnymi animacjami do wyboru, pędzone po SPI. Sterownik co roku improwizowany od nowa z jakiegoś Nucleo lub Discovery z F4 lub L4. Dodatkowo druga taśma 60 LED w oknie z innym sterownikiem z F030 Discovery.