0% found this document useful (0 votes)
77 views17 pages

Introduc) On To SPI and I2C: Dr. Farid Farahmand

The document provides an introduction to SPI and I2C serial communication protocols. It describes the key characteristics of SPI including its 4-wire configuration, synchronous operation, and master-slave architecture. An example SPI configuration is given for a master and slave chip. I2C is also introduced, noting its 2-wire design, synchronous transmission up to 400kbps, and addressing capabilities. An example I2C configuration is outlined for a master chip transmitting data.

Uploaded by

DavidNdct
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views17 pages

Introduc) On To SPI and I2C: Dr. Farid Farahmand

The document provides an introduction to SPI and I2C serial communication protocols. It describes the key characteristics of SPI including its 4-wire configuration, synchronous operation, and master-slave architecture. An example SPI configuration is given for a master and slave chip. I2C is also introduced, noting its 2-wire design, synchronous transmission up to 400kbps, and addressing capabilities. An example I2C configuration is outlined for a master chip transmitting data.

Uploaded by

DavidNdct
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Introduc)on

 to  SPI  and  I2C  

Dr.  Farid  Farahmand  


PIC  Serial    
Interface  
PIC  Out  for  MSSP    
(Master  Synchronous  Serial  Port)  
MSSP  Module  -­‐  SPI  
•  Supports  SPI  and  I2C  Protocols  
•  SPI:  Serial  Peripheral  Interface  
–  Applica)ons:  Interface  to  EEPROM,  ADC,    Sensors,  LCD  
–  Characteris)cs:  Slower  than  parallel  port,  fewer  signals    
•  SPI  General  Opera)on:    
–  4-­‐  Wire  communica)on  (clock,  data  in,  data  out,  CS)    
–  Synchronous  à  high  speed  interfaces  can  be  handled    
–  Master/Slave  configura)on  –  the  master  chip  controls  all  the  slaves  
and  provided  clock    
–  Uses  serial  data  exchange  protocols  (MSB  goes  out  first)    
–  Data  exchange  can  be  on  rising  or  falling  edge  of  the  clock      
RC4=  
SPI  Protocol     RC5=  

Interface   RC3=  

Write/Read  Characters  into    


SSPBUFF  
RC4=  
SPI  Protocol     RC5=  

Interface   RC3=  

Data  is  being  broadcasted  to  all  chips  


SPI  Applica)on  Example  
Registers:    
SSPCON1  
SSPSTAT  
TRISC  
SPI  Programing  Example  
•  Assume:    
–  Fosc  =  10  MHz;    
–  Data  Transfer  is  2.5  MHz    
–  Data  is  sampled  at  the  falling  edge  of  the  clock    
–  Data  sent  at  the  rising  edge  of  the  clock    
–  Idle  clock  state  is  HIGH    
•  What  will  be  the  configura)on  for  the  Master  
and  Slave  Chips    
•  Write  the  code  to  transmit  characters  
SPI  Programing  Example  (solu)on)  
Master  Mode  
–  SSPCON1  Register  
–  Set  to  SPI  Mater  Mode  Fosc/4  =  2.5  MHz    
–  SSPCON1  bit.CKP  =  1  
–  SSPCON1  bit.EN  =  1  
–  à  SSPCON1    =  0011  0000  

–  SSPSTAT  Register  
–  SSPSTAT  bit.SMP  =  0  ;  rising  edge;  idle  is  high  
–  SSPSTAT  bit.CKE  =  1  
–  SSPSTAT  bit.BF  =  0   –  TRISC  Register  
–  à  SSPSTAT    =  0100  0000   –  TRISCbit.SDO  (RC5)  =  0  
–  TRISCbit.SDI  (RC4)  =  1  
–  TRISCbit.SCK  (RC3)  =  0  
–  TRISCbit.SS  (RC0)  =  0  
–  à  TRSC    =  0001  0000  
SPI  Programing  Example  (solu)on)  
Slave  Mode  
–  SSPCON1  Register  
–  à  SSPCON1    =  0011  0100  

–  SSPSTAT  Register  (same)  


–  à  SSPSTAT    =  0100  0000  

Timing  Diagram  
–  TRISC  Register  
–  TRISCbit.SDO  (RC5)  =  0  
–  TRISCbit.SDI  (RC4)  =  1  
–  TRISCbit.SCK  (RC3)  =  1  
–  TRISCbit.SS  (RC0)  =  1  
–  à  TRSC    =  0001  1001  
SPI  Programing  Example  (solu)on)  
Master  Mode  Program  
–  Setup  TRISC,  SSPCON1,  &  SSPSTAT  
–  Set  ChiSel=0  
–  Write  a  charcter  (0x55)  into  SSPBUF  
–  Loop:  Check  if  SSPBUF.bit.BF  =  1  (buffer  is  
full)  
–  IF  so  :  MOVF          SSPBUFàWREG  
–  Set  ChipSel  =  1  (deac)vate  the  slave  chip)  

Timing  Diagram  
Inter-­‐Integrated  Circuit  (I2C)  Interface    
•  Created  by  Philips  Inc    
•  Designed  to  interface  ICs  on  PCB  boards  (I2C)    
•  Characteris)cs:    
–  2-­‐Wire  (SCK  &  SDA)  
–  Synchronous  (100  Kbs  or  400  Kbps)    
–  Master/Slave  modes  of  opera)on    
–  Addressing  can  be  7  or  10  bit  
Pin  Out  for  MSSP    
I2C  Interface    
I2C  Interface  
•  2-­‐  Wire  Interface    

Registers:    
SSPCON1  
SSPSTAT  
TRISC  
 
SSPCON2  (port  idle  or  not)  
SSPADD  (address)    
SSPSR    
SSPBUF  (data  read/write)  
I2C  Programing  Example  
•  Assume:    
–  Fosc  =  10  MHz;    
–  I2C  Master  Mode  
–  Transmission  Rate  is  100  KHz    
–  Enable  slew  rate  for  high  speed    
–  No  error  detec)on  
•  What  will  be  the  configura)on  for  the  Master  
•  Write  the  code  to  transmit  characters  
I2C  Programing  Example  (solu)on)  
Master  Mode  
–  SSPCON1  Register  
–  Set  to  SPI  Mater  Mode  Fosc/4  =  2.5  MHz    
–  SSPCON1  bit.CKP  =  1  
–  SSPCON1  bit.EN  =  1  
–  à  SSPCON1    =  0011  0000  

–  SSPSTAT  Register  
–  SSPSTAT  bit.SMP  =  0  ;  rising  edge;  idle  is  high  
–  SSPSTAT  bit.CKE  =  1  
–  SSPSTAT  bit.BF  =  0   –  TRISC  Register  
–  à  SSPSTAT    =  0100  0000   –  TRISCbit.SDO  (RC5)  =  0  
–  TRISCbit.SDI  (RC4)  =  1  
–  TRISCbit.SCK  (RC3)  =  0  
–  TRISCbit.SS  (RC0)  =  0  
–  à  TRSC    =  0001  0000  
Programing  Example  
Is  I2C  
Idle  
W  =  SSCON2  
If  bit0-­‐bit  4    of  SSPCON2  =  1  à  not  in  idle  mode  
Else:  Check  SSPSTATbit.RW;  If  1  à  Transmit   Is  TX  in  
  progress  
 
W  =  Character  
WREG=  
MOVWF        SSPBUF   Character  
 
 
Check  SSPSTATbit.BF  =  0     WREG=  
Character  
Go  to  next  Character  Transmission  
 
Is  FLAG  
cleared  

You might also like