logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Oprogramowanie drivera LED RGB MBI6030

seradam 27 Gru 2011 22:14 1378 2
  • #1 10311341
    seradam
    Poziom 17  
    Witam. Kilka dni temu zabrałem się za sterownik 24 lampek z diodą led RGB.
    Wpadłem na pomysł wykorzystania dedykowanych układów MBI6030.
    Na początek podłączyłem płytkę z czterema takimi układami do Atmegi 168 i robiłem testy.
    Komunikacja po SPI.
    Z pewnych względów pisałem w Bascomie. Niby wszystko banalne. Trzeba wysłać ciąg konfiguracyjny i do każdego układu trzy liczby dwu bajtowe.
    W moim przypadku 24 lampki daje 6 bajtów rozbiegowych i 144 bajty danych.
    I pojawiły się problemy. O ile jedną lampką udało mi się poprawnie sterować, to większą ilością już nie zawsze.(chociaż nieraz dawało radę)
    Zmieniałem wszystko co mi przyszło do głowy. Tzn spi sprzętowy i programowy , różne szybkości i różne metody wysyłania. Zabrałem się również za zasilanie dołożyłem kondensatorów i zmieniałem zasilacze. Teraz zmieniłem na Atmega 128, bo taki mam i zastanawiam się nad tym jak Bascom wysyła dane po spi.
    Czy jak zrobię wysyłanie tablicy na zasadzie pętli będzie się ta transmisja odbywała bez przerwy? Czy muszę z tablicy zrobić jedną liczbę i wysłać takiego tasiemca? Czy ktoś z Was robił coś na tych układach?
    Moje podejrzenia to zasilanie z zasilaczy impulsowych i zakłócenia.
    Źle napisana komunikacja tzn jakieś przerwy w transmisji.
  • #2 10311824
    MirekCz
    Poziom 35  
    Korzystałem z podobnych sterowników TI...:

    1. Przy takiej ilości led zasilanie jest bardzo ważne. Zacznij od ustawiania minimalnych wartości jasności (albo jak ten układ ma ograniczenie prądowe ustawiane na rezystorze to daj rezystory ograniczające prąd LED do kilku mA). W ten sposób bez zmieniania płytki wyeliminujesz ew. wpływ zakłóceń (oczywiście o banałach typu kondensatory 100nF jak najbliżej każdego układu scalonego nawet nie piszę)

    2.W nocie są rezystory/diody na liniach danych. Masz je? (TI tego nie wymagał...)

    3.Jak nie jesteś pewien SPI to rób to programowo - pewniejsze ;) Prędkość może nie mieć znaczenia, bo problem może występować pomiędzy układami MBI6030, a one zmieniają piny SPI ze swoją, dużą, prędkością.

    4.Jak masz pętlę i pobierasz kolejne dane z tablicy to jest ok. Nie musisz robić tasiemca (nawet nie wiem jak widzisz coś takiego).

    5.Kondensatory kondensatorami, ale pamiętaj o krótkich i grubych kablach zasilających i odpowiednio szerokich/grubych (np. zalanych cyną) ścieżkach zasilania i masy. Nie wiem ile Twoje ledy mają, ale jak 100mA to potrzebujesz 2400mA a to już nie jest mały prąd i przy cienkich i długich przewodach zasilających możesz mieć stratę np. 1V ;)
  • #3 10312561
    seradam
    Poziom 17  
    For A = 1 To 6
    Spiout Rozbieg(a) , 1
    Next A                                                      'dane konfiguracyjne do ukladu
    For A = 1 To 3
    Spiout Dane(a) , 2
    Next A

    Tak wysyłam dla jednego układu i wszystko śmiga.
    Dim Rozbieg(6) As Byte
    Dim Dane(72) As Word
    
    Rozbieg(1) = 248
    Rozbieg(2) = 0
    Rozbieg(3) = 0
    Rozbieg(4) = 0
    Rozbieg(5) = 0
    Rozbieg(6) = 0


    Jeżeli zmienię na większą ilość Rozbieg(4)=23 to pierwsza już nie działa poprawnie. Może tu coś pierniczę. Chociaż analizowałem konfigurację wielokrotnie.
REKLAMA