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



Teraz jest 27 kwi 2026, o 12:08


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 12 kwi 2013, o 08:18 
Offline
Użytkownik

Dołączył(a): 19 lip 2012
Posty: 86
Lokalizacja: Lublin
Pomógł: 3

Witam,

Mam potrzebę obsługi SPI programowo.

Układ to połączone ze sobą dwie Atmegi644PA.
Slave ma włączone sprzętowe SPI, natomiast Master musi mieć SPI programowo.

I tak ... korzystając z kodu zamieszczonego w niebieskiej książce:

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

Slave odbiera dane bez problemu.

Natomiast potrzebuje odebrać dane od Slave. I tu pojawia się problem.
Przeanalizowałem wszystko i wyszło mi coś takiego:

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

W wyniku dostaję 0. Proszę o nakierowanie na dobre tory.

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


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



Ostatnio edytowano 15 kwi 2013, o 08:01 przez kazzik87, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2013, o 10:39 
Offline
Użytkownik

Dołączył(a): 19 lip 2012
Posty: 86
Lokalizacja: Lublin
Pomógł: 3

Dzięki wielkie.
Obie funkcje działają jak ta lala - pojedynczo.

Jak złącze je w jedną - czyli chcę wysłać i odebrać jednocześnie to jako zwrot dostaję to co wysłałem bajt wcześniej :-/.

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


Gdzie robię błąd?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 kwi 2013, o 08:31 
Offline
Moderator
Avatar użytkownika

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

kazzik87 napisał(a):
Gdzie robię błąd?


nie za bardzo rozumiem co to znaczy gdy złączę je w jedno ? gdzie ? w master? czy w slave ?

jeśli w slave - to proponuję najpierw zająć się sprzętową realizacją slave bo trzeba się dobrze zsynchronizować do mastera żeby poprawnie odebrać dane w slave.

_________________
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: 15 kwi 2013, o 08:47 
Offline
Użytkownik

Dołączył(a): 19 lip 2012
Posty: 86
Lokalizacja: Lublin
Pomógł: 3

To tak:

Slave ma obsługę sprzętową SPI. I ustawione przerwanie w którym po odebraniu bajtu następuje wpisanie do SPDR wartości 0x80. I taką wartość ma odczytać Master.
Natomiast Master musi mieć obsługę programową SPI. I chcę w nim zrobić jedną funkcję do nadania i odbioru bajtu. Coś na wzór:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


mirekk36 napisał(a):
jeśli w slave - to proponuję najpierw zająć się sprzętową realizacją slave bo trzeba się dobrze zsynchronizować do mastera żeby poprawnie odebrać dane w slave.


O dziwo Slave prawidłowo odbiera dane. Jak należy skonfigurować Slave aby synchronizacja z Masterem była poprawna?
Ustawienia Slave:
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  
PostNapisane: 15 kwi 2013, o 12:10 
Offline
Moderator
Avatar użytkownika

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

Przyznam, że kolega (przynajmniej jak dla mnie totalnie przedziwne pytania zadaje - ja nie mogę się połapać - przepraszam) :(

z jednej strony słyszymy że "o dziwo Slave prawidłowo odbiera dane, a po chwili pytanie jak skonfigurować Slave ??? no to działa czy nie działa ??? sorki ale to troszkę tak jakby ktoś napisał:

Wszystko działa mi dobrze, tylko dlaczego wszystko nie działa ? :(

a jeśli chodzi o prawidłową synchronizację i chęć sprzęgnięcia programowego SPI ze sprzętowym to nic kolegę nie uchroni przed poczytaniem PDF'a i opisem rejestrów oraz bitów, które odpowiadają za ustawianie fazy sygnały, zboczy które są aktywne itp itd

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 17 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