Witam!
Przeszukałem forum, internet ale nie znalazłem za bardzo odpowiedzi. Większość jest opisana w µC z wbudowanym SPI, a ja muszę z USI zrobić go sobie.
Z tego co wyczytałem w dokumentacji, kod na uruchomienie USI w trybie SPI to:
I dane do wysłania pasujemy do USIDR, a odbiór trzeba programowo rozwiązać (przynajmniej tak wyczytałem w dokumentacji).
Chcąc spróbować czy to ruszy podpiąłem diody do wyjść CLK i SDA oraz kazałem prockowi wysłać kilka poleceń i utknąć w pętli while(1);
Jeśli wrzucę do procka tylko tyle:
Efekt jest taki że dioda od CLK cały czas świeci. Jeśli dodam jeszcze wysłanie jakiejś tam informacji co jakiś okres czasu to też nic się nie dzieje, cały czas świeci.
Gdzieś na forum było napisane że jest jakiś numer z sygnałem SS, ale co to jest to nigdzie nie znalazłem...
A może sygnał zegarowy mam z zewnątrz pociągnąć z jakiegoś generatora ?
Pozdrawiam
Przeszukałem forum, internet ale nie znalazłem za bardzo odpowiedzi. Większość jest opisana w µC z wbudowanym SPI, a ja muszę z USI zrobić go sobie.
Z tego co wyczytałem w dokumentacji, kod na uruchomienie USI w trybie SPI to:
USISR = _BV(USIOIF);
USICR = _BV(USIWM0) | _BV(USICS1) | _BV(USICLK) | _BV(USITC);I dane do wysłania pasujemy do USIDR, a odbiór trzeba programowo rozwiązać (przynajmniej tak wyczytałem w dokumentacji).
Chcąc spróbować czy to ruszy podpiąłem diody do wyjść CLK i SDA oraz kazałem prockowi wysłać kilka poleceń i utknąć w pętli while(1);
Jeśli wrzucę do procka tylko tyle:
DDRB = ~_BV(PB6);
PORTB = 0x00;
USISR = _BV(USIOIF);
USICR = _BV(USIWM0) | _BV(USICS1) | _BV(USICLK) | _BV(USITC);Efekt jest taki że dioda od CLK cały czas świeci. Jeśli dodam jeszcze wysłanie jakiejś tam informacji co jakiś okres czasu to też nic się nie dzieje, cały czas świeci.
Gdzieś na forum było napisane że jest jakiś numer z sygnałem SS, ale co to jest to nigdzie nie znalazłem...
A może sygnał zegarowy mam z zewnątrz pociągnąć z jakiegoś generatora ?
Pozdrawiam