PIC16CR58A Microchip Technology, PIC16CR58A Datasheet - Page 104

no-image

PIC16CR58A

Manufacturer Part Number
PIC16CR58A
Description
ROM-Based 8-Bit CMOS Microcontroller Series
Manufacturer
Microchip Technology
Datasheets

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
PIC16CR58A-04/P042
Manufacturer:
MOTOROLA
Quantity:
80
PIC16C6X
FIGURE 11-27: OPERATION OF THE I
DS30234D-page 104
IDLE_MODE (7-bit):
if (Addr_match)
RCV_MODE:
if ((SSPBUF=Full) OR (SSPOV = 1))
else
Receive 8-bits in SSPSR;
Set interrupt;
XMIT_MODE:
While ((SSPBUF = Empty) AND (CKP=0)) Hold SCL Low;
Send byte;
Set interrupt;
if ( ACK Received = 1)
else if ( ACK Received = 0) Go back to XMIT_MODE;
IDLE_MODE (10-Bit):
If (High_byte_addr_match AND (R/W = 0))
else if (High_byte_addr_match AND (R/W = 1)
{
}
{
}
{
}
{
else PRIOR_ADDR_MATCH = FALSE;
}
Set SSPOV;
Do not acknowledge;
send ACK = 0;
Set interrupt;
if ((SSPBUF = Full) OR ((SSPOV = 1))
else
if (PRIOR_ADDR_MATCH)
transfer SSPSR
PRIOR_ADDR_MATCH = FALSE;
{
}
{
}
{
}
{
}
{
}
Do not acknowledge;
Set UA = 1;
Send ACK = 0;
While (SSPADD not updated) Hold SCL low;
Clear UA = 0;
Receive Low_addr_byte;
Set interrupt;
Set UA = 1;
If (Low_byte_addr_match)
send ACK = 0;
set XMIT_MODE;
Set SSPOV;
Applicable Devices
61 62 62A R62 63 R63 64 64A R64 65 65A R65 66 67
SSPBUF;
Set interrupt;
if (R/W = 1)
else if (R/W = 0) set RCV_MODE;
End of transmission;
Go back to IDLE_MODE;
{
}
2
C MODULE IN IDLE_MODE, RCV_MODE OR XMIT_MODE
PRIOR_ADDR_MATCH = TRUE;
Send ACK = 0;
while (SSPADD not updated) Hold SCL low;
Clear UA = 0;
Set RCV_MODE;
{
}
Send ACK = 0;
set XMIT_MODE;
1997 Microchip Technology Inc.

Related parts for PIC16CR58A