Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив4 / Proshin_polnostyu_ves_kursach / pic18f2455_2550_4455_4550.pdf
Скачиваний:
49
Добавлен:
07.08.2013
Размер:
7.07 Mб
Скачать

PIC18F2455/2550/4455/4550

19.4.17.3Bus Collision During a Stop Condition

Bus collision occurs during a Stop condition if:

a)After the SDA pin has been deasserted and allowed to float high, SDA is sampled low after the BRG has timed out.

b)After the SCL pin is deasserted, SCL is sampled low before SDA goes high.

The Stop condition begins with SDA asserted low. When SDA is sampled low, the SCL pin is allowed to float. When the pin is sampled high (clock arbitration), the Baud Rate Generator is loaded with SSPADD<6:0> and counts down to ‘0’. After the BRG times out, SDA is sampled. If SDA is sampled low, a bus collision has occurred. This is due to another master attempting to drive a data ‘0’ (Figure 19-33). If the SCL pin is sampled low before SDA is allowed to float high, a bus collision occurs. This is another case of another master attempting to drive a data ‘0’ (Figure 19-34).

FIGURE 19-33: BUS COLLISION DURING A STOP CONDITION (CASE 1)

 

 

 

 

 

TBRG

 

TBRG

 

TBRG

 

 

SDA sampled

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

low after TBRG,

SDA

 

 

 

 

 

set BCLIF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SDA asserted low

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SCL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PEN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BCLIF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

SSPIF

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FIGURE 19-34: BUS COLLISION DURING A STOP CONDITION (CASE 2)

TBRG

TBRG

 

TBRG

 

 

 

 

 

 

SDA

Assert SDA

SCL

PEN

BCLIF

SCL goes low before SDA goes high, set BCLIF

P

0

SSPIF

 

0

2007 Microchip Technology Inc.

Preliminary

DS39632D-page 235

PIC18F2455/2550/4455/4550

TABLE 19-4: REGISTERS ASSOCIATED WITH I2C™ OPERATION

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Reset

Name

 

Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

 

Bit 2

Bit 1

Bit 0

Values

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

on Page

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

INTCON

 

GIE/GIEH

PEIE/GIEL

TMR0IE

INT0IE

RBIE

 

TMR0IF

INT0IF

RBIF

51

PIR1

 

SPPIF(1)

ADIF

RCIF

TXIF

SSPIF

 

CCP1IF

TMR2IF

TMR1IF

54

PIE1

 

SPPIE(1)

ADIE

RCIE

TXIE

SSPIE

 

CCP1IE

TMR2IE

TMR1IE

54

IPR1

 

SPPIP(1)

ADIP

RCIP

TXIP

SSPIP

 

CCP1IP

TMR2IP

TMR1IP

54

PIR2

 

OSCFIF

CMIF

USBIF

EEIF

BCLIF

 

HLVDIF

TMR3IF

CCP2IF

54

PIE2

 

OSCFIE

CMIE

USBIE

EEIE

BCLIE

 

HLVDIE

TMR3IE

CCP2IE

54

IPR2

 

OSCFIP

CMIP

USBIP

EEIP

BCLIP

 

HLVDIP

TMR3IP

CCP2IP

54

TRISC

 

TRISC7

TRISC6

 

TRISC2

TRISC1

TRISC0

54

TRISD(1)

 

TRISD7

TRISD6

TRISD5

TRISD4

TRISD3

 

TRISD2

TRISD1

TRISD0

54

SSPBUF

 

MSSP Receive Buffer/Transmit Register

 

 

 

 

 

 

 

52

 

 

 

 

 

 

 

 

 

 

 

SSPADD

 

MSSP Address Register in I2C Slave mode.

 

 

 

 

 

 

 

52

 

 

MSSP Baud Rate Reload Register in I2C Master mode.

 

 

 

 

 

 

TMR2

 

Timer2 Register

 

 

 

 

 

 

 

 

 

 

 

52

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PR2

 

Timer2 Period Register

 

 

 

 

 

 

 

 

 

 

 

52

 

 

 

 

 

 

 

 

 

 

 

 

SSPCON1

 

WCOL

SSPOV

SSPEN

CKP

SSPM3

 

SSPM2

SSPM1

SSPM0

52

 

 

 

 

 

 

 

 

 

 

 

 

SSPCON2

 

GCEN

ACKSTAT

ACKDT

ACKEN

RCEN

 

PEN

RSEN

SEN

52

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SSPSTAT

 

SMP

CKE

 

 

 

P

S

 

 

 

 

UA

BF

52

 

D/A

 

 

R/W

 

 

 

 

 

 

 

 

 

 

 

Legend:

 

— = unimplemented, read as ‘0’. Shaded cells are not used by the MSSP in I2C™ mode.

 

Note 1:

These registers or bits are not implemented in 28-pin devices.

 

 

 

 

 

 

DS39632D-page 236

Preliminary

2007 Microchip Technology Inc.

Соседние файлы в папке Proshin_polnostyu_ves_kursach