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



Teraz jest 8 lis 2025, o 10:36


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 22 ] 
Autor Wiadomość
 Tytuł: 74HC595
PostNapisane: 25 maja 2013, o 08:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 78
Lokalizacja: Grójec
Pomógł: 2

Witam :) Próbuję połączyć kaskadowo dwa układy 74HC595 i za każdym razem drugi układ zczytuje mi z pierwszego układu.
Wygląda to tak: http://www.youtube.com/watch?v=KAsZDdgbYQE
Podłączałem według schematu od kolegi Antystatycznego http://imageshack.us/f/842/kaskada.png/
Kod: http://www.wklej.org/id/1047692/

Sprawdzałem kilkanaście razy połączenia, rozłączałem wszystko i jeszcze raz podłączałem i za każdym razem tak samo.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 maja 2013, o 08:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sty 2013
Posty: 328
Lokalizacja: Rzgów k. Łodzi
Pomógł: 11

Pokaż funkcje send_spi. Jeśli ona jest bez zmian jak w książce to normalne jest takie zachowanie. Musisz pozmieniać w niej żeby wysłała 16 bitów a nie 8

Wysłane z mojego Nexusa 7 za pomocą Tapatalk 2

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: 74HC595
PostNapisane: 25 maja 2013, o 08:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 78
Lokalizacja: Grójec
Pomógł: 2

Zgadza się funkcja jest bez zmian, taka sama jak w książce, żeby wysłać 16 bitów trzeba zmienić void SendSpi(uint8_t bajt ) na void SendSpi(uint16_t bajt ) ??
Po zmianie jest tak samo :(



Ostatnio edytowano 25 maja 2013, o 08:55 przez komor34, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 maja 2013, o 08:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sty 2013
Posty: 328
Lokalizacja: Rzgów k. Łodzi
Pomógł: 11

Musisz jeszcze zmienić ciało funkcji.

Wysłane z mojego Nexusa 7 za pomocą Tapatalk 2

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: 74HC595
PostNapisane: 25 maja 2013, o 09:01 
Offline
Moderator
Avatar użytkownika

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

PawelGaj napisał(a):
Musisz pozmieniać w niej żeby wysłała 16 bitów a nie 8


panowie ale to jest troszkę bez sensu ;) a jak ktoś zechce podłączyć 3 scalaki to co będziecie przerabiać funkcję żeby wysyłała 24 bity, a jak 12 scalaków to ????

język C to świetne narzędzie, wystarczy zrobić sobie funkcję, która wysyła 1bajt gdziekolwiek , na dowolną magistralę, i tego staram się nauczyć was w książce, to PODSTAWA

a później to już się robi funkcje nadrzędne, które mogą przesyłać ile całych bajtów chcecie - tylko w środku wykorzystujemy zawsze tę podstawową do wysłania pojedynczego bajtu....

taką drogą warto iść i myśleć ... a nie przerabiać podstawową funkcję, mając podstawową - chcesz wysłać dwa bajty, proszę

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


chcesz trzy, cztery a może 10 ? nie ma sprawy napisz podobną, ale przekaż jako argument bufor z bajtami do wysłania i użyj pętli for, znowu wyjdzie tylko kilka linijek kodu.

Toż to się robi jak z klocków lego ;)


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: 25 maja 2013, o 09:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sty 2013
Posty: 328
Lokalizacja: Rzgów k. Łodzi
Pomógł: 11

Chciałem bardziej łopatologiczne żeby łatwiej było mu to zrozumieć ;-)

Wysłane z mojego Nexusa 7 za pomocą Tapatalk 2

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 maja 2013, o 09:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sty 2013
Posty: 328
Lokalizacja: Rzgów k. Łodzi
Pomógł: 11

Zamiast tysiąca tych funkcji na początku mogłeś zastosować #define ;) Czyli np. tak : #DEFINE MOSI_H SPI_PORT
|= MOSI
Wysłane z mojego Nexusa 7 za pomocą Tapatalk 2

_________________
sig off ;(



Ostatnio edytowano 25 maja 2013, o 09:33 przez PawelGaj, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 maja 2013, o 09:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sty 2013
Posty: 328
Lokalizacja: Rzgów k. Łodzi
Pomógł: 11

Ważne ze działa i spełnia Twoje oczekiwania ;-)

Wysłane z mojego Nexusa 7 za pomocą Tapatalk 2

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: 74HC595
PostNapisane: 25 maja 2013, o 09:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 78
Lokalizacja: Grójec
Pomógł: 2

Dziękuję wszystkim za pomoc, działa prawie dobrze. Jeśli na 2 układzie świeci się pierwsza dioda to na 1 układzie lekko miga pierwsza dioda. Wygląda to tak http://www.youtube.com/watch?v=FA0LNcPg ... e=youtu.be



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: 74HC595
PostNapisane: 25 maja 2013, o 10:20 
Offline
Moderator
Avatar użytkownika

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

komor34 napisał(a):
Dziękuję wszystkim za pomoc, działa prawie dobrze. Jeśli na 2 układzie świeci się pierwsza dioda to na 1 układzie lekko miga pierwsza dioda. Wygląda to tak http://www.youtube.com/watch?v=FA0LNcPg ... e=youtu.be


bo nie LATCH'uszesz ;)

czyli prościej mówiąc nie zatrzaskujesz ;) .... danych po wprowadzeniu, i dlatego widać jak wprowadzasz kolejne ....

przy okazji wyrzuć to opóźnienie delay_ms(1), które jest tam pokazane w książce w tej funkcji

_________________
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  
 Tytuł: Re: 74HC595
PostNapisane: 25 maja 2013, o 10:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 78
Lokalizacja: Grójec
Pomógł: 2

A jak zrobić takie zatrzaskiwanie danych?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: 74HC595
PostNapisane: 2 cze 2013, o 10:40 
Offline
Moderator
Avatar użytkownika

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

Spójrz sobie to noty PDF - przecież zatrzaskiwania nie robi się pinem OE bo to jest odpowiednik sygnału CS (Chip Select), więc OE (pin nr.13) można na stałe do GND podłączyć. A zatrzaskiwanie masz sygnałem LC (Latch Clock pin nr.12) .....

Obrazek

i z procka używasz TYLKO 3 linii

MOSI - - - - > Serial IN (pin nr.14)
SCK - - - - - > Shift Clock (pin nr.11)
CS - - - - - - > Latch Clock (pin nr.12) ..... przy czym tym pinem sterujesz ręcznie TYLKO po wysłaniu danych na chwilkę zmieniasz na nim stan na przeciwny i z powrotem żeby zatrzasnąć dane


to wsio

_________________
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  
 Tytuł: Re: 74HC595
PostNapisane: 2 cze 2013, o 12:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 78
Lokalizacja: Grójec
Pomógł: 2

Czyli wysyłam dane do układu, zmieniam stan CS na przeciwny potem z powrotem. I diody będą mi się zaświecać na pierwszym układzie a na pozostałych nie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: 74HC595
PostNapisane: 2 cze 2013, o 13:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Witam
jeśli połączysz równolegle piny nr.12 dwóch układów to zatrzaskujesz dane w dwóch układach jednocześnie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: 74HC595
PostNapisane: 2 cze 2013, o 13:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 78
Lokalizacja: Grójec
Pomógł: 2

Chcę uzyskać efekt wężyka na diodach na 3 układach (dioda przeskakuje po kolei od pinu nr 1 do 7 pierwszego układu i przeskakuje na następny), więc jak mam sterować linią CS, aby na 2 i 3 układzie nie zapalały się diody jeśli diody lecą na pierwszym układzie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: 74HC595
PostNapisane: 2 cze 2013, o 14:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Jeśli połączyłeś układy w kaskadę to wysyłasz z procka
trzy bajty danych ośmio-bitowych jeden za drugim a
później zatrzaskujesz je jednocześnie.
np.
dana1 - 0b00000000
bana2 - 0b00000000
dana3 - 0b01000000

machnięcie (przełączenie) CS
i pali ci się dioda nr. 2

Zaznaczam jestem początkujący :)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: 74HC595
PostNapisane: 2 cze 2013, o 15:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 78
Lokalizacja: Grójec
Pomógł: 2

Dziękuję za pomoc, wieczorkiem zrobię tak jak kolega napisał i zobaczymy co z tego wyjdzie :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: 74HC595
PostNapisane: 3 cze 2013, o 14:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 78
Lokalizacja: Grójec
Pomógł: 2

Bardzo dziękuję za pomoc, teraz działa dobrze :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: 74HC595
PostNapisane: 25 sie 2013, o 18:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 lut 2013
Posty: 376
Lokalizacja: Kłopoty-Stanisławy
Pomógł: 33

Czy mógłbyś udostępnić działający kod, bo jakoś nie mogę się ogarnąć z dwoma scalakami i cały czas mam to co pokazałeś na początku na filmiku.

Nie bardzo rozumiem co mirekk36 miał na myśli pisząc :
mirekk36 napisał(a):
void sendWord( uint16_t w ) {
    send_bajt( w>>8 );
    send_bajt( w );
}

_________________
50 znaków Atnela ....



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: 74HC595
PostNapisane: 25 sie 2013, o 20:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 maja 2012
Posty: 174
Lokalizacja: Gliwice
Pomógł: 19

Cześć,

wczoraj akurat pisałem program do obsługi dwóch takich scalaków. Na pewno nie jest idealny ale działa.

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: 74HC595
PostNapisane: 25 sie 2013, o 21:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

Ja zrobilbym to na instrukcji switch. W funkcji jako argument wysylalbym nr rejestru. W zaleznosci od tego nr zatrzaskiwalbym odpowiedni rejestr. Prosto i bez kombinacji ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: 74HC595
PostNapisane: 26 sie 2013, o 07:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 lut 2013
Posty: 376
Lokalizacja: Kłopoty-Stanisławy
Pomógł: 33

Koledzy :)

Bardzo dziękuję dla sz4t4n. Jego kod zadziałał. Nawet , wydaje mi się, że zrozumiałem co ten kod robi, ale na pewno nie do końca.

W tej chwili obsługuje dwie kości, a co jeśli będę miał trzecią ?

Zmienna (x) jest 16-bitowa - przy dwóch 74* jest OK, a jaka miałaby być przy trzech ?

BTW są zmienne 64-bitowe, to 8 kostek - a jeśli będę potrzebował dziesięć ?

------------------------ [ Dodano po: 32 minutach ]

Moim założeniem jest zrobienie PWM'a na trzech kostkach z ewentualną możliwością dołożenia kolejnych (jednej lub dwóch).

_________________
50 znaków Atnela ....



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: 22 ] 

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