PIC 16F877 I2C Introduction

Most of PIC controllers specially 16F and 18F series have onchip I2C Modules. In this section of tutorial we are going to talk about PIC16F877A I2C Module and all derivatives of PIC has same module i.e. similar registers to configure. Lets take a look at the important registers which are to be configured to make I2C modules active and running on a PIC microcontroller.

For I2C master mode, there are three important register are to be configured

  • SSPSTAT: MSSP Status Register
  • SSPCON1: MSSP Control Register 1
  • SSPCON2: MSSP Control Register 2

SSPSTAT:

SSPCON1:

SSPCON2:

Baudrate Generator

In I2C Master mode, the Baud Rate Generator (BRG) reload value is placed in the lower 7 bits of the SSPADD register (Figure 9-17). When a write occurs to SSPBUF, the Baud Rate Generator will automatically begin counting. The BRG counts down to 0 and stops until another reload has taken place. In I2C Master mode, the BRG is reloaded automatically.

PIC16F877A - SSPADD as baudrate generator
  Choose Skin