Electronic – Transmitting ASCII ‘A’ over SPI Protocol

protocolspi

I'm working on a project that involves connecting directly from the TRS jack of an iPhone to a SPI port on a microcontroller.

So the iPhone is the master and the microcontroller is the slave

So let's say the left speaker channel of the iPhone is responsible for generating clock signals

Now how do I transmit for example a single ASCII byte 'A' from the master to the slave?

I can see that each time the clock edge rises ( let's say passes zero ), both master and slave read off a new bit — whatever the state of the respective MISO/MOSI

But how to byte-align?

Binary for 'A' is 0100 0001

How do we distinguish that leading 0 from the silence that preceded?

It seems to me that a sensible protocol would be to use 0xFF or something as a start Sentinel, and have the next byte dictate the number of bytes ( between 1 and 256 ) in the packet that is to come.

And then these bytes get sent one after the other, may be followed by a parity byte.

Maybe each byte would have parity bit…?

As soon as this ' packet ' has arrived, the decoder could start looking for another start Sentinel.

So that's how I would go about designing SPI. so I'm trying to find some documentation that tells me how it is actually done.

But I'm getting really frustrated bouncing around Google / Wikipedia / IRC

Is there someone out there who understands this protocol, and wouldn't mind giving me a really simple example usage — sending the single character 'A' via SPI

Best Answer

SPI devices also typically have a chip-select signal (sometimes referred to as a frame sync) that is used to multiplex devices on a single SPI bus. Thus, SPI is often referred to as a 3-wire or 4-wire interface (MISO, MOSI, CS, and CLK; for unidirectional devices, either MISO or MOSI can be omitted). A frame is typically assumed to start at the first bit after the chip-select signal is asserted, but every device has its own protocol. You'll need to adhere to whatever the other side of the link expects.

Related Topic