I have seen many SD breakout boards that connects through SPI but I have never seen one with I2C, I2C seems more complex to set up if you don't use a mcu with inbuilt support/library.
If you would compare the two using a arduino the I2C is simpler, just include the Wire library and its not much more difficult than that. But SPI is not just to connect 4(or more. It depends) wires and go, you have to configure the communications with few parameters, its not hard at all but it is more to do than I2C.
I2C standard speed is 400kHz, while SPI is 1-4MHz.
Using I2C each slave has a address, communication begins with the master sending out the address. Then the slave who's address was called starts listening and all others goes deff, then the communication works as:
Master sends one byte(address), slave send an acknowledgment, master sends more commands, slave sends acknowledgment or if the slave has been directed to send data it does that.
While SPI uses a clock signal and one line for transmit, one line for receive and one slave select line. Each slave needs its own slave select(SS) line, when the master wants to talk to a slave it pulls that slaves SS line low(its set high for idle, most often I think but it can vary)
when the slave notices the SS line going low the communication start, and on each clock cycle(ether on rising or falling edge, it depends on specific chip) both transmit and receive lines send data.
After writing this I would say that SPI is the one for you, my specs is quite different but I am currently working on the same thing. I have a arduino Due which I will build around before replacing it with a stand alone SAM3 or SAM4 mcu, I have had my eyes on a quad channel 16bit simultaneously sampling ADC(SPI) from TI. It can ether send the result from the 4 ADCs on one line or it can send the result of each channel on its own line, could you elaborate on the 6 channels?
Where or from what does the come?
- - - Updated - - -
from some site:
I2C requires only two wires, while SPI requires three or four.
SPI supports higher speed full-dulex communication while I2C is slower.
I2C draws more power than SPI.
I2C supports multiple devices on the same bus without additional select signal lines through in-communication device addressing while SPI requires additional signal lines to manage multiple devices on the same bus.
I2C ensures that data sent is received by the slave device while SPI does not verify that data is received correctly.
I2C can be locked up by one device that fails to release the communication bus.
SPI cannot transmit off the PCB while I2C can, albeit at low data transmission speeds.
I2C is cheaper to implement than the SPI communication protocol.
SPI only supports one master device on the bus while I2C supports multiple master devices.
I2C is less susceptible to noise than SPI.
SPI can only travel short distances and rarely off of the PCB while I2C can transmit data over much greater distances, although at low data rates.
The lack of a formal standard has resulted in several variations of the SPI protocol, variations which have been largely avoided with the I2C protocol.