I2C
I²C是一种串行计算机总线,由NXP半导体(飞利浦半导体)发明。 I²C 总线用于将低速外围集成电路连接到微控制器和处理器。 I²C 总线使用两条双向开漏线,例如 SDA(串行数据线)和 SCL(串行时钟线),它们通过电阻上拉。 I²C 总线允许主设备开始与从设备通信。 数据在这两个设备之间交换。 使用的典型电压为 +3.3V 或 +5V,但允许使用具有额外电压的系统。 如今,新的微控制器内置了 I²C 寄存器。 PIC16F877A 也有单独的 I2C 寄存器。 与 UART 不同,您可以使用相同的 I2C 总线连接多个设备并与之通信。
大多数 PIC 单片机都内置了主同步串行端口 (MSSP)。
1、主同步串行端口 (MSSP)
主同步串行端口 (MSSP) 模块是一个串行接口,可用于与其他外设或微控制器设备进行通信。 这些外围设备可能是串行 EEPROM、移位寄存器、显示驱动器、A/D 转换器等。 MSSP 模块可以在以下两种模式之一下运行:
- 串行外设接口 (SPI)
- 内部集成电路 (I2C)
I2C 接口在硬件上支持以下模式:
在本文中,我们将学习如何将 PIC 微控制器的 MSSP 模块作为 I2C 主设备进行操作。 并且 EEPROM 将充当从设备。
I2C 模式下的 MSSP 模块完全实现了所有主从功能(包括通用调用支持),并在硬件中提供开始和停止位中断以确定空闲总线(多主功能)。 MSSP 模块实现标准模式规范以及 7 位和 10 位寻址。 两个引脚用于数据传输:
- 串行时钟 (SCL) – RC3/SCK/SCL
- 串行数据 (SD