Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 23 cze 2017, o 14:53


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 152 ]  Przejdź na stronę Poprzednia strona  1, 2, 3, 4, 5, 6  Następna strona
Autor Wiadomość
PostNapisane: 13 maja 2017, o 01:21 
Offline
Użytkownik

Dołączył(a): 15 lut 2017
Posty: 59
Pomógł: 4

No to Panie i Panowie patrzcie:
Najpierw fragment kodu, niepełny ale wszystko jasne, chyba :)
Specjalnie dałem LEDS_CNT na 60, bo to nie ma znaczenia jaki bufor, tylko kiedy wrzucimy reset
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wysyłam 5 wagoników 24 bit, pomiędzy wagonikami jest 6, 8 lub 18 us i więcej.

Robię próby, zwiększam czas.
Dla 5us super wszystko działa
Dla 6us oo co to raz jedna, raz dwie raz 5 diod się zapala:
Dla 8us jak myślicie? Ooops tylko jedna dioda się zapaliła, dlaczego? Odpowiedź jest oczywista.
Reset magistrali nastąpił, ale dlaczego po 8 us, który fragment noty coś wskazuje o czasach rzedu 7-8 us

A teraz najciekawsze, inna listwa diodowa i co do 36 us wszystko działa, 5 diod zapalonych po każdym resecie.
Jak to miało nie być przerw między wagonikami? Ale żeby aż tak długa przerwa?
Dopiero przy 40 raz 3, raz dwie, raz 5 zapalonych diod.
Gdy włączam 54us to tylko jedna się zapala. Co mamy no przecież reset, bo co innego
Druga listwa jakby lepiej działała, a nawet super, w stosunku do noty, bo faktycznie "50 above" mamy gwarancję działania w kilkunastu próbach.
To dlaczego inne diody już głupieją przy 6us a przy 8 jest reset?
Jak pisałem na początku problem jest z notą albo z samymi układami, a całość to wielki babol :)

Ostatecznie przed sobą, na pewno, udowodniłem, że czas 50 above to zmyła, a nowa nota, pożal się boże, reset magistrali 300us.
Strach kupować te diody, jeśli jest takie wsparcie :)


PS
Wszystkie miały być WS2812B.
Kolegów Jarka i kijas1 nie chciałem urazić, przepraszam jeśli tak wyszło. To była zwykła ciekawość, a nie wycieczka osobista :).
Czasami dobrze wiedzieć, szczególnie przez internet, Kto jest po drugiej stronie.
Nie ma nic gorszego jak polemika teoretyka z praktykiem :)
Mamy mocno rozbieżne zdanie na ten temat, ot co :)

ObrazekObrazekObrazek
ObrazekObrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 06:58 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 46
Pomógł: 1

mirekk36 napisał(a):
A ciebie to męczy? mnie nie - bo dyskusja może być ostra, żywa byleby kulturalna - a zawsze coś przyniesie. Co do dyskusji że z ARM a jeszcze z DMA nie będzie dużych różnic czy przerw to myślisz że trzeba kogoś przekonywać ? ;)

Chciałem przekonać osobę która napisała to:
mirekk36 napisał(a):
Pomiędzy BAJTAMI ZAWSZE będzie jakiś czas zwłoki - nie ważne jaki będziesz miał sterownik ;)
.
Jeśli dyskusja mam być dalej prowadzona to proszę nie robić Mirku przytyków o nieznajomości cyfrówki jarkowi i mi, oraz o nie zrozumieniu tematu resetu, bo obydwaj jesteśmy co do tego zgodni, że w Twojej wersji programu ma to ogromne znaczenie, a dyskusja idzie o to czy Twoja wersja programu jest zgodna z notą, według nas nie, bo wydłużasz sobie czasy stanu zero, co nota ma wyraźnie określone.
Zealota napisał(a):
Kolegów Jarka i kijas1 nie chciałem urazić, przepraszam jeśli tak wyszło.
Nie ma problemu.
Zealota zrobiłeś doświadczenie z czasami, i udowodniłeś tym, że jednak coś jest nie tak z kodem, bo wystawiając czas 50 us coś nie działa. Jednak zamiast szukać gdzie problem, stwierdziłeś, że nota ma babola. Mnie Mirek zachęca do tego bym zrobił sobie takie samo doświadczenie(którego wyniki przecież znam i rozumiem, ale nie szukam problemu w nocie tylko w kodzie), więc jako praktykowi proponuje byś zrobił to samo doświadczenie, ale dla implementacji która nadaje jednym ciągiem i mieści się w wystawianiu kolejnych bitów w podanych czasach. Czyli robimy tak
1. Nadajemy jednym ciągiem dane które mają być wysłane,bez wagoników i przerw pomiędzy nimi(z rygorami czasowymi podanymi w nocie!!!).
2. Robimy reset 6us
3.Powtarzamy pkt.1
4. Robimy reset 30 us
5. Powtarzamy pkt. 1
6. Robimy reset 50us
7. Powtarzamy pkt.1
8. Robimy reset 300us.
Zobaczysz wtedy, że transmisja nie siada po resetach większych niż 50us, tak jak to się dzieje u Mirka. Jeśli już będziesz miał to przetestowane, to stwierdzisz, że nota jest ok, a babol był w kodzie , bo niezgodnie z nią wydłużałem stan zero!!!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 09:36 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 20994
Lokalizacja: Szczecin
Pomógł: 765

kijas1 napisał(a):
1. Nadajemy jednym ciągiem dane które mają być wysłane,bez wagoników i przerw pomiędzy nimi(z rygorami czasowymi podanymi w nocie!!!).
2. Robimy reset 6us
3.Powtarzamy pkt.1
4. Robimy reset 30 us


Toż wyżej kolega Zealota pokazał ci już DOBITNIE screeny z analizatora logicznego. Więc posłużę się już jego screenshotem:

Obrazek

na którym widać jak BYK że nawet bez przerw pomiędzy każdymi trzema bajtami danych do jednej diody (czyli widać ładnie 24 lecące bity) bez przerwy żadnej pomiędzy nimi, bo się uczepiłeś jak nie powiem co i do czego - do tego mojego przypadku akurat z poradnika, gdzie wyjaśniam, że to nie ma znaczenia - ale to samo zjawisko występuje nawet gdy ciurkiem wysyłam dane z bufora RAM - tyle że tego nie pokazywałem akurat. Nie ważne - masz jak na patelni na tym screenie pokazane 24 bity ciurkiem, i przerwę na magistrali ok 8us i co? I jak opisuje kolega Zealota następują RESETY w diodach i wciąż świeci jedna (ta pierwsza)


kijas1 napisał(a):
więc jako praktykowi proponuje byś zrobił to samo doświadczenie, ale dla implementacji która nadaje jednym ciągiem i mieści się w wystawianiu kolejnych bitów w podanych czasach


no to masz kolega Zealota zrobił, pokazał ... może czas żebyś teraz TY zrobił, pokazał i ew wyciągnął wnioski


kijas1 napisał(a):
2. Robimy reset 6us

Ustalmy bo może cię źle rozumiem, ale powiedz mi co ty masz na myśli pod tym pojęciem ? czy to co widać na screenshocie wyżej, gdy kolega Zealota czeka nawet ok 8us nie 6us i już widzi, że RESET nastąpił.

Tylko że ty jakby wciąż powtarzasz, że ROBIMY reset, a ja albo Zealota powtarzamy - że to nie my robimy RESET, tylko że RESET następuje samoczynnie w diodach, przez co już po 8us bezczynności na magistrali, kolejna paczka zostaje pobierana wciąż przez pierwszą diodę w łańcuchu i żadne informacje nie docierają do kolejnych diod z wyjścia tej pierwszej. No bo ona wciąż ma RESET po 8us

być może tu jest coś czego nie rozumiesz ?

Twoje kolejne określenie:
kijas1 napisał(a):
Zobaczysz wtedy, że transmisja nie siada po resetach większych niż 50us,

Jeszcze bardziej przekonuje mnie, że nie wiesz co oznacza RESET na magistrali niestety :( .... Chyba że jak mówię, dla ciebie określenie

ROBIMY RESET oznacza, że czekamy X us i na magistrali w tym czasie jest stan niski - tylko opisujesz to jakoś dziwnie? może - nie wiem - postaraj się tu odpowiedzieć merytorycznie bo ja tylko spokojnie pytam i żadnych wycieczek nie robię.

------------------------ [ Dodano po: 2 minutach ]

Oderwij się więc na chwilę od słowa BABOL w NOCIE, zapomnij chociaż na chwilę, że ja o tym mówiłem i spróbuj to co widzisz na screenshotach przeanalizować , odpowiedz na moje pytanie wyżej i co jeszcze ważniejsze - zrób w końcu sam ten test na swoim procku ARM wtedy już w ogóle nie będziesz miał wątpliwości o jakichś odstępach pomiędzy wagonikami.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 09:57 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 46
Pomógł: 1

mirekk36 napisał(a):
ROBIMY RESET oznacza, że czekamy X us i na magistrali w tym czasie jest stan niski - tylko opisujesz to jakoś dziwnie

Dokładnie o tym mówię, czas który podaje nota jest czasem który my wystawiamy, a nie czasem który mamy dla siebie. Powiedz mi proszę ile według Ciebie wynosi czas stanu niskiego podczas nadawania i dlaczego uparcie twierdzisz, że możemy go sobie wydłużyć? Tylko jedno proste pytanie, a my już jedziemy z tematem przez 3 strony. Jeśli będziemy przestrzegać czasów z noty, nikt nie będzie miał wątpliwości kiedy zakończyło się nadawanie. Wtedy wystawienie czasu 50 us na diode nie bedzie z niczym kolidowało,a bedzie zgodne z tym czego chce producent.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 10:46 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 20994
Lokalizacja: Szczecin
Pomógł: 765

kijas1 napisał(a):
Dokładnie o tym mówię, czas który podaje nota jest czasem który my wystawiamy, a nie czasem który mamy dla siebie.


No to wiemy gdzie pies jest pogrzebany, czyli co? jeśli zdecyduję się wysłać dane z jakichś względów nie ważne jakich, np po 8us od ostatniej paczki 24bitów, nadawanych bez żadnej przerwy pomiędzy bajtami, to ? ....

no ty kompletnie nie rozumiesz jak działa ta elektronika w tych diodach ... teraz już wiem dlaczego masz problemy z ogarnięciem tematu a szczególnie tego co to jest ten RESET, albo co to są warunki brzegowe jeśli chodzi o czasy w notach scalaków ;) Tak czułem przez skórę że para kolegów czyli kijas1 i jark ma jednak ogromny problem ze zrozumieniem co oznacza RESET. Wydaje im się, że to działa jak w mikrokontrolerze, tylko że producent napisał, że muszą podać ten stan niski na więcej niż 50us to wtedy diody się "magicznie" zresetują ;) Stąd te wcześniejsze opowieści o jakimś rzekomym wydumanym braku czasu na przeładowanie buforów itp itd - no teraz się wszystko ukazało jak na dłoni. Tylko jak mówię dziwi ten mega OPÓR czy opór jeśli chodzi o próbę zrozumienia.

Ale spokojnie świat się od tego nie zawali że nie znasz się na tym jak to działa w środku - toż nie każdy musi się na wszystkim znać. Masz swój sterownik, umiesz się tym posługiwać przez pryzmat programowania, sam nie jesteś praktykiem w ogóle w tej kwestii więc no cóż. Dlatego tylko pisałem wcześniej, że siedziałbyś i nie wiedział jak to zrobić przy takim procku jak ATtiny10 szczególnie gdy dla ciebie RESET oznacza, że to TY RESETUJESZ diody MAGIC LED ;) zresztą widać, że podobnego babola w rozumowaniu wręcz identycznego robi kolega jark. I Panowie - nie piszę tego żeby wam dogryźć - albo jakieś przytyki osobiste czy coś. Poważnie dacie radę nauczyć się jak działa ta elektronika w diodach a w zasadzie jak działa scalak WS2811, bo przykro mi ale nie macie pojęcia na czym polega zresetowanie magistrali w tym łańcuchu scalaków.

Qurczę a TYLE czasu ciągnąłem za język żeby jeden z dwóch kolegów odpowiedział co znaczy RESET .... opierali się jak mogli ale w końcu się udało dzięki czemu przynajmniej wiem dlaczego nie rozumieją zagadnienia. Nie wiem tylko dlaczego nie chcą zrozumieć.

Dobra ja do kolegi więcej nie mam pytań i wiem że przy tym poziomie wiedzy na temat działania scalaka WS2811 który tak na prawdę siedzi w środku, nie dotrę już ;) może ktoś inny podejmie rękawicę .... Tyle że kolega kijas1 będzie musiał niestety co nieco sobie poczytać.... inaczej ciężko będzie.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 10:54 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 46
Pomógł: 1

Dalej nie uzyskałem odpowiedzi ile według Ciebie trwa stan niski?
Cytuj:
No to wiemy gdzie pies jest pogrzebany, czyli co? jeśli zdecyduję się wysłać dane z jakichś względów nie ważne jakich, np po 8us od ostatniej paczki 24bitów, nadawanych bez żadnej przerwy pomiędzy bajtami, to ? ....

A przeanalizuj notę czy Ci na to pozwala, skoro koniec transmisji jest tam jasno określony czasem trwania stanu niskiego, którego nie chcesz mi podać!!!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 11:10 
Offline
Użytkownik

Dołączył(a): 15 lut 2017
Posty: 59
Pomógł: 4

kijas1 napisał(a):
Zealota zrobiłeś doświadczenie z czasami, i udowodniłeś tym, że jednak coś jest nie tak z kodem, bo wystawiając czas 50 us coś nie działa.

Z tym nie mogę się zgodzić, bo moje wnioski są zupełnie inne, co po kolei spróbuję wykazać
kijas1 napisał(a):
Jednak zamiast szukać gdzie problem, stwierdziłeś, że nota ma babola. Mnie Mirek zachęca do tego bym zrobił sobie takie samo doświadczenie(którego wyniki przecież znam i rozumiem, ale nie szukam problemu w nocie tylko w kodzie), więc jako praktykowi proponuje byś zrobił to samo doświadczenie, ale dla implementacji, która nadaje jednym ciągiem i mieści się w wystawianiu kolejnych bitów w podanych czasach.

Dokładnie tak zrobiłem, z tym, że ja podaję ciąg dla 5 diod, steruję czasem pomiędzy wagonikami, w celach testowych, a zarazem PACZKAMI, tylko 24 sygnały logiczne to też PACZKA, choć to tylko jeden wagonik. Zgadza się?

Przy danych dla większej ilości diod niż jedna, dane mogą lecieć ciurkiem lub z przerwami nie większymi niż 5us pomiędzy wagonikami
To testy moje wykazały. Ja opierając się na nocie oczekuję, że odany przez użytkownika czas stanu niskiego TYLKO większy niż 50us zresetuje magistralę.
Wy Koledzy, nadal nie wiem czemu, upieracie się, że dopuszczalny jest czas 6, 7 czy 20us.

kijas1 napisał(a):
Czyli robimy tak
1. Nadajemy jednym ciągiem dane które mają być wysłane,bez wagoników i przerw pomiędzy nimi(z rygorami czasowymi podanymi w nocie!!!).

Przecież dokładnie tak robiłem. Dla 5 diod
Sterownik działa poprawnie, gdy
- pomiędzy paczkami jest co najwyżej 5us (zapala się 5 diod, za każdym razem)
- działa niepoprawnie, gdy jest ok 6-7 (zapalają się losowe diody)
- działa niepoprawnie, gdy jest od 8 do 50 - zapala się jedna dioda, w takim wypadku sterownik się resetuje, a nie powinien, bo nota pisze o 50 i więcej.
- działa poprawnie gdy > 50, zapala się jedna dioda, czas podanego resetu jest zgodny z notą. Dla każdego czasu większego niż ten, też zapala się jedna dioda.

Inaczej, podając paczkę 5 wagoników steruję przerwą między nimi. 5 diod powinno się zapalić, gdy czas między wagonikami jest większy od 50us.
Niestety, co jest niezgodne z notą, gdy czas między wagonikami jest już większy niż ok 6us, diody już się resetują

kijas1 napisał(a):
Zobaczysz wtedy, że transmisja nie siada po resetach większych niż 50us,

Ja nigdy nic takiego nie twierdziłem. JA twierdzę, że transmisja siada, gdy czasy ZADANIA resetu są <50us i to dużo mniejsze, a nota mówi że mam podawać impuls resetu >50 us.
Tutaj mam wrażenie, że gadamy o czym innym, Ty o swoim i ja o swoim :)


kijas1 napisał(a):
2. Robimy reset 6us
3.Powtarzamy pkt.1
4. Robimy reset 30 us
5. Powtarzamy pkt. 1
6. Robimy reset 50us
7. Powtarzamy pkt.1
8. Robimy reset 300us.
Zobaczysz wtedy, że transmisja nie siada po resetach większych niż 50us, tak jak to się dzieje u Mirka. Jeśli już będziesz miał to przetestowane, to stwierdzisz, że nota jest ok, a babol był w kodzie , bo niezgodnie z nią wydłużałem stan zero!!!


Chyba nie oglądałeś w ogóle tych moich wykresów z analizatora.
U mnie czasy stanu zero i jeden są w okolicy 1.2 us, tego akurat nie widać, ale tak jest
Oczywiście zrobiłem testy dla stanów zero oraz jeden przy 2 i 3 us, wszystko działo poprawnie, w tym aspekcie, bo jak Mirek pokazywał w poradniku i na jednej ze stron, znaczenie ma tylko stan "wysoki", a niski mozemy sobie wydłużać ile chcemy. Dlatego zapis noty +-300 również wprowadza w błąd lub jak kto woli jest bardziej reżimowy.
Nota wprowadza warunek, a sterownik ten warunek ignoruje i robi swoje, a użytkownik się cieszy :)

Podsumowując, wg mnie największym problemem interpretacyjnym w tym gronie jest to, przy jakim CZASIE SYGNAŁU RESETUJĄCEGO powinna się transmisja zresetować, a przy jakim czasie powinna przepuszczać wagoniki dalej.
Wykres z noty sugerujący, że wagoniki MUSZĄ lecieć ciurkiem jest błędny, bo logicznie kłóci się z założeniem >50us no i praktyką.
Zresztą rysunek ten i inne aspekty noty, jak już wykazałem, to robota na kolanie, a my tu musimy później polemizować :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 11:14 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 46
Pomógł: 1

Wykresy jak najbardziej w porządku, ale może mi kolega odpowie ile trwa stan niski podczas nadawania, później odpowiem dlaczego jest to tak ważny parametr, i jego przekroczenie powoduje niejasności. I problemem nie jest reset, bo ile ma trwać na lini jest podane, a że dioda robi sobie reset prędzej nic nie zmienia przy nadawaniu zgodnie z notą.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 11:15 
Offline
Użytkownik

Dołączył(a): 15 lut 2017
Posty: 59
Pomógł: 4

kijas1 napisał(a):
Dalej nie uzyskałem odpowiedzi ile według Ciebie trwa stan niski?
Cytuj:
No to wiemy gdzie pies jest pogrzebany, czyli co? jeśli zdecyduję się wysłać dane z jakichś względów nie ważne jakich, np po 8us od ostatniej paczki 24bitów, nadawanych bez żadnej przerwy pomiędzy bajtami, to ? ....

A przeanalizuj notę czy Ci na to pozwala, skoro koniec transmisji jest tam jasno określony czasem trwania stanu niskiego, którego nie chcesz mi podać!!!

Ależ ten czas tam jest podany: jest to czas większy niż 50us, ale nie zgadza się z tym jak działają te sterowniki, bo one resetują transmisję po 6us
No chyba, ze znowu o czym innym gadamy...

------------------------ [ Dodano po: 13 minutach ]

kijas1 napisał(a):
Wykresy jak najbardziej w porządku, ale może mi kolega odpowie ile trwa stan niski podczas nadawania, później odpowiem dlaczego jest to tak ważny parametr, i jego przekroczenie powoduje niejasności. I problemem nie jest reset, bo ile ma trwać na lini jest podane, a że dioda robi sobie reset prędzej nic nie zmienia przy nadawaniu zgodnie z notą.


Powyższe testy robiłem dla prawidłowej ramki 1.2us i dla teoretycznie nieprawidłowych, bo o wiele dłuższym stanie niskim.
Za każdym razem ciąg diod zachowywał się tak samo. Również reakcja na czas sygnału resetującego (od 5us i więcej, bo ponad 50us) następował w tych samych miejscach - inaczej linijka diodowa zachowywała się tak samo.
Odpowiadając na pytanie: moje podstawowe testy to 1.2us dla bitu danych

Bawiac się trochę w domysły, bo chyba teraz mi się przejaśnia :),
Długość impulsu zero lub jeden nie ma kompletnie wpływu na potrzebny czas stanu niskiego w celu zresetowania magistrali
Inaczej: nie jest tak, że zwiększając impulsy zera lub jeden zmniejsza mi się czas resetu aż do 6us.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 11:32 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 46
Pomógł: 1

Podany tam czas jest czasem jaki my wystawiamy na diodę, a że dioda robi sobie reset prędzej, takie jej prawo, ważniejsze jest by nie robiła go później, bo możemy minąć się z czasem. Drugim ważnym parametrem o który toczy się bój jest czas trwania stanu niskiego podczas nadawania. Jest on podany w najbardziej krytycznym momencie jako 0,6 us +- 150. Po tym czasie jest już koniec nadawania, bo nigdzie w nocie nie ma wzmianki o tym, że możemy stan niski przedłużać. To ten czas determinuje koniec nadawania, a nie sygnał reset. Mam nadzieje, że jasno się wyraziłem. Sygnał reset jest dla diody, a nie dla nas, żebyśmy mogli sobie znowu coś dosłać, bo przekroczyliśmy czas trwania stanu niskiego.
Proszę na razie nie mieszać tego co wychodzi z pomiarów z tym co podaje nota. Później do tego dojdziemy. W nocie kolega ma konkretne wartości, dla konkretnych stanów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 11:39 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 20994
Lokalizacja: Szczecin
Pomógł: 765

Zealota napisał(a):
No chyba, ze znowu o czym innym gadamy...


Czy nie widzisz, że kolega kijas1 nie rozumie co oznacza RESET magistrali ? Przecież stąd bierze się jego problem.

On wciąż twierdzi że to użytkownik RESETUJE magistralę (diody) poprzez wystawienie stanu niskiego na magistralę przez 50us ;)

Nie rozumie, że to DIODY mają elektronikę i sprzętowy TIMEOUT, który wykrywa brak zmian na magistrali. Że ten TIMEOUT jest wciąż resetowany gdy tylko pojawiają się zmiany (więc dla niego nie do pojęcia jest że mogą być jakieś przerwy między bajtami) ... Nie rozumie, że w końcu gdy TIMEOUT dojdzie do końca to wykona wewnętrzny RESET logiki, która spowoduje, że kolejne pojawiające się dane na magistrali zaczną być od nowa przyjmowane przez diodę (3 bajty )

------------------------ [ Dodano po: 1 minucie ]

kijas1 napisał(a):
Podany tam czas jest czasem jaki my wystawiamy na diodę, a że dioda robi sobie reset prędzej, takie jej prawo,


to już jest "odjazd" ;) .... a wynika jak pisałem wyżej z nieznajomości elektroniki scalaka w tym zakresie. "Dzięki" temu i postawie godnej podziwu - czyli upór żeby się czegoś nowego dowiedzieć, owocuje, że niczego innego nie czyta, nie zajrzał ani do linka który podawałem.

A nie tylko ja odniosłem wrażenie, że po wykresach i próbach kolegi wyżej, NAWET nie spojrzał na te wykresy.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 11:43 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 46
Pomógł: 1

Mirku miałeś sobie odpuścić, ja postaram się koledze Zealota przedstawić mój punkt widzenia, i razem z nim dojść do tego jak to nadawanie powinno wyglądać według noty.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 11:47 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 20994
Lokalizacja: Szczecin
Pomógł: 765

kijas1 napisał(a):
Mirku miałeś sobie odpuścić, ja postaram się koledze Zealota przedstawić mój punkt widzenia,


Ale ja rozumiem, że masz taki punkt widzenia - i wyjaśniłem ci dlaczego tak masz i czego nie wiesz. Może warto jednak abyś w końcu pochylił się i postarał nie wiem podyskutować o tym

JAK DZIAŁA MECHANIZM RESETU w Ws2811, co oznaczają w notach warunki brzegowe jeśli chodzi o czasówkę, bo widać gołym okiem, że unikasz tych tematów jak ognia. Wcześniej zadałem ci też 3 pytania na które w ogóle nie odpowiedziałeś. A myślę, że gdybyś chociaż spróbował o tym podyskutować to gwarantuję ci, że na przyszłość byś się czegoś nauczył.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 11:53 
Offline
Użytkownik

Dołączył(a): 15 lut 2017
Posty: 59
Pomógł: 4

kijas1 napisał(a):
Podany tam czas jest czasem jaki my wystawiamy na diodę, a że dioda robi sobie reset prędzej, takie jej prawo, ważniejsze jest by nie robiła go później, bo możemy minąć się z czasem.

Po stokroć nieprawda :)
kijas1 napisał(a):
Drugim ważnym parametrem o który toczy się bój jest czas trwania stanu niskiego podczas nadawania. Jest on podany w najbardziej krytycznym momencie jako 0,6 us +- 150.

U mnie stan niski trwa ok 700 ns, to że Mirek robił eksperymenty z dłuższymi czasami to jest tu nie ważne.
To nie ten stan resetuje magistrale.

kijas1 napisał(a):
Po tym czasie jest już koniec nadawania, bo nigdzie w nocie nie ma wzmianki o tym, że możemy stan niski przedłużać.
To ten czas determinuje koniec nadawania, a nie sygnał reset. Mam nadzieje, że jasno się wyraziłem. Sygnał reset jest dla diody, a nie dla nas, żebyśmy mogli sobie znowu coś dosłać, bo przekroczyliśmy czas trwania stanu niskiego.
Proszę na razie nie mieszać tego co wychodzi z pomiarów z tym co podaje nota. Później do tego dojdziemy.


Nieprawda. Magistralę resetuje stan (lub brak aktywności TIMEOUT, jak Mirek pisze) o wiele dłuższy.
Jak wykazałem nawet 5us + ew. ok 700ns, jeszcze nie resetuje. Już 6us resetuje, a powinien 50us, wg noty oczywiście :)

kijas1 napisał(a):
Sygnał reset jest dla diody, a nie dla nas, żebyśmy mogli sobie znowu coś dosłać, bo przekroczyliśmy czas trwania stanu niskiego.

No to jest oczywistość, żeby uściślić my musimy tylko ustawić stan niski na naszym sterowniku (pinie) i przez jakiś czas nic nie robić z tym pinem
Wg noty musimy nie robić aż conajmniej 50 us, żeby zresetować magistralę.
Niestety sterownik ma ustawiony TIMEOUT na 6us i to jest ta wielka niezgodność



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 12:18 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 46
Pomógł: 1

Jeśli kolega implementuje jakiś nowy protokół to robi to z notą, czy najpierw robi fizyczne pomiary co jak działa. Jeśli kolega bierze notę , to proszę wyniki pomiarów zostawić w spokoju. W nocie jest podane 5 czasów.
1. Czasy jakie mają trwać przy nadawaniu stanu wysokiego oraz niskiego dla nadania 0
2. Czasy jakie mają trwać przy nadawaniu stanu wysokiego oraz niskiego dla nadania 1.
3. Czas jaki należy wystawić na magistrale celem pozwolenia diodzie dokonania wewnątrz resetu(nie jest to czas po którym dioda się resetuje, tylko czas jaki my mamy wystawić).

Nota nie wspomina o żadnych innych czasach, a już na pewno nie o czasie wydłużania stanu niskiego.
Nadawanie powinno w takim razie mieć następujący przebieg, aby być zgodne z notą.
załóżmy, że nadajemy 98 jedynek, czyli robimy coś takiego na wejściu diody:
98*(T1H + T1L) po czym po ostatnim stanie niskim który wynosi tutaj 0,6 us, uznajemy, że mamy koniec nadawania , bo nota nić nie wspomina o przedłużaniu tego czasu, ale wspomina o tym żeby na końcu transmisji był podany stan niski przynajmniej przez 50 us, wiec go dajemy.
Jeśli kolega twierdzi, że taki sposób nadawania nie zadziała, ze względu np. na jakieś niuanse sprzętu, to kończę tą dyskusje i przepraszam, za zabranie czasu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 12:45 
Offline
Użytkownik

Dołączył(a): 15 lut 2017
Posty: 59
Pomógł: 4

kijas1 napisał(a):
98*(T1H + T1L) po czym po ostatnim stanie niskim który wynosi tutaj 0,6 us, uznajemy, że mamy koniec nadawania , bo nota nić nie wspomina o przedłużaniu tego czasu, ale wspomina o tym żeby na końcu transmisji był podany stan niski przynajmniej przez 50 us, wiec go dajemy..

Mam tutaj zupełnie inny pogląd i chyba nic już z tym nie zrobimy.

Do resetowania (zakończenia nadawania) jest ten czas >50 us, jeśli tego nie zrobisz, jedynki i zera nadal będą podawane do następnej diody.
Taka jest jedyna właściwa interpretacja noty. Mniejsze czasy TIMOUTY w sterowniku resetujące magistralę są niezgodne, na pewno z tą interpretacją, ja twierdzę, że również z notą

Stan niski 600ns (ja mam 700n, ale nie czytałeś tego co napisałem wyżej, na pewno nie z próbą zrozumienia) nie zakańcza transmisji, nawet gdy podamy mu jeszcze 5us stanu niskiego.
Wewnętrzny licznik diody tym się zajmuje, wg noty brak zmiany stanu na magistrali powyżej 50us może zrestartować magistralę.

Inaczej pisząc sterownik był projektowany na to, że reset nastąpi gdy licznik wykryje TIMOUT po 50us (z projektu wyszła pewnie ta nota z błędem), niestety diody mają zaprogramowany TIMOUT na poziomie 6us, co niestety musieliśmy wykryć doświadczalnie.
Nie da się tu oddzielić tych eksperymentów od noty.

kijas1 napisał(a):
bo nota nić nie wspomina o przedłużaniu tego czasu,

Wspomina wspomina, nawet na wykresie w nocie jest "przerwa" podpisana >50us, a ta przerwa moze tylko przedłużyć stan ostatniego zera lub jedynki i tylko ta przerwa powinna zresetować magistralę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 12:49 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 20994
Lokalizacja: Szczecin
Pomógł: 765

kijas1 napisał(a):
bo nota nić nie wspomina o przedłużaniu tego czasu, ale wspomina o tym żeby na końcu transmisji był podany stan niski przynajmniej przez 50 us, wiec go dajemy.

Masakra ;)

Chłopie weź np sobie taką notę PDF (prosta nota jak drut):
http://www.tme.eu/pl/Document/09fe96c7f ... 6C1008.pdf

Pamięć SRAM równoległa z czasem dostępu 55ns .... i teraz powiedz mi czy można ją odczytywać "wolniej" z czasem dostępu np 20us ? Czy nie ? Czy wg ciebie nota "mówi" tobie, że aby wszystko było POPRAWNE to ty będziesz ją odczytywał z czasem 55ns bo jeśli ja mówię o 20us to znaczy, że naginam czas i działam niezgodnie z notą ? ;)

Obrazek

Obrazek

A jeśli stwierdzisz, że MOŻNA tę pamięć odczytywać z czasami dużo dłuższymi niż 55ns to pokaż mi gdzie to jest napisane w nocie. Może takim pytaniem i przykładem - coś do ciebie w końcu dotrze. Tylko musisz się postarać, chcieć po prostu się czegoś nowego może dla ciebie nauczyć.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 12:52 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 46
Pomógł: 1

Może przemyslał by Pan co napisałem i czy taki sposób działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 13:06 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 20994
Lokalizacja: Szczecin
Pomógł: 765

kijas1 napisał(a):
Może przemyslał by Pan co napisałem i czy taki sposób działa.


Posłuchaj bo uciekasz od zagadnień elektroniki i wycofujesz się rakiem a po co ? ;)

Podpowiem ci, sposób podany przez ciebie OCZYWIŚCIE że będzie działać ;) ale ty nie rozumiesz aż dwóch rzeczy:

1. Jak działa reset magistrali dla WS2811

2. Kompletnie nie umiesz czytać tzw "czasówek" w notach.

Więc dla wyjaśnienia - bo pewnie sam sobie nie poradzisz z tą notą pamięci równoległej RAM - 55ns to warunki brzegowe, maksymalne do osiągnięcia, jakie zapewnia producent. Podobnie jak producent WS2812 zapewnia, że wysyłając bajty do Magic LEDów bez żadnych przerw gdy okres jednego bitu = 1,25us to osiągniemy MAX producenta czyli 800kHz i BRAWO. Tak samo z tą pamięcią SRAM - maksymalnie odczytasz ją z prędkością 55ns (mówiąc już w uproszczeniu i nie wchodząc w inne czasy w tej nocie bo pewnie tematyka ta jest ci mniej albo w ogóle nie znana) Ale producent noty nie będzie pisał beletrystyki czyli tego że użytkownik może zastosować praktycznie dowolnie WIĘKSZE czasy ;) np 20us albo i 100ms jakby się ktoś uparł .... Toż sygnalizowałem ci to już i starałem się wyjaśnić ale ty

(użyję teraz tutaj twojego języka) ....OLEWASZ wszystko co się do ciebie mówi i stara się tobie to przekazać. Ok ja może nie docieram bo podałem naraz w poradniku sporo różnych zależności ...

no ale kolega Zealota, QURCZĘ pewnie dla siebie też, ale przede wszystkim dla ciebie - pięknie wyłuskał problem sprowadzając to do pięknego prostego przykładu i jeszcze dał screenshoty z analizatora , do tego wyjaśnienia - a ty co? no olewasz

Tylko dlatego mówiłem że mając takie podejście nie dałbyś rady poradzić sobie z omawianymi tu problemami i nie pisałem tego złośliwie czy żeby wycieczki robić albo cię obrazić - ale żeby zwrócić twoją uwagę na to czego nie rozumiesz

Ty jednak z uporem godnym szczególnego podziwu .... masz wszystko gdzieś - szczególnie też zamykasz się na to aby się czegoś nowego nauczyć. I ja rozumiem, że może masz nawet problem ze zrozumieniem opisów po angielsku z tego linku co podałem i tych oscylogramów które tam gościu pokazał a również doszedł do tych samych wniosków (chociaż tamten oscylogram trzeba przyznać jest kiepskiej jakości) ... to jednak ja podjąłem próbę wyjaśnienia po polsku, kolega Zealota poświęcił również mnóstwo czasu - a ty wciąż jak słup soli i swoją niestety bzdurną mantrę powtarzasz

"jak zrobię zgodnie z notą to działa", "jak zrobię zgodnie z notą to działa", "jak zrobię zgodnie z notą to działa", "jak zrobię zgodnie z notą to działa",

a do tego wymyślasz farmazonki o których już pisałem wyżej.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 13:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 195
Pomógł: 13

"załóżmy, że nadajemy 98 jedynek, czyli robimy coś takiego na wejściu diody:
98*(T1H + T1L) po czym po ostatnim stanie niskim który wynosi tutaj 0,6 us, uznajemy, że mamy koniec nadawania , bo nota nić nie wspomina o przedłużaniu tego czasu, ale wspomina o tym żeby na końcu transmisji był podany stan niski przynajmniej przez 50 us, wiec go dajemy."
Każdy bit kończy się stanem niskim(T1L) i jeśli nie nastąpi T1H istnieje stan niski na DI - wybacz, nic nie trzeba dodawać, bo nawet Ty nie zastawisz czasu. Czas sobie płynie i tak.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 13:18 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 20994
Lokalizacja: Szczecin
Pomógł: 765

A przy okazji jeśli inne osoby jeszcze śledzą ten wątek - i chciałyby zrozumieć dlaczego ten czas ZERA może być wydłużany i to nie tylko w ramach odstępów pomiędzy bajtami ale nawet w ramach bitów ;) bo to też jest fajna i przydatna ciekawostka pewnie dla niektórych osób ... to przyznam, że chyba NAJBARDZIEJ precyzyjnie i dużo lepiej ode mnie wyjaśnił to kolega Zealota

Obrazek

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 13:33 
Offline
Użytkownik

Dołączył(a): 15 lut 2017
Posty: 59
Pomógł: 4

Wirnick napisał(a):
"załóżmy, że nadajemy 98 jedynek, czyli robimy coś takiego na wejściu diody:
98*(T1H + T1L) po czym po ostatnim stanie niskim który wynosi tutaj 0,6 us, uznajemy, że mamy koniec nadawania , bo nota nić nie wspomina o przedłużaniu tego czasu, ale wspomina o tym żeby na końcu transmisji był podany stan niski przynajmniej przez 50 us, wiec go dajemy."
Każdy bit kończy się stanem niskim(T1L) i jeśli nie nastąpi T1H istnieje stan niski na DI - wybacz, nic nie trzeba dodawać, bo nawet Ty nie zastawisz czasu. Czas sobie płynie i tak.


No przecież o tym pisałem już również i ja:
"No to jest oczywistość, żeby uściślić my musimy tylko ustawić stan niski na naszym sterowniku (pinie) i przez jakiś czas nic nie robić z tym pinem
Wg noty musimy nie robić aż co najmniej 50 us, żeby zresetować magistralę."
Wystawianie "czasu resetu" to nie oznacza, że muszę trzymać przycisk wciśnięty, bo na porcie mamy układ bistabilny.

Jak niżej pisze Mirek cały spryt i szybkość tych sterowników właśnie polega na tym, że "nie trzeba nic robić" po stanie niskim.
W środku tego układu siedzi sobie "tykacz" który bada stany magistrali, "mierzy" czasy między stanami i sobie resetuje lub nie liczniki i inne cuda :)

------------------------ [ Dodano po: 5 minutach ]

Tak sobie myślę, że dużym problem nie byłoby zrobienie sobie takie sterownik do LED, który działa na NRZ i steruje 3 diodami, jak ten WS :)
Na przerwaniu badamy PCINTy, odpalamy timery między przerwaniami i decydujemy kiedy reset a kiedy 1 lub 0 oraz sterujemy diodami przez PWM :)
Pewnie zaawansowani "cyfracze" robią takie rzeczy w przerwie na kawę :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 14:17 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 46
Pomógł: 1

Ok, mamy dwie implementacje dla sterowania diodami, tak jak robi to Mirek i tak jak robi to np. jark. Proponuje by każdy wybrał sobie sposób który mu odpowiada i czekał na kolejną wersję diody która będzie się resetowała po czasie 2us(a czemu by nie). Jark je porostu sobie podłączy i nawet nie będzie o tym wiedział, natomiast Mirek znów będzie rwał włosy jak to powiedział, bo producent pisze ze ma być 50 a jest 2us. A gdyby ktoś miał wątpliwości, to niech prześledzi tematy na innych forach komu wyskoczył problem 6us. Jeśli znajdzie taki, w którym ktoś sterował sposobem jarka, to może iść zagrać dziś w lotka bo szczęście mu sprzyja. Ja wybieram sposób jarka, większość sposób Mirka, więc pewno postów w stylu czemu mi ta dioda nie działa, a inna działa nie zabraknie.
Pozdrawiam serdecznie i życzę udanego popołudnia. Co złego to nie ja :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 15:01 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 20994
Lokalizacja: Szczecin
Pomógł: 765

kijas1 napisał(a):
Ok, mamy dwie implementacje dla sterowania diodami, tak jak robi to Mirek i tak jak robi to np. jark

Nie kolego, nie mamy dwóch implemenytacji. Mamy co najmniej MILIARD implementacji, jak sobie przejrzysz net to dla takich 8 bitowych procków masz co strona, co programista to inne rozwiązanie programowe ... i każde praktycznie działa ;)

Ja nie tworzę implementacji żebym namawiał do jej stosowania - tu również błądzisz. Ja pokazuję pewne sposoby, rozwiązania - różne. Naprowadzam i KAŻDY może wręcz sam opracować własną implementację, po co się ograniczać do jednej czy dwóch ? ;) Chodzi o to żeby wyzwolić myślenie ... tylko ty jeden się jakby na to zamknąłeś i okopałeś w skorupce noty PDF nie rozumiejąc jak działa sterownik od środka.
kijas1 napisał(a):
Proponuje by każdy wybrał sobie sposób który mu odpowiada i czekał na kolejną wersję diody która będzie się resetowała po czasie 2us(a czemu by nie).

Tu właśnie pokazujesz w jaki sposób się ograniczasz - aż szkoda patrzeć na to. Dlatego że widać, że eksperymenty praktyczne prowadzone niezależnie sobie czy to przeze mnie, czy tu w tym wątku przez kolegę Zaelota, i innych ludzi na świecie jasno pokazują to, że dla oryginałów WS2812B czas resetu to 6us .... a ty Sorry za określenie (ale już nie mam słów) z uporem maniaka dalej swoją mantrę pleciesz nie rozumiejąc zasady działania, tfuuu co ja gadam, ty nawet nie chcesz zrozumieć tej zasady ale to twój ból ;) Kto ci zabroni ? Nikt.

kijas1 napisał(a):
A gdyby ktoś miał wątpliwości, to niech prześledzi tematy na innych forach komu wyskoczył problem 6us.

No tak - jak myślałem ale już nie chciałem tego pisać ;) sam jednak dałeś się pociągnąć za język :lol: tak myślałem - już nota nawet dla ciebie nie jest ważna - WAŻNE że nie znalazłeś tego na forach .... tu aż chciałoby się powiedzieć "kończ Waść, wstydu sobie oszczędź" ... Jeśli dla ciebie wyznacznikiem jest że znajdziesz coś na forach to prawda a jeśli nie znajdziesz to nie prawda to .... szkoda gadać ;) ale coraz lepszą stronę pokazujesz. Tylko czy przy takim podejściu nie zastanawiasz się czasem, nie masz choćby cienia wątpliwości, że źle szukasz ? Pomijam twoje jak widać kłopoty z angielskim (ale spoko ja też nie jestem orłem w angielskim) nie mniej jednak staram się ... a ty? Na fora w innych językach pewnie nie zaglądasz. A idąc twoim tropem - pytanie "A na BLOGI zaglądasz? czy tylko jak ci na forach napiszą - to wierdzysz"

;) masakra

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 17:29 
Offline
Użytkownik

Dołączył(a): 15 lut 2017
Posty: 59
Pomógł: 4

Ech to była emocjonująca doba. Nawet nie wiecie jak się napociłem, żeby to wszystko ogarnąć :)
Mam za sobą już jeden gotowy projekt z diodami RGB (powinien pojawić się na forum za niedługo :) ), nic szczególnego, ale w sam raz od początkującego dla początkujących. Wydaje mi się, że większość tematów ogarnąłem dopiero w czasie tego wątku.
Podstawy z cyfrówki mam, niestety za mało praktyki wcześniej było, stąd mogłem się miotać "w zeznaniach". Jakbym miał podsumować nasze śledztwo to:

- oczywiście na pierwszym miejscu, co już pisałem, chciałbym wskazać, że nota do WS jest ogólnie mówiąc słaba.
Kilka zagadnień wypunktowałem. Najważniejsze jest to, że te 50us/6us przy sterowniku liniowym nie mają większego znaczenia.
Dla mojego prostego projektu to było nawet lepiej, bo zauważyłem, że w kodzie:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


mogę bez problemu ten delay wywalić.
Zwróćcie właśnie uwagę na WS_PORT_LO i następną linijkę z delayem. To jest, w najprostszym sposobie z delayem, właśnie przepisanie rysunku z noty i dopisanie tego czasu na reset magistrali. Teraz wiem, że nawet wpis WS_PORT_LOW nie jest wcale potrzebny, bo funkcja ws281x_asm_send ZAWSZE wystawi na koniec logiczne ZERO. Do tej pory nie miałem tej świadomości, choć Mirek już wcześniej o tym mówił w poradnikach.
Zauważcie różnicę, nie miałem świadomości, to nie to samo co nie wiedziałem :)

Wystarczy tak zaprojektować program, żeby po wyjściu z funkcji ws2812_matrix_refresh zająć się czymś innych przez co najmniej XX us, xx zależy od kupionej diody. Niestety teraz wiem, że będę musiał to sprawdzić przy następnych zakupionych.

Gdyby jednak nie ten wątek i wnioski Mirka o 6us, to moje próby sterownika sprzętowego (może uart, albo SPI, nie wiem jeszcze), który spróbuję ogarnąć, pewnie też ugrzęzłyby w martwym punkcie od razu, a teraz już wiem, że kłopot mógłby być spowodowany nieprecyzyjną notą i brakiem czasu (w us) na działania.
Zastanawiają mnie te inne diody, mam taką linijkę, która faktycznie działa poprawnie w okolicach 50us. Też o nich pisałem w wątku.
Dla takiej linijki to już można poszaleć, do ok 30 us mogę znowu napełniać sobie wagoniki, bez obawy o reset magistrali.

Co do Kolegów i trzymania się sztywno noty, to zdarza się, ze czasami trzeba reverse engineering zrobić.
To więcej uczy niż przepisywanie noty, co do joty :). Popatrzcie sobie na:
https://learn.adafruit.com/32x16-32x32- ... x/overview
Wyobraźcie, że ten temat ogarnąłem, w postaci sterownika na AVR, bez żadnych not bo ich niema, a czasami lepiej brak noty niż taka z babolami :). Nawet nie zaglądałem do kodu Adafruit, tzn próbowałem ale nic z niego nie wymyśliłem, zamiast tracić czas na ogarnianie czyjegoś kodu i siadłem z analizatorem, pokombinowałem, gdzieś tam strzępki dokleiłem i powstał poprawnie działający układ, który już tez pewnie za niedługo opiszę na forum :)
Dopiero przy pisaniu kodu większość tematów ogarnąłem.
No to na dziś chyba już kończę, trza odetchnąć :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 17:34 
Offline
Użytkownik

Dołączył(a): 19 sty 2016
Posty: 37
Lokalizacja: Kraków
Pomógł: 1

teraz może coś dla oka ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2017, o 19:58 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 20994
Lokalizacja: Szczecin
Pomógł: 765

Zealota napisał(a):
Teraz wiem, że nawet wpis WS_PORT_LOW nie jest wcale potrzebny, bo funkcja ws281x_asm_send ZAWSZE wystawi na koniec logiczne ZERO. Do tej pory nie miałem tej świadomości, choć Mirek już wcześniej o tym mówił w poradnikach.
Zauważcie różnicę, nie miałem świadomości, to nie to samo co nie wiedziałem

Ale widzisz - to o to CHODZI .... jak się tylko czasem słucha o czymś a nie mamy okazji tego wziąć we własne łapki i się pobawić, jak to się mówi dotknąć poprzez oscyl czy analizator, asembler, własny kod - to wtedy zwykle tak bywa że nie mamy świadomości ...

Dlatego jest mi zawsze miło, gdy ktoś zamiast teoretyzować SPRAWDZI to ... czasem znajdzie i błąd w moim toku rozumowania - wtedy się we dwójkę czegoś więcej nauczymy ;) ....

Gorzej gdy ktoś tak jak pisane było wyżej jest tylko teoretykiem a praktykę zostawia innym ....

tom_zas napisał(a):
teraz może coś dla oka

I to jest to co TYGRYSY lubią najbardziej, śliczny pinki kolorek i już można myśleć o własnych zastosowaniach ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2017, o 08:45 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 46
Pomógł: 1

Witam, taki mały żarcik z cyklu " kto co widzi" na rozluźnienie i zakończenie mojego udziału w tym temacie ;)
Co jest w nocie : T1L low voltage time 06us +- 150ns

Co widzę ja : T1L low voltage time 06us +- 150ns
Co widzi jarak : T1L low voltage time 06us +- 150ns
Co widzi jasiul : T1L low voltage time 06us +- 150ns

Co widzi Mirek : T1L low voltage time 06us +X - gdzie X < 50us
Co widzi Zealota : T1L low voltage time 06us +X - gdzie X < 50us
:)

I racja Panie Mirku, implementacji są miliony, ale oparte na dwóch algorytmach, z przedłużaniem stanu niskiego i bez jego przedłużania. Forumowiczom proponuje konkurs na wytypowanie przy którym mogą pojawić się niespodzianki, a przy którym nie :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2017, o 08:57 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 20994
Lokalizacja: Szczecin
Pomógł: 765

kijas1 napisał(a):
Co widzi Mirek : T1L low voltage time 06us +X - gdzie X < 50us
Co widzi Zealota : T1L low voltage time 06us +X - gdzie X < 50us


nie nie to jest tak kochanieńki ;)

Mirek : T1L low voltage time 06us +X - gdzie X <= 6us
Zealota : T1L low voltage time 06us +X - gdzie X <= 6us

to samo widzi wiele innych osób które potrafią zgłębić problem a nie teoretyzować jak ty, i które rozumieją jak się czyta noty PDF ... Myślisz, że moim celem albo kogokolwiek jest próba przekonywania kogoś ? to się mylisz ... To tylko próby pobudzenia myślenia a niestety w przypadku twojej osoby spełza to na niczym ;) ty się okopałeś i nie znając podstaw chociażby czytania not i tzw "czasówek" w tych notach - co udało mi się wykazać na twoim przykładzie bo - nie potrafisz nie tylko odpowiedzieć na kilka pytań które próbowałem stawiać w dyskusji z tobą (ostatnie dotyczyło noty pamięci równoległej) ... ale ok można się na tym nie znać - to nie tragedia, to poza tym, że nie potrafisz odpowiedzieć i dyskutować merytorycznie - to tylko powtarzasz wciąż swoją mantrę nie rozumiejąc nawet jak scalaki WS2811 działają - trudno ja ci na to kolego nic już nie poradzę ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2017, o 09:03 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 46
Pomógł: 1

Mirku, w nocie widziałeś X<50us(tak pamiętam poradniki), a do tych 6us doszedłeś eksperymentalnie, i nie dogryzaj już o umiejętności czytania not, bo ja nie dopisuję tam sobie takich rzeczy jak np. X< y, bo tego tam najzwyczajniej w świecie nie ma. I teoretyzowaniem było by, gdyby przedstawiony przez ze mnie sposób nie działał, a działa on doskonale, przy tym jest odporny na wszelkie niespodzianki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 152 ]  Przejdź na stronę Poprzednia strona  1, 2, 3, 4, 5, 6  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO