Differences
This shows you the differences between two versions of the page.
— |
spi [2019/03/31 14:49] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== SPI ====== | ||
+ | |||
+ | Watch this video [[https://www.youtube.com/watch?v=AuhFr88mjt0|link]]. | ||
+ | |||
+ | The SPI port has a bunch of settings that the bus pirate can let you control. | ||
+ | The first one is the speed. SPI is not like I2C. It is synchronous and sends out its | ||
+ | own clock and this is what governs the speed. SPI is full duplex meaning that reading | ||
+ | and writing happens at the same time over two seperate data lines. | ||
+ | |||
+ | It is a master-slave protocal where all communication is initiated by the | ||
+ | master. Addressing is done through a dedicated slave select line to to each | ||
+ | peripheral. | ||
+ | |||
+ | SPI Lines are: | ||
+ | * MISO - Master In Slave Out | ||
+ | * MOSI - Master Out Slave In | ||
+ | * SCL - Serial Clock Line | ||
+ | * SS - Slave Select Line (for every peripheral) | ||
+ | |||
+ | A quick about SPI is that because it is a synchronous full duplex master/slave | ||
+ | bus, data can transfer can only be initiated by the master, including when the | ||
+ | master wants the slave to talk. This is why master has to send dummy bytes of | ||
+ | data when reading bytes back from the slave. | ||
+ | |||
+ | |||