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



Teraz jest 15 sty 2025, o 22:04


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 31 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 7 lut 2014, o 15:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

Witam wszystkich !
Tak jak w temacie chodzi o często wspominany scalak WS2803.
Z tego co przeczytałem w przyszłości planowany jest również poradnik odnośnie tych scalaków, jednakże chciałem spróbować swoich sił jeszcze przed premierą :lol:.

Pierwsza rzecz to różnica pomiędzy notami scalaków WS2801 i WS2803:
http://www.world-semi.com/en/Driver/Lig ... ip/WS2803/

W nocie pierwszego mamy dużo więcej informacji i przykładów połączeń kilku diod pod jedno wyjście natomiast w przypadku 18 kanałowego WS2803 nie znalazłem pomocnych schematów, jak np. te poniżej:
Obrazek


Chciałbym was prosić o pomoc ze zrozumieniem kilku spraw odnośnie zasilania różnych diod, których prąd to 20 mA i 50 mA.

Czy poniższy schemat jest poprawny ?


Obrazek

Zakładając spadek na każdej diodzie 2.5 V powyliczałem przykładowe wartości dla rezystorów.

Chodzi mi głównie o zasilanie diod LED1- LED9, których prąd powinien być ustalony na 20mA przy zasilaniu 5V.

Wyliczając to z noty scalaka:
Iref= (Vrext/Rext)*22=(1.25/20mA)*22=~1250 Ohm.
W tym wypadku na każdym wyjściu OUT 0-17 prąd płynący przez diodę powinien być ograniczony do 20mA.

Czy w takim wypadku zasilając diody (LED14 i LED15) 12 Voltami potrzebuje rezystor R4 (330 OHM) w celu ich zabezpieczenia ?
A możne dzięki podłączeniu rezystora R2 do pinu IREF można pominąć rezystor R4, oczywiście do pewnych napiec ?


Dodatkowo zastanawia mnie fakt, iż maksymalny prąd na wyjściu to 5-30 mA, wiec przy zasilaniu kaskady diod o większym prądzie jak np diody LED10-LED13 zasilane zasilaniem np.12V potrzebować będą np. tranzystora NPN, a prąd z wyjścia (OUT17) ograniczony rezystorem R1 2.4K Ohm będzie załączał układ.
Czy przy takim rozwiązaniu nie potrzeba tutaj żadnych dodatkowych modyfikacji tak jak w pierwszym dołączonym rysunku ?
Napięcie na bazie to 5V a na kolektorze 12V-4*2,5V wiec 2 V. Chyba powinno wszystko grać ?

A co jeśli miałbym tam tylko jedną diodę LED10 i napięcie na kolektorze byłoby znacznie większe aniżeli na bazie ? Czy musiałbym tam dodać w szereg z LED10 dodatkową diodę Zenera, aby odłożyć 4,5V i wyrównać do 5V ?

Z góry przepraszam za błędy w schemacie i proste pytania. Wiem, że kombinuje jak tylko się da i pewnie są łatwiejsze i szybsze rozwiązania :mrgreen:

A tak przy okazji, przez pewien czas szukałem bibliotek do Eagle, dla scalakow WS2801 WS2803 w obudowach DIP oraz magic RGB diodę smd. Niestety albo stety bibliotekę musiałem zrobić sam przy pomocy filmików Mirka, za które jeszcze raz dziękuje !
Jak ktoś da znać jak mogą się nią podzielić na forum to bardzo chętnie załączę tutaj link dla przyszłych widzów poradnika o WS280##.
Może akurat się komuś przyda :roll: .

Dzięki !



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lut 2014, o 15:49 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3209
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

Zawsze możesz podesłać mnie do kolekcji :lol: https://dl.dropboxusercontent.com/u/64842703/eagle/biblioteki.htm

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lut 2014, o 20:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

Ale Bajer!!!

Jaglarz napisał(a):
Zawsze możesz podesłać mnie do kolekcji :lol: http://www.jaglarz.com/ja/elektronika/eagle/biblioteki.php


Jagi wow z nieba mi spadłeś z tą swoją kolekcja nie wiedziałem :)

Czemu nikt mi nie powiedział że Jagi ma taka mega kolekcje, ktoś ma jeszcze coś takiego ukrytego?

Biblioteką do drivera WS jestem również zainteresowany.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lut 2014, o 12:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

Dobrze, podeślę Ci te biblioteki to je wstawisz...

Panowie, może jakaś podpowiedź co do układu i użytego zasilania do sterowania diodami ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lut 2014, o 06:23 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 27 lut 2012
Posty: 19
Lokalizacja: Czarnowo, wpj. Kijawsko Pomorskie
Pomógł: 1

Witam

Cytuj:
Wyliczając to z noty scalaka:
Iref= (Vrext/Rext)*22=(1.25/20mA)*22=~1250 Ohm.
W tym wypadku na każdym wyjściu OUT 0-17 prąd płynący przez diodę powinien być ograniczony do 20mA.

Przy podanych w nocie parametrach prąd będzie ograniczany do 22mA (20mA przy obliczonej wartości Rext 1375Ohm )

Cytuj:
Czy w takim wypadku zasilając diody (LED14 i LED15) 12 Voltami potrzebuje rezystor R4 (330 OHM) w celu ich zabezpieczenia ?

Dla VDS (patrz nota katalogowa) = 0.4V zgadza się

Dodatkowo użyłbym tez rezystorów dla diod D1-D9 (w twoim przypadku masz przekroczone VDS na wyjściach do których są podłączone ww. LED) - wartość obliczona 95Ohm dla VDS 0.4V lub 75R dla VDS = 1V (czyli wybierz rezystor z szeregu pomiędzy tymi wartościami aby VDS znajdowało się w zalecanych przez producenta granicach)

Cytuj:
A możne dzięki podłączeniu rezystora R2 do pinu IREF można pominąć rezystor R4, oczywiście do pewnych napiec ?

Jeżeli zapewnisz warunek :
0.4V >=VDS <=1V
VDS=(VLED-VF)-VDROP. To jest możliwe pozbycie się rezystora R4 dobierając odpowiednią liczbę LED w stringu. W twoim przypadku zakładając VF dla pojedynczego LED na poziomie 2.5V będzie ciężko spełnić ten warunek – przy 4xLED VDS = 2V co przekracza podany przez producenta zakres napięć (wbudowane klucze mogą się przegrzać co nieuchronnie doprowadzi do uszkodzenia danego wyjścia)

Cytuj:
Dodatkowo zastanawia mnie fakt, iż maksymalny prąd na wyjściu to 5-30 mA, wiec przy zasilaniu kaskady diod o większym prądzie jak np diody LED10-LED13 zasilane zasilaniem np.12V potrzebować będą np. tranzystora NPN, a prąd z wyjścia (OUT17) ograniczony rezystorem R1 2.4K Ohm będzie załączał układ.
Czy przy takim rozwiązaniu nie potrzeba tutaj żadnych dodatkowych modyfikacji tak jak w pierwszym dołączonym rysunku ?
Napięcie na bazie to 5V a na kolektorze 12V-4*2,5V wiec 2 V. Chyba powinno wszystko grać ?

Możliwość zastosowania zewnętrznych kluczy może wiązać się z różnicami jakie występują pomiędzy WS2801 i WS2803 . Sprawdź dokładnie oba sposoby połączeń (constant current i constant voltage mode dla WS2801). Podane są tam dokładnie metody obliczenia rezystorów RB i RL. W WS2803 ten patent może się nie udać ale niestety nie miałem do czynienia z tymi układzikami i nie sprawdzałem tego.

Cytuj:
A co jeśli miałbym tam tylko jedną diodę LED10 i napięcie na kolektorze byłoby znacznie większe aniżeli na bazie ? Czy musiałbym tam dodać w szereg z LED10 dodatkową diodę Zenera, aby odłożyć 4,5V i wyrównać do 5V ?


Dalej gdybając - zwiększenie wartości R3 zgodnie z zależnością R3 = (VLED – VF – VCE)/IF


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lut 2014, o 21:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

metallmaniac dzieki za podpowiedzi !...
Przez jakis czas mnie nie było, gdyż zajęty byłem wykonywaniem płytek próbnych do wspomnianych scalaków.
Schematy i wykonanie poniżej:
Obrazek

Obrazek

Zajęło mi to sporo czasu, ale jak na jedne z pierwszych płytek jestem zadowolony :)

Pobawię się troszkę i zobaczę w praktyce jak nasz układzik poradzi sobie z wysterowaniem kilku diod w serii sterowanymi większym prądem...

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

aaa..bym zapomniał co to biblioteki scalaka i magic LEDa sprawdzę czy obie są poprawne w praktyce a następnie podrzucę tu do nich link...układzik testowy do magic LEDa poniżej wg schematu w nocie katalogowej:

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lut 2014, o 11:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

powoli zaczynam zabawę z programowaniem scalaków WS280xx. Na samym początku przebrnąłem przez zasadę działania rejestrów i SPI, więcej informacji tutaj: http://forum.atnel.pl/topic4751.html

Z noty katalogowej WS2803 widzę opis jakiegoś pinu MS, czy wie ktoś o co tutaj chodzi ?

Obrazek

Dodatkowo, wspomniano, że do LATCH'owania wszystkich wrzuconych bajtów na wyjście układu muszę ustawić sygnał LOW na pinie CKI, w przypadku sprzętowego SPI będzie to pin PB7 (SCK).

Czy w przypadku sprzętowego SPI mogę w jakiś sposób utrzymać stan niski na PB7, aby po pewnym czasie ponownie uzyskać sygnał zegarowy ?

Dla programowego SPI w tym wypadku wystarczy ustawienie 0 i np. delay'a, ale jeśli chodzi o przebiegi czasowe z noty katalogowej, nie mam pojęcia jaki czas powinien występować dla jednego taktu CLK.

Obrazek

W internecie znalazłem przykładową bibliotekę dla scalaka WS2801, gdzie autor ustawił CLK dla okresu 20 us.
Czy ma ktoś z tym jakieś doświadczenie ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lut 2014, o 13:01 
Offline
Moderator
Avatar użytkownika

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

barszczz napisał(a):
Dla programowego SPI w tym wypadku wystarczy ustawienie 0 i np. delay'a, ale jeśli chodzi o przebiegi czasowe z noty katalogowej, nie mam pojęcia jaki czas powinien występować dla jednego taktu CLK


żadnych delayów, coś kolega kombinuje pod górę ;) i to na maxa

przy programowym SPI zapomnij o delayach albo o jakichkolwiek czasach z noty że np MUSI być 20 ns. ;) W nocie masz podane MINIMALNE czasy i nawet się do nich nie zbliżysz programowym SPI. Za to przy komunikacji SPI możesz sobie te czasy wydłużać ile wlezie a i tak wszystko będzie działać ...

Poczytaj jeszcze raz w Bluebooku o komunikacji SPI. To nie ma NIC WSPÓLNEGO z protokołem NZR w scalakach WS2811/WS2812 - gdzie trzeba drastycznie dbać o czasówkę.

Przy SPI - to nawet sprzętowo nie dojdziesz do CLK 20 ns ;) Musiałbyś mieć procka taktowanego kwarcem 100 MHz i wtedy z dzielnikiem :2 osiągnąłbyś może 20 ns

_________________
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: 25 lut 2014, o 13:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

Tak rozumiem, że przy sprzętowym SPI czekamy na falge i wówczas procesor robi wszystko za nas (nie martwimy się o przebiegi czasowe).

Jedyny problem jaki istnieje z braku mojego wcześniejszego doświadczenia to te nieszczęśliwe LATCH'owanie, gdzie musimy wymusić niski sygnał na SCK przez więcej niż 600 us (LATCH DELAY).

Nie mam pojęcia jak to zrobić bo przecież na pinie PB7 tyka nam zegar no i jak w jakiejś funkcji ustawie PORTB &= ~(1<<PB7); _delay_us(610) a następnie ponownie inicjalizacje SPI to nie będzie to najciekawsze rozwiązanie :oops:
Moze jakaś podpowiedz tutaj 8-) ?

Co do programowego SPI to we wspomnianej bibliotece widziałem w użyciu SCK o okresie 20us a Latch Delay = 2000us.

Z wcześniejszych postów pamiętam, że i odnośnie scalaków WS280xx planujesz jakieś poradniki, a czy uchylisz rąbka tajemnicy i powiesz na kiedy jest planowana jakaś premiera :) ?
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lut 2014, o 13:34 
Offline
Moderator
Avatar użytkownika

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

Cytuj:
Nie mam pojęcia jak to zrobić bo przecież na pinie PB7 tyka nam zegar no i jak w jakiejś funkcji ustawie PORTB &= ~(1<<PB7); _delay_us(610) a następnie ponownie inicjalizacje SPI to nie będzie to najciekawsze rozwiązanie
Moze jakaś podpowiedz tutaj


eeeeś ;) przecież już wyżej pisałeś że zaskoczyłeś jak to jest z tym LATCH'owaniem ;)

DOPIERO PO WYSŁANIU CAŁOŚCI - raz machniesz stanem na wyjśiu LATCH i po zawodach - nie do końca rozumiem w czym tu masz jakby problem - zrozum mnie. Przecież ty nie masz laczować pomiędzy taktami zegara - a pomiędzy wysyłanymi bajtami czy tam paczkami bajtów itp więc nie wplataj w to CLK bo to KOMPLETNIE nie ma nic wspólnego.

za pomocą MOSI i CLK pompujesz dane do rejestrów - ile wlezie, ile chcesz - a jak je wpompowałeś to odkręcasz kurek (LATCH) żeby woda mogła z kraników (bitów) wytrysnąć (diody się zaświecić)

----------------------------

co do terminów poradników - oj przykro mi ale to strasznie trudno mi przewidzieć na dzień dzisiejszy, nie że nie chcę czy coś - tylko po prostu .... no krótko mówiąc gdyby moja praca polegała TYLKO na robieniu poradników i z tego mógłbym się utrzymywać to zapewniam cię że chyba codziennie przez co najmniej dwa lata mogłyby się ukazywać- tyle mam pomysłów sam na poradniki, a potem jeszcze przez 6 lat realizowałbym pomysły nadsyłane przez widzów ;)

_________________
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: 25 lut 2014, o 13:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

...coś jakby żaróweczka mi się zapaliła, po powrocie do domu skrobnę podstawowy kod, który lata mi po głowie i wynik końcowy zamieszczę tutaj.

mirekk36 napisał(a):
co do terminów poradników - oj przykro mi ale to strasznie trudno mi przewidzieć na dzień dzisiejszy, nie że nie chcę czy coś - tylko po prostu .... no krótko mówiąc gdyby moja praca polegała TYLKO na robieniu poradników i z tego mógłbym się utrzymywać to zapewniam cię że chyba codziennie przez co najmniej dwa lata mogłyby się ukazywać- tyle mam pomysłów sam na poradniki, a potem jeszcze przez 6 lat realizowałbym pomysły nadsyłane przez widzów ;)


Jakbym miał możliwość to chętnie dałbym Ci te 6 lat w prezencie a nawet 7 :) !



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lut 2014, o 22:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

barszczz napisał(a):
za pomocą MOSI i CLK pompujesz dane do rejestrów - ile wlezie, ile chcesz - a jak je wpompowałeś to odkręcasz kurek (LATCH) żeby woda mogła z kraników (bitów) wytrysnąć (diody się zaświecić)


No nie wiem panowie, niby wtłaczam wszystkie dane do jednego scalaka WS2803, czyli 18 bajtów, na końcu próbowałem ustawić stan niski na CLK i nie działa tak jak powinno. Czasem się załącza czasem nie.

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



No nie mam pojęcia jak ustawić te LATCHowanie po wysłaniu całego bufera.
Sprawa wydaje się łatwa, ale próbowałem z delay z timerami, aby utrzymać stan niski na tym SCK i nic.

Dane w buferze są - jest ich dokładnie 18 bajtów, gdzie każdy określa PWM pojedynczej diody. Następnie wysyłamy ją do SendBufer, który po kolei wysyła każdy bajt sprzętowo. No i ten nieszczęsny LATCH po wysłaniu wszystkich 18 bajtów. Siedzę główkuję i brak jakiegoś rezultatu :oops: Może jakieś podpowiedzi jak ten kurek odkręcić ? Jak to rozgryźć :mrgreen: ?

W nocie pisze, że ma być stan niski na CLK powyżej 600us, eh... :roll:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2014, o 10:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

Ledwo co się człowiek obudził i od razu dalsze bitwy z uruchomieniem WS2803 :ugeek:

niestety poniższy kod także nie zadziałał:

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


Próbowałem dla różnych wartości sygnały i nadal nic.

Wczoraj wieczorem dostałem taśmę z magic LED, ale nie zacznę oglądać poradników dopóki nie ruszy mi ten scalaczek - taki mam plan :twisted:.

Pomóżcie panowie bo konkretnie utknąłem :?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2014, o 10:11 
Offline
Moderator
Avatar użytkownika

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

używasz sprzętowego SPI ... i takie rzeczy robisz 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.


:(

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

to musisz jednak najpierw poczytać jeszcze raz o SPI, i poćwiczyć SPI na przykładzie jakiegoś ZWYKŁEGO rejestru przesuwnego np 74HC595 - zarówno w wersji sprzętowej jak i programowej z Bluebooka - żeby zaskoczyć o co chodzi

_________________
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: 27 lut 2014, o 10:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

próbowałem już wszystkiego bo zwykłe zarzucenie:

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


po wysłaniu całej paczki 18 bajtów nic nie daje. Nie mam zielonego pojęcia jak do tego podejść.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2014, o 10:14 
Offline
Moderator
Avatar użytkownika

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

jeszcze raz pytam - jeśli używasz sprzętowego SPI ... .to powiedz mi co to za wynalazek z jakimś ręcznym sterowaniem pinem SCK ??? :(

------------------------ [ Dodano po: kilkunastu sekundach ]

wygląda na to że działasz na razie mocno po omacku .... a jednak SPI trzeba zrozumieć

zabierz się za czytanie o tym i ew dopytaj co sprawia ci kłopot - wtedy łatwiej będzie coś pomóc

_________________
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: 27 lut 2014, o 10:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

mirekk36 napisał(a):
to musisz jednak najpierw poczytać jeszcze raz o SPI, i poćwiczyć SPI na przykładzie jakiegoś ZWYKŁEGO rejestru przesuwnego np 74HC595 - zarówno w wersji sprzętowej jak i programowej z Bluebooka - żeby zaskoczyć o co chodzi


Zrobiłem przed podejściem do tych scalaków przykład z 3ma rejestrami przesuwnymi, ale tam nasz LATCH był na zupełnie innym pinie, wystarczyło zapuścić stan wysoki i niski (bo LATCH'owanie było przy narastającym zboczu) i wszystko pięknie śmigało. Tutaj nie rozumiem sposobu utrzymania tego niskiego sygnały na SCK ...

------------------------ [ Dodano po: 11 minutach ]

mirekk36 napisał(a):
jeszcze raz pytam - jeśli używasz sprzętowego SPI ... .to powiedz mi co to za wynalazek z jakimś ręcznym sterowaniem pinem SCK ???


ok...tak po chwili zastanowienia, zamiast ingerować w sygnał SCK ręcznie i próbach wyzwalaniu niskiego sygnału na tym pinie po wysłaniu paczki powinienem ustawić odpowiedni preskaler w rejestrze SPCR tak aby okres zegara SCK wynosił np. T=2*610 us

Czy już zaczynam dobrze kombinować ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2014, o 10:32 
Offline
Moderator
Avatar użytkownika

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

barszczz napisał(a):
Tutaj nie rozumiem sposobu utrzymania tego niskiego sygnały na SCK


Tzn ale co tu rozumieć - nic nie trzeba robić - trzeba przestać przesyłać na MINIMUM 500 us i to wszystko a skoro minimum to może to trwać nawet jedną minutę

po prostu wysyłasz wszystkie dane do rejestru lub ciągu rejestrów i przerwa (min 500us) potem znowu wysyłasz i przerwa ... nic tu nie trzeba LATCH'ować

_________________
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: 27 lut 2014, o 16:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

Sprawy poszły trochę naprzód 8-) Tym razem wziąłem się za programowe SPI - zrobiłem wszystko identycznie jak wcześniej, tyle że wszystkie stany ustawiane są 'ręcznie'.

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


W tym przypadku wszystko działa i pierwszy efekt można zobaczyć tutaj:


Jedyną poprawką była zmiana wielkości bufera 'lengthPlus' no i ustawianie wszystkich stanów z ręki.

Po przeczytaniu działu z niebieskiej księgi nadal nie wiem jak przestać wysyłać sygnał na SCK po wysłaniu wszystkich bajtów przez sprzętowe SPI - wcześniej wspomniana przerwa (min 500us).
Czuję się jak ułomne dziecko, ale tyle różnych podejść co już przetestowałem (a wiadomo tonący brzydko się chwyta więc i najróżniejsze głupie próby :oops: ) i nadal nic.
Po prostu nie wiem jak zatrzymać zegar tykający na SCK PB7 po wysłaniu wszystkich bajtów. Niby rozumiem schemat, zasadę działania ale tego chyba nie ogarnę :roll:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2014, o 16:36 
Offline
Moderator
Avatar użytkownika

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

barszczz napisał(a):
Po przeczytaniu działu z niebieskiej księgi nadal nie wiem jak przestać wysyłać sygnał na SCK po wysłaniu wszystkich bajtów przez sprzętowe SPI - wcześniej wspomniana przerwa (min 500us).
Czuję się jak ułomne dziecko, ale tyle różnych podejść co już przetestowałem (a wiadomo tonący brzydko się chwyta więc i najróżniejsze głupie próby ) i nadal nic.
Po prostu nie wiem jak zatrzymać zegar tykający na SCK PB7 po wysłaniu wszystkich bajtów. Niby rozumiem schemat, zasadę działania ale tego chyba nie ogarnę


ale zaraz zaraz - to niby z opisu SPI wynika dla ciebie że sygnał SCK cały czas sobie ..... pędzi jak motorek i nigdy go nie można zatrzymać ?

_________________
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: 27 lut 2014, o 16:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

mirekk36 napisał(a):
ale zaraz zaraz - to niby z opisu SPI wynika dla ciebie że sygnał SCK cały czas sobie ..... pędzi jak motorek i nigdy go nie można zatrzymać ?


Po inicjalizacji z tego co rozumiem to tak, ale ustawie SPI na disable za pomocą: SPCR &= ~(1<<SPE) to nasz motorek powinien stanąć na czerwonym :?: oczywiście do czasu kolejnej inicjalizacji. Pewnie znowu coś bredzę :?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2014, o 16:45 
Offline
Moderator
Avatar użytkownika

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

barszczz napisał(a):
Pewnie znowu coś bredzę


No nie użyłbym takiego słowa - ale na pewno opowiadasz kosmiczne fantasmagorie ;)

Panie kolego ZROZUM - sygnał CLOCK jest potrzebny TYLKO i wyłącznie do "wysziftowania" bajtu. I pojawia się na linii SCK przebieg prostokątny TYLKO w momencie gdy wysuwany/odbierany jest bajt. Nie ma to NIC a NIC wspólnego z inicjalizacją SPI i wręcz niedorzecznością jest jakby wyłączanie SPI - rzekomo po to aby zatrzymać SCK ;) .... Najbardziej ciekawi mnie skąd wytrzasnąłeś pan taką iście ciekawą teorię ? ;)

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

reasumując SCK w sprzętowym SPI działa TAK SAMO jak w twoim programowym SPI ;) .... zastanów się - banglujesz zboczami SCK tylko po to żeby wysłać bajt - zgadza się ? ....

_________________
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: 27 lut 2014, o 16:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

mirekk36 napisał(a):
Najbardziej ciekawi mnie skąd wytrzasnąłeś pan taką iście ciekawą teorię ? ;)


Jeśli trzeba jakiejś nowej fantasmagorii i nowych pokręconych teorii o AVRach to proszę śmiało się odzywać ;)
Jakoś takie działanie SCK wydawało się być dla mnie dość logiczne :roll: no ale teraz znowu przeczytam wcześniejsze podpowiedzi, przelecę poradnik i może tym razem zaświeci się żarówka :idea:
spać nie pójdę dopóty tego nie przełknę 8-)
Dzięki wielkie za użeranie się z moimi fantasmagoriami ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2014, o 16:56 
Offline
Moderator
Avatar użytkownika

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

Spokojnie kto pyta nie błądzi...

Skoro już wiesz że SCK w sprzętowym SPI zachowuje się tak samo jak w programowym SPI czyli sam się zatrzymuje ....

to teraz możesz zajrzeć sobie jeszcze do noty PDF do rejestrów SPI i zobaczyć że można dowolnie zmieniać stan początkowy SCK czy ma być to 0 czy 1. Czy dane z MOSI mają być zatrzaskiwane zboczem narastającym czy opadającym itp itd ;)

ale i tak domyślne ustawienia po resecie są w większości wypadków od razu odpowiednie do takich celów


Autor postu otrzymał pochwałę

_________________
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: 28 lut 2014, o 08:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

Teraz już zapamiętam, że sprzętowe SCK wysuwa jedynie bity do wsunięcia a po zakończonej brudnej robocie ustawiane jest na stan wysoki bądź to niski. Niby, już wszystko przemaglowane, nic nie powinno mnie w sprzętowej obsłudze SPI zaskoczyć, lecz nadal program nie rusza.
Analizując przebiegi scalaka WS2803 i SPI dla Atmega32A:
Obrazek

Na czerwono i zielono zaznaczyłem stan SCK przed jak i po wysłaniu paczki bitów. Wszystko powinno się zgadzać, po wysłaniu mamy stan niski, bity wsuwane są zboczem narastającym. Przebiegi są identyczne. Z tego tez wynika, że bity CPOL i CPHA powinny byc ustawione na 0 - tak jak to jest w ustawieniach rejestru SPCR automatycznie po resecie.

Do programu podchodzę identycznie jak w przypadku programowego SPI:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Przestudiowałem każdą linijkę kilka razy, zmieniałem ilości bajtów w buferach, zmieniałem długości delaya po wysłaniu buferu i nadal kicha ! :evil:
Jestem jakimś ewenementem bo sprzętowe SPI powinno ułatwić mi obsługę a nie ... 8-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2014, o 14:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

Sterownikow LED ciag dalszy 8-)

Ostatnio znalazlem w internecie schemat podlaczania wspomnianego scalaka :
Obrazek

Zastosowano tutaj podciagniecie wyjsc sygnalow SDO i CKO do zasilania VCC poprzez rezystor 50 Ohm.

Podczas moich prob nie uzywalem tych rezystorow, wiec chcialem sie was podpytac czy przy polaczeniu 3 sterownikow jest sens je tam dodawac ?

Co daje takie podciagniecie ? Rozumiem, ze dzieki tym 50 Ohm wysoki poziom sygnalu jest "czytelniejszy" dla kolejnego sterownika ? Pewnie w przypadku dluzszych szeregow sterownikow LED takie podciaganie jest potrzebne, ale czy dla kilku daje to jakis efekt ?


Dodatkowo w poprzednim kodzie uzywalem zmiennej WS2803_Latch_Delay, ustawione na 600 us -w notach producent wspominal ze sygnal niski o takiej dlugosci "zatrzaskuje" dane. Zmienialem te wartosci z 600 us do 1 us i nadal wszystko dzialalo, tylko czemu :ugeek: ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2014, o 14:27 
Offline
Moderator
Avatar użytkownika

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

barszczz napisał(a):
Ostatnio znalazlem w internecie schemat podlaczania wspomnianego scalaka


Boże ;) kolego skąd ty znajdujesz takie dziwolągi (mówię o tych rezystorach 50R) ? ... uważasz że jest sens rozpatrywać wszystko co znajdziesz w internecie ? i to jeszcze bez podania źródeł ? .... pomyśl nad tym ;) Tym bardziej, że jak nie podajesz źródła to istnieje duża możliwość że sam popełniłeś błąd bo tam wcale nie było takich wartości rezystorów....

barszczz napisał(a):
Dodatkowo w poprzednim kodzie uzywalem zmiennej WS2803_Latch_Delay, ustawione na 600 us -w notach producent wspominal ze sygnal niski o takiej dlugosci "zatrzaskuje" dane. Zmienialem te wartosci z 600 us do 1 us i nadal wszystko dzialalo, tylko czemu


czy dla ciebie nie jest zrozumiały parametr czas minimalny ? ... Panie kochany ;) możesz sobie czas 600us zmienić nawet na 1 godzinę i też ci zadziała i będziesz dziwił się dlaczego ? .... To chyba oczywiste że producent ci podaje że ten czas MUSI trwać MINIMUM 600 us a to że dasz więcej nawet godzinę albo i cały dzień - to już bez różnicy i tak się zresetuje ;) teraz jaśniej ?

_________________
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 lip 2014, o 14:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

mirekk36 napisał(a):
czy dla ciebie nie jest zrozumiały parametr czas minimalny ? ... Panie kochany możesz sobie czas 600us zmienić nawet na 1 godzinę i też ci zadziała i będziesz dziwił się dlaczego ? .... To chyba oczywiste że producent ci podaje że ten czas MUSI trwać MINIMUM 600 us a to że dasz więcej nawet godzinę albo i cały dzień - to już bez różnicy i tak się zresetuje teraz jaśniej ?


Ale ja zmniejszylem czas z 600 us na 1 us i dalej chodzilo...skrocilem go o 600 razy a kilka ukladow polaczonych kaskadowo nadal szalalo jak poprzednio :) w tym sek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2014, o 14:58 
Offline
Moderator
Avatar użytkownika

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

barszczz napisał(a):
Ale ja zmniejszylem czas z 600 us na 1 us


Dajesz sobie głowę obciąć że zmniejszyłeś ten czas do 1 us ? ;) ... oooj to uważaj bo możesz ją stracić ....

1. sprawdzałeś ten czas na oscyloskopie ?
2. obliczałeś ten czas na podstawie kodu wygenerowanego w asemblerze przez kompilator w C ?

czy może wydaje ci się że jeśli napiszesz

_delay_us( 600 );
_delay_us( 1 );

to wielka różnica jeśli np twój kod do obsługi transmisji SPI posiada spory narzut czasowy na końcu ... np 800us .... a wtedy twój delay może trwać nawet i w drugą stronę 0,5us i nadal będzie dobrze ;)

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

przecież ty wyżej w kodzie bawisz się programowym SPI ;) ... więc tam pewnie tracisz KUPĘ czasu gdzie 600us to mały nieznaczący pikuś

_________________
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 lip 2014, o 15:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

mirekk36 napisał(a):
Boże kolego skąd ty znajdujesz takie dziwolągi (mówię o tych rezystorach 50R) ? ... uważasz że jest sens rozpatrywać wszystko co znajdziesz w internecie ? i to jeszcze bez podania źródeł ? .... pomyśl nad tym Tym bardziej, że jak nie podajesz źródła to istnieje duża możliwość że sam popełniłeś błąd bo tam wcale nie było takich wartości rezystorów....


wlasnie znalazlem zrodlo: http://forum.arduino.cc/index.php?topic=140308.0

Z tego co widze, to napisane jest ze te 50 Ohmowe rezystory mialy byc dolaczone do ostatniego scalaka w kaskadzie...

Dzieki wielkie za wybicie mi tych dziwolagow, zawsze to uklad mniejszy :)

------------------------ [ Dodano po: 3 minutach ]

mirekk36 napisał(a):
Dajesz sobie głowę obciąć że zmniejszyłeś ten czas do 1 us ?

no i wlasnie glowa poleciala :)
Nie sadzilem ze przy programowym SPI tak mi sie wszystko rozlazi czasowo

Cytuj:
przecież ty wyżej w kodzie bawisz się programowym SPI


Nie udalo mi sie ruszyc tego poprzez sprzetowy SPI, dostalem kilka prywatnych wiadomosci i inni mieli ten sam problem...ale lada dzien moze znowu przysiade i od nowa postaram sie przez to przebrnac....

Jak uda mi sie dostac do oscyloskopu to sam z ciekawosci zobacze jakie czasy mi tam powylazily :)



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: 31 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO