Witam
mam problem z w/w magistralą SPI. Do portu B na tych liniach podpięte są dwa układy: CC1000PP i DS3234. Z SPI korzysta tylko DS3234. Pin CS z DS'a podpięty jest do pinu PC1, reszta wyjść magistrali jest podpięta do odpowiednich pinów DS'a (MOSI do DIN a MISO do DOUT), CC1000PP nie korzysta z SPI do komunikacji z układem (wiem że może ale nie korzysta) ale pin PB2 (SS) z atmegi jest podpięty do wejścia PDATA z CC1000PP. Całość działa następująco: jeśli mam włożony CC1000PP w port to układ nie może wyjść poza inicjalizację SPI, jeśli wyjmę CC to wszystko przebiega bez problemu, jeśli zakomentuję obsługę DS'a to CC działa bez problemu. Po paru twardych resetach całość "zaskakuje" i zaczyna działać...
- w funkcji do obsługi DS'a (a tym samym SPI) mam wyraźnie zaznaczone czy SPI ma być aktywne czy nie (przez wpisanie odpowiedniego bitu do SPCR = (1<<SPE)|(1<<MSTR)itp i wyłączenie przez SPCR &=~(1<<SPE))
- przeczytałem parę razy czy pin PB2 (SS) może być używany (tak może być ustawiony dowolnie nawet gdy SPI działa ale tylko w trybie master - innego nie używam i tak) ale na wszelki wypadek wyłączam SPI aby się porozumieć z CC
Moje pytanie na chwilę obecną jest następujące:
- czy SPI w trybie master może korzystać z pinu PB2 (SS) do czegokolwiek czy mogę korzystać z innego pinu by używać SPI
- czy używając pinu PB2 (SS) do innych funkcji niż SPI będzie powodować jakieś dziwne zachowania całego układu??
Wiem że to dużo informacji na jeden raz i mogłem co pomieszać, proszę pisać w razie potrzeby wyjaśnienia czegoś. Jeśli chodzi o newralgiczne fragmenty programu to mogę oczywiście zamieścić tak jak i schemat.
Pozdrawiam.
mam problem z w/w magistralą SPI. Do portu B na tych liniach podpięte są dwa układy: CC1000PP i DS3234. Z SPI korzysta tylko DS3234. Pin CS z DS'a podpięty jest do pinu PC1, reszta wyjść magistrali jest podpięta do odpowiednich pinów DS'a (MOSI do DIN a MISO do DOUT), CC1000PP nie korzysta z SPI do komunikacji z układem (wiem że może ale nie korzysta) ale pin PB2 (SS) z atmegi jest podpięty do wejścia PDATA z CC1000PP. Całość działa następująco: jeśli mam włożony CC1000PP w port to układ nie może wyjść poza inicjalizację SPI, jeśli wyjmę CC to wszystko przebiega bez problemu, jeśli zakomentuję obsługę DS'a to CC działa bez problemu. Po paru twardych resetach całość "zaskakuje" i zaczyna działać...
- w funkcji do obsługi DS'a (a tym samym SPI) mam wyraźnie zaznaczone czy SPI ma być aktywne czy nie (przez wpisanie odpowiedniego bitu do SPCR = (1<<SPE)|(1<<MSTR)itp i wyłączenie przez SPCR &=~(1<<SPE))
- przeczytałem parę razy czy pin PB2 (SS) może być używany (tak może być ustawiony dowolnie nawet gdy SPI działa ale tylko w trybie master - innego nie używam i tak) ale na wszelki wypadek wyłączam SPI aby się porozumieć z CC
Moje pytanie na chwilę obecną jest następujące:
- czy SPI w trybie master może korzystać z pinu PB2 (SS) do czegokolwiek czy mogę korzystać z innego pinu by używać SPI
- czy używając pinu PB2 (SS) do innych funkcji niż SPI będzie powodować jakieś dziwne zachowania całego układu??
Wiem że to dużo informacji na jeden raz i mogłem co pomieszać, proszę pisać w razie potrzeby wyjaśnienia czegoś. Jeśli chodzi o newralgiczne fragmenty programu to mogę oczywiście zamieścić tak jak i schemat.
Pozdrawiam.