SPI - definice SS pinu
Napsal: 19 úno 2019, 11:36
Řeším připojení více periferií komunikující přes SPI rozhraní. Peru se s CS (SS) pinem a určením, které zařízení má zrovna komunikovat. Zde je problematika komunikace SPI pěkně popsána. Cituji:
Např. zde je příklad SD karty a příkaz
Takže definuji pin 10 pro komunikaci s kartou.
Pročetl jsem si originální dokumentaci k SPI a v rozšířeném nastavení je uveden příklad nastavení SS pinu:
Proč se nepoužívá v potřebě komunikace na konkrétním pinu pouze příkaz
Mohu jako SS definovat jakýkoliv volný digitální pin?
Procházel jsem různé příklady a fóra, ale nenašel jsem konečnou odpověď, jak definovat komunikační SS pin konkrétního zařízení.MISO (Master In Slave Out) – na tomto portu SLAVE vysílá, MASTER přijímá
MOSI (Master Out Slave In) – na tomto portu MASTER vysílá, SLAVE přijímá
SCK (Serial Clock) – na tomto portu běží něco jako hodiny a určuje rychlost komunikace. Tento port řídí vždy pouze MASTER a tedy není potřeba SLAVE synchronizovat
SS (Slave Select) slouží k výběru zařízení, se kterým bude komunikovat MASTER. Pokud je ve stavu HIGH, nereaguje SLAVE na příkazy, pokud je LOW ví SLAVE, že data jsou pro něj.
Např. zde je příklad SD karty a příkaz
Kód: Vybrat vše
// nastavení pinu CS pro SD kartu - pevně dané shieldem
const int sd_CS = 10;
Pročetl jsem si originální dokumentaci k SPI a v rozšířeném nastavení je uveden příklad nastavení SS pinu:
Kód: Vybrat vše
void setup(){
// initialize the bus for a device on pin 4
SPI.begin(4);
// initialize the bus for a device on pin 10
SPI.begin(10);
}
Kód: Vybrat vše
SPI.begin();