lpc2124具有标准i2c总线接口,可以配置为主机或从机。总线时钟速率可调,最大总线速率可支持400khz。使用i2c总线时,相应的管脚设置要连接到scl和sda,总线要有一个上拉电阻,电阻值为1~10kω,具体视所需总线速度而定。总线速度越高,电阻应该越小。i2c总线可以连接标准的i2c接口设备,如串行eeprom,ram,lcd,时钟芯片和音频发生器。
根据方向位(r/w)的状态,i2c总线上有两种类型的数据传输:
(1)从主发送器向从接收器发送数据。
主机发送的第一个字节是从机地址,随后是数据字节流。从机每接收一个字节就返回一个应答位。
(2)从发射机向主接收机发送数据。
第一个字节(从机地址)从主机发送。从机返回一个应答位。接下来,从机向主机发送数据字节。主机为其接收的每个字节返回一个应答位。接收到最后一个字节后,主机返回一个"非应答位"。主机产生所有串行时钟脉冲以及起始和停止条件。当停止条件或重复开始条件出现时,传输结束。由于重复开始条件也是下一个串行传输的开始,i2c总线将不被释放。
lpc2124的i2c是一个基于字节的i2c接口。只要将一个字节的数据写入i2c数据寄存器i2dat,所有数据位都可以由i2c接口自动发送。它有四种工作模式:主发送器模式、主接收器模式、从发送器模式和从接收器模式。
(1)主发射器模式
在这种模式下,数据从主机发送到从机。进入主发送器模式前,i2c控制设置寄存器必须初始化如下:
我从sto来到这里
-10000--
解释如下:
i2en1,启用i2c接口;
aa0,不产生响应信号,即不允许进入从模式;
si0,i2c中断标志为0;
sto0,停止标志为0;
sta0,起始标志为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结束总线。
(2)主接收器模式
在这种模式下,主机接收的数据字节来自从机发送器,数据方向位应为1,以指示读取操作。该模式的数据接收操作步骤如下:
①通过软件设置sta进入i2c主发送器模式,总线空闲后,i2c逻辑立即发送初始条件。
②发送初始条件时,si位被置位。此时,i2stat(状态寄存器)中的状态码为08h,用于中断服务程序。
③将从机地址和读取方向位载入i2dat(数据寄存器),然后清除si位并开始发送从机地址和读取方向位。
④当从机地址和读取方向位已发送且回复位已接收时,si位再次置位(可能的状态代码为38h、40h或48h)。
⑤当状态码为40h时,表示从机已应答。设置aa位以控制接收数据后是产生应答信号还是不应答信号,然后清除si位以开始接收数据。
⑥当正确接收到一个字节的数据时,si位再次置位(可能的状态码是50h或58h)。此时,您可以再次接收数据或设置sto结束总线。
(3)从接收机模式
当配置为i2c从机时,i2c主机可以对其进行读写。要初始化为从机,用户必须将从机地址写入i2adr(从机地址寄存器),并按如下配置i2conset:
我从sto来到这里
-10001--
在这种模式下,从主发送器接收数据字节。当主机访问从机时,它接收主机发送的数据并产生应答信号。数据方向位应该为0,以指示写操作。该模式的数据接收操作步骤如下:
①将从机地址写入i2adr,并配置i2conset以完成初始化。等待它被自己的从机地址或通用地址寻址。
②接收到地址和方向位后,可以设置si位,并从i2stat读取有效状态码。
③根据状态代码执行相应的操作。
(4)从发射机模式
当主机访问从机时,它向主机发送数据等待主人s回复信号。数据方向位应该为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,控制数据传输。
最高支持2933mhzddr4ram。
四个cpu都将运行inteluhdigpu,时钟范围在350mhz到1450mhz之间。在此基础上,i511400提升加速频率0.1ghz,默认内存支持频率升级至3200mhz,ipc性能提升19%,比i511400h更好更强。