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

Komunikacja DALI - urządzenie master

kamil12239 07 Lis 2018 16:55 273 19
  • #1 07 Lis 2018 16:55
    kamil12239
    Poziom 16  

    Szanowni Państwo,

    Jestem w fazie testów nad urządzeniem które redukuje moc oprawy led. Komunikacja ma odbywać się za pośrednictwem DALI. Tutaj mam problem ponieważ nie mogę się skomunikować z urządzeniem (zasilaczem LED z interfejsem DALI) tzn nie mogę przesłać mu komendy. Układ wykonałem bazując się na układzie poniżej:

    Komunikacja DALI - urządzenie master

    Tutaj przedstawiam mój układ. Całość zasilam z transformatora, po czym poprzez stabilizator liniowy zmniejszam napięcie do 5V na attiny85. Interfejs Dali zasilam za mostkiem transformatora i kondensator filtrujący.

    Komunikacja DALI - urządzenie master

    Podglądając pod oscyloskopem przebiegi wszytko wygląda tak (chyba dobrze):
    Komunikacja DALI - urządzenie master

    Wyjścia Dali daję na wejścia zasilacza LCM-25DA firmy Mean Well. Zrobiłem wspólną masę dali i mikrokontrolera. Nie mam zadnego zasilacza na interfejsie zasilanie chcę dać z mojego urządzenia. Co może być przyczyną tego że zasilacz nie startuje?
    Komendy wysyłam tak:
    ADRESS: 0000 0001,
    KOMMAND: 0000 0101 czyli komenda RECALL_MAX

    Próbowałem też z Adresem: 1000 0001.
    Czy wysyłam coś źle jaki jest poprawny adres jeżeli mam jedno urządzenie?

    0 19
  • #2 07 Lis 2018 19:17
    adversus
    Poziom 25  

    Witaj,
    Jak dobrze widzę na pierwszym obrazku masz interfejs sprzętowy Dali i masz tam TX i RX,
    w Twoim układzie masz tylko TX, nie jestem do końca przekonany czy protokół transmisji nie wymaga jakiegoś potwierdzenia wysyłania komendy. Ogólnie Dali jest trochę popierdzielone, bo z mojego doświadczenia producenci nie zawsze sztywno się trzymają standardu Dali (mam chińskie moduły gdzie niektóre komendy muszą być wysłane kilka razy w krótkim czasie w odpowiedniej sekwencji aby sterownik je poprawnie odebrał. Kolejna sprawa to rozumiem że Twój układ z procesorkiem koduje komendy do kodu Menchester (fizyczna strona protokołu jest właśnie oparta na kodowaniu Menchester). Ogólnie mam trochę doświadczenia z Dali, więc może mi się uda Tobie pomóc. Pozdrawiam.

    Wydaje mi się że Dali wystarczą 2 żyły ze skrętki (mam tak zrobione większość instalacji właśnie na skrętce i bez masy). Wg Twojego schematu powinieneś jeszcze mieć mostek prostowniczy, bo teraz ważna jest polaryzacja co może też powodować układ że nie działa (czyli dodać mostek i połączenie bez masy).

    Kolejna sprawa, trzeba przypisać sterownik Master odpowiednią komendą do tego zasilacza, czyli bez RX nie zadziała bo urządzenia muszą się zgadać...
    W jednej nitce Dali może być ponad 64 urządzeń ale adresów max 64, Slave (czyli zasilacz musi być zaadresowany) i pod konkretny adres dopiero wysyłasz komendę...

    0
  • #3 07 Lis 2018 19:26
    kamil12239
    Poziom 16  

    Potrzebuje tylko wysyłać komendy. Gdzieś czytałem że komendy typu: włacz na maksa, na min, wyłącz, zmniejsz moc itp nie wymagają zwrotnej ramki. Sa to komendy od nr 0-8 i na tych mi tylko zależy.
    Dlatego układ zwrotny pominąłem i zrobiłem tylko TX. Tak mój procesor koduje Manchester widać z resztą na zrzucie osycloskopu jaki zamieściłem. Nie wiem czy dobrze typuje ale ja mam chyba coś z zasilaniem układu. W testach w kodzie wysyłam komende co 50ms przez czas 10 s (RECALL_MAX) pozniej przez 10s co 50ms OFF. Nie wiem też czy ramka łapie się na odpowiednie odstępy czasowe. Niby na oscyloskopie jest ze 500us co jest za duzo ale nie mam pewności dlatego pisze.
    Tutaj mam jak gość zrobił na arduino:

    Link

    0
  • Pomocny post
    #4 07 Lis 2018 19:35
    adversus
    Poziom 25  

    W jakimś temacie zamieściłem PDF'a z Dali (komendy i sposób transmisji)... wejdź tu i masz w plikach opisane co i jak z dali https://www.elektroda.pl/rtvforum/viewtopic.php?p=7625193#7625193

    Wiem że są rozkazy które nie potrzebują adresacji, ale masz w Dali grupy (16) i max 64 adresy, do tego nie mam pewności do do Twojego układu, jak napisałem podłacz bez masy i daj mostek jak na pierwszym schemacie, wtedy nie ma znaczenia polaryzacja... Zasilacz musi miec tez ustawiony jakis adres aby w ogóle coś łapał...

    Kolejna sprawa aby zasilacz działał musi mieć ustawiony adres, te zasilacze nie mają panelu więc adresacji możesz dokonać tylko ze sterownika (mam obawy czy niezaadresowany zasilacz zadziała), ja używam między innymi takich sterowników, i na nich można też ręcznie zmienić adres...
    Komunikacja DALI - urządzenie master

    0
  • Pomocny post
    #5 07 Lis 2018 19:37
    tos18
    Poziom 37  

    kamil12239 napisał:
    Czy wysyłam coś źle jaki jest poprawny adres jeżeli mam jedno urządzenie?

    A wprogramowałeś czymś w zasilacz adres ? Jeśli masz możliwość to podłącz zasilacz do działającego systemu dali i przypisz mu adres. Albo strzelaj adresami (1-64). Choć wydaje mi się że krótki adres jest ustalany dopiero po podłączeniu urządzenia do magistrali.

    0
  • Pomocny post
    #6 07 Lis 2018 19:41
    adversus
    Poziom 25  

    Tak, czytaj mój post wyżej... Ja w systemie mam sterownik dali którym pierw "sczytuje co mam na linii i on automatycznie przypisuje adresy". Mogę też adresy przypisać "ręcznie" do urządzeń.

    Ale na początku bym obstawiał ten brak mostka...

    Mam zestaw do testów ale na pewno dziś nie ma szans na zabawę z tym... Jestem w stanie to sprawdzić koło weekendu...

    Kolejna sprawa że można zresetować ustawienia urządzeń dali (czyli reset ustawień do fabrycznych bez adresu) i wtedy jest tak że bez wstępnej konfiguracji na pewno nie działa mi żaden sterownik z magistrali.

    0
  • #7 07 Lis 2018 19:45
    kamil12239
    Poziom 16  

    Niestety nie mam w pobliżu żadnego systemu z DALI. Zasilacz kupiłem na tme nie wiedziałem że on musi mieć przypisany jakiś adres. Myślałem że jak wyśle odpowiednią komende z adresem to ruszy. Czyli podsumowując muszę wiedzieć jaki ma adres moj zasilacz? On moze mieć jakiś adres od 1 do 64 czyli teoretycznie mogę trafić? Czy mogę poprzez moje urządzenie nadać mu jakiś adres? Ewentualnie jak nie pojdzie to postaram się kupić zasilacz SR_2303B

    0
  • Pomocny post
    #8 07 Lis 2018 19:51
    adversus
    Poziom 25  

    W necie widziałem schemat konwertera opartego na tym pierwszym schemacie jaki załączyłeś i chyba na FTDI (FT232) do tego jakiś feewarowy program do komunikacji Dali i można by potestować taki zasilacz.

    Rozwiązaniem jest też sterownik Dali Master który pozwoli Tobie zaprogramować zasilacz.

    0
  • #10 08 Lis 2018 09:56
    adversus
    Poziom 25  

    tos18 napisał:
    do testów na stole używam tego:
    https://www.helvar.com/en/products/DIGIDIM-Toolbox/


    I za ile ta przyjemność, jeśli to nie tajemnica? A jeśli tajemnica to kolega napiszę na PW ile za to ? Bo software można ściągnąć jak widać ale konwerter pewnie tani nie jest.

    Tabela rozkazów jakie/które wymagają tylko wysłania, odczytu lub jednego i drugiego
    Komunikacja DALI - urządzenie master


    Tu troche o pętli masy w Dali i troche o protokole, interfejsie...
    https://www.elektroda.pl/rtvforum/topic3286475.html

    Znalazłem na necie takie coś, co potwierdz chyba że sterownik musi odpowiedzieć (potwierdzić rozkaz)


    Message Structure
    Transmission to Interface
    This is the message to be transmitted to the DALI system or to configure the interface.
    The normal message type is 3 bytes; 4 or 5 bytes for special types.
    Length byte: this defines the number of bytes to FOLLOW.
    Message type: refer to following description.
    DALI data byte(s): 2 bytes to the DALI protocol: 1st byte is address and 2nd is
    command or data.
    Return from Interface
    This is the message from the DALI system, or acknowledgement from the interface.
    The message can be 2, 3 or 4 bytes in size.
    Length byte: this defines the number of bytes to follow.
    Message type: defines reply status and if there is data to follow (refer to table in
    section 8.3 Message List).


    Dodano po 13 [godziny] 39 [minuty]:

    Cytując jeszcze notę Dali za Philipsem

    DALI technical characteristics (1)
    Numbers of units max.64
    Numbers of addresses64
    Signal level+/-16V
    Cable length max.300m, and less than 2V voltage drop
    Cable typeany 2 wire unshielded cable
    Cable topologyany (line, star, tree, ring)
    Refresh ratemax 40 messages / second +/-1200 baud
    SafetyDALI is not SELV, cable must be treated like mains wiring


    DALI technical characteristics (2)
    DALI system contains one current source, a controller and input(s)
    In idle state the current signal is “high”so there is current
    A driver input current is 2mA in idle state
    Nominal current for 64 inputs is 128mA
    Information is transferred by short circuiting the current, (controller / input) Communication is always started by the controller. An input can only “answer” (=back channel info)
    Random addressing is possible
    DALI units have usually no address from factory. Any address can be changed via the DALI connection
    There is only DALI communication when needed
    An input can detect if the DALI current is present


    Tu jest link do projektu sterowniczka Dali na Arduino, jest on na tyle ciekawy że jest biblioteka Dali na Arduino, do tego schemat i pokazane na filmikach jak programuje balast po czym nim steruje właśnie przez Arduino
    https://www.hackster.io/NabiyevTR/simple-dali-controller-506e44

    Dodano po 5 [minuty]:

    Nota opisująca charakterystykę protokołu Dali

    0
  • #11 08 Lis 2018 09:59
    adversus
    Poziom 25  

    A tu ciekawy sterownik Dali na motorili 68hc08, co ciekawe jest tu w miarę dokładny opis standardu, protokołu, komend oraz schematy interfejsów oraz kod programu do procka.

    0
  • #13 08 Lis 2018 15:43
    kamil12239
    Poziom 16  

    Czyli w moim układzie jest dobrze zastosowane zasilanie na linie Dali czy nie bo już sie pogubiłem. Czy linia DALI może mieć wspólną masę z procesorem? Czy raczej musi być osobno?

    0
  • #14 08 Lis 2018 16:09
    adversus
    Poziom 25  

    Powinieneś mieć mostek i z mostka 2 żyły na balast (na ten Twój zasilacz)... tak ja schemacie poniżej, zasilanie lini dali przed mostkiem ze źródła prądowego 125 mA
    i nie łącz masy procesora z masą zasilania z Dali bo wtedy transoptor nie ma sensu.
    Komunikacja DALI - urządzenie master

    0
  • #15 08 Lis 2018 17:36
    kamil12239
    Poziom 16  

    To jak mam zasilić wtedy linie dali? Ja chce to zrobić z trafo co jest na schemacie, a jak nie połączę to nie będzie zasilania DALI. Nie chce stosować zasilacza dali tylko zasilić z tego trafo czyli urządzenie i zasilacz w jednym.

    0
  • #16 08 Lis 2018 17:54
    adversus
    Poziom 25  

    W takim przypadku możesz połączyć masę procka z masą Dali, ale transoptor jest bez sensu, z tym że nie przeszkadza, i nie dawaj wtedy mostka prostowniczego, bo jest nie potrzebny. W balaście (zasilaczu dali) do którego się podłączasz sygnałem Dali wejście nie ma znaczenia polaryzacja (każdy układ mający wbudowane dali ma na wejściu mostek prostowniczy) więc jak bys nie podłączył to powinno działać. Ale Pamiętaj że nie masz przypisanego adresu do balastu a jesli jest to go teoretycznie nie znasz... wiec nie wiadomo jakie komendy będą działać.

    Masz może jakieś Arduino u siebie na stanie ? W necie jest prosty sterownik (link podałem chyba wcześniej) gdzie prosto się łączy Arduino z balastem, a po rs'ie możesz wysyłać komendy do balastu i je odbierać, wtedy masz kontrolę nad tym czy działa bo balast powinien niektóre potwierdzać a będziesz to miał ładnie w konsoli RS.

    0
  • #17 08 Lis 2018 17:56
    kamil12239
    Poziom 16  

    A jak bym wpisał adres broadcast ? To powinno zaświecić wszystkimi urządzeniami bez wyjątku jaki ma adres?

    0
  • #18 08 Lis 2018 18:00
    adversus
    Poziom 25  

    kamil12239 napisał:
    A jak bym wpisał adres broadcast ? To powinno zaświecić wszystkimi urządzeniami bez wyjątku jaki ma adres?


    Jak pisałem nie jestem pewien, pamiętam tylko że jak zaczynałem z Dali i nie miałem ustawionych adresów w balastach to mi nic nie działało... Nie miałem żadnych instrukcji i sie namęczyłęm niemiłosiernie.

    Tu masz linka do sterowniczka Dali na Arduino, i jak widać bez transoptorów a komunikacja dwukierunkowa:)
    https://www.hackster.io/NabiyevTR/simple-dali-controller-506e44

    0
  • Pomocny post
    #19 08 Lis 2018 18:05
    tos18
    Poziom 37  

    Urządzenie może nie mieć przypisanej grupy ale krótki adres mieć musi. Inaczej jest bezużyteczne w obrębie magistrali.

    Więc może zacznij od funkcji wyszukiwania urządzeń i przypisywania krótkich adresów na podstawie adresów sprzętowych(długich)

    0
  • #20 08 Lis 2018 18:15
    adversus
    Poziom 25  

    tos18 napisał:
    Urządzenie może nie mieć przypisanej grupy ale krótki adres mieć musi. Inaczej jest bezużyteczne w obrębie magistrali.

    Więc może zacznij od funkcji wyszukiwania urządzeń i przypisywania krótkich adresów na podstawie adresów sprzętowych(długich)


    Aby to zrobić, tzn wyszukać urządzenia (przypisać adresy) musi być komunikacja dwukierunkowa, czego autor nie ma w swoim układzie, więc od tego by zaczęło zacząć. Bardzo łatwo to zrobić z Arduino, link wyżej .

    0
  Szukaj w 5mln produktów