Difference between revisions of "PIC"
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
| Line 14: | Line 14: | ||
#Test acknowledge bit (ACK=SSPCON2<6>)  | #Test acknowledge bit (ACK=SSPCON2<6>)  | ||
##if not acknowleded, abort  | ##if not acknowleded, abort  | ||
| + | |||
| + | Write:  | ||
| + | #Load data byte into SSPBUF  | ||
| + | #Test Buffer Full status bif (BD=SSPSTAT<0>)  | ||
| + | ##Loop until bit is cleared  | ||
| + | #Test acknowledge bit (ACK=SSPCON<6>)  | ||
| + | ##if not acknowledged, abort  | ||
| + | |||
| + | Read  | ||
| + | #Recieve Control Enable bit = 1 (RCEN=SSPCON<3>)  | ||
| + | #Test Buffer Full status bit (BF=SSPSTAT<0>)  | ||
| + | #Set acknowledge data=1 if data is recieved (ACKDT=SSPCON2<5>)  | ||
| + | #Enable Acknowlede bit=1 (ACKEN=SSPCON<4>)  | ||
| + | #Read data from SSPBUF  | ||
| + | |||
| + | Common termination  | ||
| + | #Stop Enable bit=1 (PEN=SSPCON2<2>)  | ||
| + | |||
| + | Repeated start  | ||
| + | #Repeated start enable bit =1 (RSEN=SSPCON2<1>)  | ||
Revision as of 20:19, 10 January 2007
Pic 18F452: I2C Programming W/O interrupts
(Remember to set directon SCK/SDA ports)
Initialization
- Enable Serial Bit = 1 (SSPEN=SSPCON<5>)
 - Synchronous Serial Port Mode Select Bits = 1011 (SSPM3-SSPM0=SSPCON<3:0>
 
Common Start
- Start Enable Bit = 1 ( SEN=SSPCON2<0>)
 - DelayMs(1)
 - Load Address into SSPBUF
 - Test Buffer Full status bit (BF=SSPSTAT<0>)
- loop until buffer bit is cleared
 
 - Test acknowledge bit (ACK=SSPCON2<6>)
- if not acknowleded, abort
 
 
Write:
- Load data byte into SSPBUF
 - Test Buffer Full status bif (BD=SSPSTAT<0>)
- Loop until bit is cleared
 
 - Test acknowledge bit (ACK=SSPCON<6>)
- if not acknowledged, abort
 
 
Read
- Recieve Control Enable bit = 1 (RCEN=SSPCON<3>)
 - Test Buffer Full status bit (BF=SSPSTAT<0>)
 - Set acknowledge data=1 if data is recieved (ACKDT=SSPCON2<5>)
 - Enable Acknowlede bit=1 (ACKEN=SSPCON<4>)
 - Read data from SSPBUF
 
Common termination
- Stop Enable bit=1 (PEN=SSPCON2<2>)
 
Repeated start
- Repeated start enable bit =1 (RSEN=SSPCON2<1>)