Witam!
Chciałbym sobie zrobić transmisję między dwoma kontrolerami po SPI. SPI dlatego, że jest i załatwia mi wiele problemów.
1) zgodnie z pdfem połączenie między master a slave odbywa się MOSI->MOSI oraz MISO->MISO. Troche to mnie dziwi, czy nie powinny być krosowane ? Chyba że ma to umożliwiać zmianę ze slave na mastera.2) Master generuje sygnał zegarowy i slave wypycha bit po bicie cały bajt. Jak juz wypchnie, to zgłasza przerwanie, żeby nakarmić SPI następnym. Hmmm... czy mam rozumieć, że jeśli master taktuje bardzo szybko spi to slave w tym przerwaniu nie ma za bardzo czasu na podejmowanie decyzji ? Oczywiście zakładam, że przerwanie będzie pobierać dane z jakiegoś bufora w ram co powinno być szybkie, ale dalej zastanawia mnie, czy operacja wpisania następnej wartości do rejestru jest krytyczna czasowo (w końcu mówimy tutal o prędkościach max f/4 czyli 4 cykle zegarowe ?).
3) Data order - czy jest jakiś najczęsciej stosowany ?4) Clock polarity - to samo, nie wiam jaki jest "popularny" ale zakładam, że ten który ma bit o wartości 0 (Leading Edge: Rising)
5) clock phase - to samoPytania 4,5 zapewne dotyczą trybu SPI (0,1,2,3) i chciałbym znać najczęsciej używany.
6) W jaki sposób master steruje /SS ? Czy on automagicznie jest aktywny gdy coś wpisuje do rejestru danych czy mam go ręcznie sterować (ale jeśli ręcznie to nie widze żadnego bitu w żadnym rejestrze) ?Pytania 2 i 6 mogą nie mieć sensu jeśli da się przesyłać wyłącznie bajty a nie grupy bajtów (jednak pdf wyraźnie wspomina o "end of packet" co rozumiem jako grupę bajtów).
A może na sieci jest jakiś prosty turtorial z spi na atmega i nie tylko ?