Ahoj, rad bych upozornil ze u I2C se nemeni smer signalu - vstup/vystup, protoze se pouzivaji open-collector/wired-or (nebo cmos ekvivalenty), je to patrne z potreby pull-up odporu. Dalsi odlisnost je podpora multi-master na i2c, takze to nema 1 master jako na SPI (uvedeno v clanku..).
Jinak znova vyborny clanek! (obcas mam pocit ze ty minichybky jsou chytaky pro studenty;)
Mozno by bolo zaujimave spomenut, ze SPI podporuju aj pamatove karty SD a MMC. Je to vacsinou najjednoduchsi (aj ked nie najrychlejsi) sposob ako pripojit pamatovu kartu k mikrokontroleru.
Informacia v 5. casti, ze pre kazdu SPI periferiu je treba jeden CS/SS signal je _nespravna_.
Pri vacsom pocte periferii je mozne pouzit demultiplexer (napr. 74138) alebo iny adresovy dekoder s inou pevnou alebo programovatelnou logikou ako je CPLD alebo FPGA.
Ak by si to dotiahol do extremu tak mozes pouzit i I/O expander pripojeny na SPI, napr. MCP23S17 / MCP23S18. Ale pristup potom bude pomalsi.. vzdy je otazka co sa pripojuje. V jednom zapojeni sme radsej pouzili opacny postup - 100pinovy MCU namiesto 8 externych posuvnych registrov.. Je to rychlejsie, jednoduchsie, menej veci na osadenie, spolahlivejsie,... za tych par korun naviac to stoji za to :)
IMHO u popisu obrázku 9 je tato možnost zmíněna. Ono možností výběru zařízení pomocí CS je strašně moc, dokonce se dá použít posuvný registr, do něhož se napřed přes data vodič nasune požadovaná adresa a teprve druhá n-tice bitů již vede do vybraného zařízení.
Navzdory autorovu popisu umožňuje I2C sběrnice multimaster, neboli více masterů na jedné sběrnici.
Nepoužívá se to příliš často, osobně jsem to nikdy nepoužil, ale dokumentace o tom hovoří.