![]() |
|||||||||||||||||||
![]()
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() I use
and
recommend Firefox for the best internet browsing experience. Click below for your free copy today: CLICK
THE IMAGE:
Note:
I find it faster
and easier to use and it has great plugins. It even imports all your current browser settings! There's
no risk as your existing browser is not affected in any way - you can just choose which
one to use.
|
|
Useful For You. Readers
comments
|
|||||||||||||||||
SPI interface tutorial.SPI Interface or Serial Peripheral Interface bus is as you might expect a serial interface meaning data is shifted out (and in) one bit at a time.
More Resources...
It is simply based on an 8 bit shift register shifting data out on a single pin and shifting data in on another pin. Note: some devices use more than 8 bits! Its main use is to replace parallel interfaces so you don't have to route parallel buses around a pcb. For
example you can buy an SPI
12bit ADC and instead of 12 parallel wires to read the data you only
need 4 SPI connections. Actually you may only need three as
you may not need to send data to the device!With the SPI interface you can communicate with a device transmitting and receiving 8 bits of data at the same time and it is suited to high speed streaming data transfers. Note: The trade off between using a parallel interface and the SPI interface is speed e.g. if you
read a parallel 12bit ADC at 200ksps then you could read the device at
a 200kHz rate but if you want to get the same data rate using SPI then
you need a serial speed of 200kHz x 12 = 2.4MHz. So the
actual trade off is speed and the consequential noise introduced
into the circuit.Unlike I2C there is no concept of transferring ownership of the bus i.e. changing bus master and there are no slave device addresses. SPI is a much simpler protocol and because of this you can operate it at speeds greater than 10MHz (compared with the 3.4MHz maximum for I2C). The best feature of SPI is that you can do full duplex data transfers (data in both directions at the same time) which you can not do with I2C and you can do it fast. Note: The maximum rate for a PIC Micro using a 20MHz clock is 5MHz. SPI Interface : Signals
[] denotes SPI naming convention Here is the setup for a single SPI device connection: SPI
Interface - single device
![]() Note: The chip select signal SS is optional for a single device system as you could tie the SS input at the slave low if the other lines are dedicated to SPI use. There are two ways to implement multiple slave operation:
SIP Interface : Using chip selectsSPI
Interface using separate chip selects
![]() With this scheme you control each slave device using its chip select line (usually active low- red arrows show control lines). When disabled the Data output from the slave goes into a high impedance state so it does not interfere with the currently selected slave and the data input is ignored (check datasheet). The advantage of this scheme is that you can consider each device separately when you compare it with the daisy chain method. SPI Interface : Daisy chaining![]() Compared to I2C these are very inelegant slave selection mechanisms and look like kludges to get round the fact that SPI was designed really as a simple single master to single slave protocol. Having said that the above methods will work but for daisy chaining you will have to be careful of clock polarity and clock use as this is not defined in the SPI standard. SPI Interface : Clock and DataHow a device reacts to clock
input is undefined!!!
Data can be sampled at the rising or falling edge and data can be generated after the rising or falling edge! This is why you can set the clock output from a master mode device in multiple ways just look at the diagram below - the first four signals are the four options you have to select the output clock. SPI Interface PIC signals
(extract from DS39582B)
![]() You match the output clock to the clock that your device requires. Note: This is why daisy chaining may not be a good idea (or you have to think very carefully about it!). Note: For Master or Slave mode when using PICs you need to set the TRIS direction of the SCK pin appropriately. Problems with the SPI interface
Advantages of the SPI interface
Jump from SPI Interface to Best-Microcontroller-Projects Home Page |
|||||||||||||||||||
|
|||||||||||||||||||
|
|||||||||||||||||||