Posts

Showing posts from September, 2010

Linux SPI

My notes while reading about Linux and SPI. De facto - no standardization like i2c/smbus. Master/slave like i2c Faster clock 10MHz vs 400kHz i2c Full duplex, unlike i2c. Daisy chaining (in addition to / instead of) wired-AND bus like i2c. Dedicated chip select signals instead of i2c addressing. Linux software support only applies to master side, like i2c. Four clocking modes (?) - CPOL - clock starts low(0)/high(1) - CPHA - sample data on leading(0)/trailing(1) edge Signals - SCK - clock, idle when not used like in i2c - MOSI: Master Out, Slave In - MISO: Master In, Slave Out - nCSx: Chip select(s) - device specific signals Generally no interoperability above bit-level - word lengths vary. - endianness varies - no discovery or enumeration mechanism Subsets - MicroWire: half duplex - Synchronous serial protocl SSP - Programmable serial protocol PSP - three wire SPI with single data signal MOMI/SISO SPI slave chips - DataFlash <> driver name - probed based spi_board_info associate