基本信息
文件名称:NXP 系列:LPC1768 系列_(12).LPC1768系列I2C接口.docx
文件大小:24.77 KB
总页数:24 页
更新时间:2025-06-05
总字数:约1.23万字
文档摘要

PAGE1

PAGE1

LPC1768系列I2C接口

I2C接口概述

I2C(Inter-IntegratedCircuit)是一种用于短距离通信的串行总线协议,由Philips公司(现为NXPSemiconductors)在1980年代初开发。I2C总线使用两根线进行通信:SDA(串行数据线)和SCL(串行时钟线)。I2C接口支持多主设备和多从设备,每个设备都有一个唯一的7位地址,主设备通过地址选择从设备进行通信。I2C总线的数据传输速率通常为100kbps到400kbps,但在高速模式下可达3.4Mbps。

LPC1768系列微控制器集成了两个I2C接口,分别为I2C0和I2C1。这些接口支持标准模式(100kbps)和快速模式(400kbps),并且可以配置为主设备或从设备模式。I2C接口主要用于与各种传感器、EEPROM、ADC等外设进行通信。

I2C接口寄存器

LPC1768的I2C接口通过一组寄存器进行控制和管理。这些寄存器包括:

I2CCONSET(ControlSetRegister):用于设置I2C接口的操作模式。

I2CCONCLR(ControlClearRegister):用于清除I2C接口的控制位。

I2CSTAT(StatusRegister):用于读取I2C接口的状态。

I2CDATA(DataRegister):用于读取或写入数据。

I2CSCLH(SCLHighPeriodRegister):用于设置SCL线上的高电平周期。

I2CSCLL(SCLLowPeriodRegister):用于设置SCL线上的低电平周期。

I2CSTHR(StartandStopTransmitHoldingRegister):用于设置启动和停止条件的保持时间。

I2CMTPUP(MasterTransmitPulseUpRegister):用于设置主设备传输脉冲的上升时间。

I2CI2CMSC:用于设置I2C接口的中断使能和状态。

I2CCONSET寄存器

I2CCONSET寄存器用于设置I2C接口的操作模式,其主要位包括:

I2EN(I2CEnable):使能或禁用I2C接口。

AA(AssertAcknowledge):控制是否发送应答信号。

SI(SerialInterface):表示是否有数据可发送或接收。

STO(StopCondition):生成停止条件。

STA(StartCondition):生成启动条件。

I2CEN:使能I2C接口。

I2CCONCLR寄存器

I2CCONCLR寄存器用于清除I2C接口的控制位,其主要位包括:

SI_C(SerialInterfaceClear):清除SI位。

STO_C(StopConditionClear):清除STO位。

STA_C(StartConditionClear):清除STA位。

ICC_C(InterruptClearClear):清除中断请求。

I2CSTAT寄存器

I2CSTAT寄存器用于读取I2C接口的状态,其主要位包括:

AL(ArbitrationLost):表示仲裁失败。

BUSY(BusBusy):表示总线忙。

RX_ACK(ReceivedAcknowledge):表示接收到应答信号。

TX_EMPTY(TransmitBufferEmpty):表示发送缓冲区为空。

STATE:表示当前的传输状态。

I2CDATA寄存器

I2CDATA寄存器用于读取或写入数据,其主要功能包括:

DATA:8位数据寄存器,用于读取或写入数据。

I2CSCLH和I2CSCLL寄存器

I2CSCLH和I2CSCLL寄存器用于设置SCL线上的高电平周期和低电平周期,以控制I2C总线的时钟频率。

SCLH:设置SCL线上的高电平周期。

SCLL:设置SCL线上的低电平周期。

I2CSTHR寄存器

I2CSTHR寄存器用于设置启动和停止条件的保持时间,以确保I2C总线的稳定性。

START_HOLD:设置启动条件的保持时间。

STOP_HOLD:设置停止条件的保持时间。

I2CMTPUP寄存器

I2CMTPUP寄存器用于设置主设备传输脉冲的上升时间,以确保信号的完整性。

MTP_UP:设置主设备传输脉冲的上升时间。

I2CI2CMSC寄存器

I2CI2CMSC寄存器用于设置I2C接口的中断使能和状态。

INTEN(InterruptEnable):使能或禁用I2C中断。

STAT(Status):表示I2C中断的状态。

I2C接口配置

初始化I2C接口

在使用I2C接口之前,需要进行初始化配置。