当前位置:首页 > 单片机 > 单片机
[导读]LPC2124有一个标准的I2C总线接口,可配置为主机或从机,总线时钟速率可调整,最高可支持400KHZ总线速率。使用I2C总线时,要将相应得引脚设置连接SCL和SDA,并且总线上要上拉电阻,阻值为1~10KΩ,依据所需要的

LPC2124有一个标准的I2C总线接口,可配置为主机或从机,总线时钟速率可调整,最高可支持400KHZ总线速率。使用I2C总线时,要将相应得引脚设置连接SCL和SDA,并且总线上要上拉电阻,阻值为1~10KΩ,依据所需要的总线速率而定。总线速率越高,电阻阻值应该越小。I2C总线可接标准I2C接口器件,如串行EEPROM、RAM、LCD、时钟芯片以及音调发生器。

根据方向位(R/W)状态的不同,I2C总线上存在以下两种类型的数据传输:

⑴从主发送器向从接收器发送数据。

主机发送得第一个字节是从机地址,接下来是数据字节流。从机每接收到一个字节返回一个应答位。

⑵从发送器向主接收器发送数据。

第一个字节(从地址)从主机发送。从机返回一个应答位。接下来从机向主机发送数据字节。主机每接收一个字节返回一个应答位。接收完最后一个字节,主机返回一个“非应答位”。主器件产生所有串行时钟脉冲和起始以及停止条件。出现停止条件或重复的起始条件时传输结束。由于重复的起始条件同时是下一个串行发送的开始,因此I2C总线不会被释放。

LPC2124的I2C是字节方式的I2C接口,只要把一字节数据写入I2C数据寄存器I2DAT后,即可由I2C接口自动完成所有的数据位发送。它有4种操作模式:主发送器模式、主接收器模式、从发送器模式和从接收器模式。


⑴主发送器模式

该模式中,数据从主机发送到从机。在进入主发送器模式之前,I2CONSET(I2C控制置位寄存器)必须按如下设置进行初始化:

I2CONSET --- I2EN STA STO SI AA --- ---

-- 1 0 0 0 0 -- --

说明如下:

I2EN=1,使能I2C接口;

AA=0,不产生应答信号,即不允许进入从机模式;

SI=0,I2C中断标志为0;

STO=0,停止标志为0;

STA=0,起始标志为0。


在该模式下,数据方向位(R/W)应为0表示执行写操作。因此第一个发送的字节为从地址(7位)和写方向位。数据的发送每次为8位,每发送完一字节,都接收到一个由从机返回的应答位。该模式的数据发送操作步骤如下:

① 通过软件置位STA,进入I2C主发送器模式,I2C逻辑在总线空闲后立即发送一个起始条件。

② 当发送完起始条件后,SI位置位。此时I2STAT(状态寄存器)中的状态代码为08H,该状态代码用于中断服务程序的处理。

③ 把从地址和写方向位装入I2DAT(数据寄存器),然后清零SI位(向I2CONCLR寄存器中得SIC位写入1可清零SI),开始发送从地址和写方向位。

④ 当从地址和写方向位已发送且接收到应答位后,SI位再次置位(可能的状态代码为18H,20H或38H)。

⑤ 当状态码为18H时,表明从机已应答,则可以将数据装入I2DAT,然后清零SI位,开始发送数据。

⑥ 当正确发送数据,SI位再次置位(可能的状态码为28H,30H)。此时可以再次发送数据或者置位STO结束总线。


⑵主接收器模式

在该模式下,主机所接收的数据字节来自从发送器,数据方向位应该为1表示执行读操作。该模式的数据接收操作步骤如下:

① 通过软件置位STA,进入I2C主发送器模式,I2C逻辑在总线空闲后立即发送一个起始条件。

② 当发送完起始条件后,SI位置位。此时I2STAT(状态寄存器)中的状态代码为08H,该状态代码用于中断服务程序的处理。

③ 把从地址和读方向位装入I2DAT(数据寄存器),然后清零SI位,开始发送从地址和读方向位。

④ 当从地址和读方向位已发送且接收到应答位后,SI位再次置位(可能的状态代码为38H,40H或48H)。

⑤ 当状态码为40H时,表明从机已应答。设置AA位,用来控制接收到数据后是产生应答信号还是产生非应答信号,然后清零SI位,开始接收数据。

⑥ 当正确接收到一个字节数据后,SI位再次置位(可能的状态码为50H或58H)。此时可以再次接收数据或者置位STO结束总线。


⑶从接收器模式

当配置为I2C从机时,I2C主机可以对它进行读、写操作。要初始化为从机用户必须将从地址写入I2ADR(从地址寄存器),并按如下配置I2CONSET:

I2CONSET --- I2EN STA STO SI AA --- ---

-- 1 0 0 0 1 -- --


在该模式下,从主发送器接收数据字节。当主机访问从机时,接收主机发送过来的数据,并产生应答信号。数据方向位应该为0表示写操作。该模式的数据接收操作步骤如下:

① 将从地址写入I2ADR并配置I2CONSET完成初始化。等待它被自身的从地址或通用地址寻址。

② 在接收到地址和方向位后,SI位置位并可从I2STAT中读出有效的状态代码。

③ 根据状态代码执行相应的操作。


⑷从发送器模式

当主机访问从机时,向主机发送数据,并等待主机的应答信号。数据方向位应该为1表示读操作。使用该模式时,用户程序只需根据各种状态码作出相应的操作。


I2C时钟由SCL占空比寄存器控制(I2SCLH、I2SCLL),分别设置SCL的高电平和低电平时间,获得合适的总线时钟频率。寄存器I2CONSET则用来控制I2C总线的模式及总线操作,其位SI为I2C中断标志位,所有总线操作都要依赖于这一标志;同时它又钳住总线,使总线的数据发送/接收得以同步控制。寄存器I2CONCLR则为对应的清零寄存器;I2STAT为I2C状态寄存器,用于指示总线处于哪种状态,以方便控制操作。I2DAT为I2C总线数据寄存器,包含要发送的数据或刚收到的数据。当系统作为从机时,I2ADR从机地址寄存器有效。当总线对此地址进行访问时,将会产生I2C中断。


I2C主机基本操作方法:

①设置I2C引脚连接;

②设置I2C时钟速率(I2SCLH、I2SCLL);

③设置为主机,并发送起始信号(I2CONSET的I2EN、STA位为1,AA位为0);

④发送从机地址(I2DAT),控制I2CONSET发送;

⑤判断总线状态(I2STAT),进行数据传输控制;

⑥发送结束信号(I2CONSET)。


I2C从机基本操作方法:

①设置I2C引脚连接;

②设置自身的从机地址(I2ADR);

③使能I2C(I2CONSET的I2EN、AA位为1);

④判断SI位或者等待I2C中断,等待主机操作;

⑤判断总线状态I2STAT,进行数据传输控制。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

特朗普集团近日取消了其新推出的T1智能手机“将在美国制造”的宣传标语,此举源于外界对这款手机能否以当前定价在美国本土生产的质疑。

关键字: 特朗普 苹果 AI

美国总统特朗普在公开场合表示,他已要求苹果公司CEO蒂姆·库克停止在印度建厂,矛头直指该公司生产多元化的计划。

关键字: 特朗普 苹果 AI

4月10日消息,据媒体报道,美国总统特朗普宣布,美国对部分贸易伙伴暂停90天执行新关税政策,同时对中国的关税提高到125%,该消息公布后苹果股价飙升了15%。这次反弹使苹果市值增加了4000多亿美元,目前苹果市值接近3万...

关键字: 特朗普 AI 人工智能 特斯拉

3月25日消息,据报道,当地时间3月20日,美国总统特朗普在社交媒体平台“真实社交”上发文写道:“那些被抓到破坏特斯拉的人,将有很大可能被判入狱长达20年,这包括资助(破坏特斯拉汽车)者,我们正在寻找你。”

关键字: 特朗普 AI 人工智能 特斯拉

1月22日消息,刚刚,新任美国总统特朗普放出重磅消息,将全力支持美国AI发展。

关键字: 特朗普 AI 人工智能

特朗普先生有两件事一定会载入史册,一个是筑墙,一个是挖坑。在美墨边境筑墙的口号确保边境安全,降低因非法移民引起的犯罪率过高问题;在中美科技产业之间挖坑的口号也是安全,美国企业不得使用对美国国家安全构成威胁的电信设备,总统...

关键字: 特朗普 孤立主义 科技产业

据路透社1月17日消息显示,知情人士透露,特朗普已通知英特尔、铠侠在内的几家华为供应商,将要撤销其对华为的出货的部分许可证,同时将拒绝其他数十个向华为供货的申请。据透露,共有4家公司的8份许可被撤销。另外,相关公司收到撤...

关键字: 华为 芯片 特朗普

曾在2018年时被美国总统特朗普称作“世界第八奇迹”的富士康集团在美国威斯康星州投资建设的LCD显示屏工厂项目,如今却因为富士康将项目大幅缩水并拒绝签订新的合同而陷入了僵局。这也导致富士康无法从当地政府那里获得约40亿美...

关键字: 特朗普 富士康

今年5月,因自己发布的推文被贴上“无确凿依据”标签而与推特发生激烈争执后,美国总统特朗普签署了一项行政令,下令要求重审《通信规范法》第230条。

关键字: 谷歌 facebook 特朗普

众所周知,寄往白宫的所有邮件在到达白宫之前都会在他地进行分类和筛选。9月19日,根据美国相关执法官员的通报,本周早些时候,执法人员截获了一个寄给特朗普总统的包裹,该包裹内包含蓖麻毒蛋白。

关键字: 美国 白宫 特朗普
关闭