




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第第11章章 SPI、I2C与与TSI模块模块 11.1 串行外设接口串行外设接口SPI 11.2 I2C模块模块 11.3 触摸感应接口触摸感应接口TSI模块模块 11.4 本章小结本章小结 211.1 串行外设接口串行外设接口SPI11.1.1 串行外设接串行外设接SPI的基础知识的基础知识1SPI基本概念基本概念串行外设接口(串行外设接口(SPI,Serial Peripheral Interface)是)是Freescale公司推出的一种同步串行通讯接口,用于微公司推出的一种同步串行通讯接口,用于微处理器和外围扩展芯片之间的串行连接,现已发展成处理器和外围扩展芯片之间的串行连接,现已
2、发展成为一种工业标准。在阐述为一种工业标准。在阐述SPI的特性之前,我们先来了的特性之前,我们先来了解几个概念。解几个概念。1)主机)主机-从机从机SPI系统是典型的系统是典型的“主机主机-从机从机”(Master-Slave)系统。一系统。一个个SPI系统,由一个主机和一个或多个从机构成,主机系统,由一个主机和一个或多个从机构成,主机启动一个与从机的同步通讯,从而完成数据的交换。启动一个与从机的同步通讯,从而完成数据的交换。提供提供SPI串行时钟的串行时钟的SPI设备称为设备称为SPI主机或主设备主机或主设备(Master),其它设备则称为,其它设备则称为SPI从机或从设备(从机或从设备(S
3、lave)。)。 32)从机选择引脚)从机选择引脚 一些芯片带有从机选择引脚一些芯片带有从机选择引脚 (Slave Select)也称为片选)也称为片选引脚。若一个引脚。若一个MCU的的SPI工作于主机方式,则该工作于主机方式,则该MCU的的 引脚设为高电平。若一个引脚设为高电平。若一个MCU的的SPI工作于从机方工作于从机方式,当式,当 =0时表示主机选中了该从机,反之则未选中时表示主机选中了该从机,反之则未选中该从机。对于单主单从(该从机。对于单主单从(One master and one slave)系统,可以采用下图的接法。系统,可以采用下图的接法。 43)主出从入引脚)主出从入引脚M
4、OSI主出从入引脚主出从入引脚MOSI(Master Out/Slave In)是主机输出、)是主机输出、从机输入数据线。对于从机输入数据线。对于MCU被设置为主机方式,主机被设置为主机方式,主机送往从机的数据从该引脚输出。对于送往从机的数据从该引脚输出。对于MCU被设置为从被设置为从机方式,来自主机的数据从该引脚输入。机方式,来自主机的数据从该引脚输入。4)主入从出引脚)主入从出引脚MISO主入从出引脚主入从出引脚MISO(Master In/Slave Out)是主机输入、)是主机输入、从机输出数据线。对于从机输出数据线。对于MCU被设置为主机方式,来自被设置为主机方式,来自从机的数据从该
5、引脚输入主机。对于从机的数据从该引脚输入主机。对于MCU被设置为从被设置为从机方式,送往主机的数据从该引脚输出。机方式,送往主机的数据从该引脚输出。5)SPI串行时钟引脚串行时钟引脚SCKSPI串行时钟引脚串行时钟引脚SCK(Serial Clock)用于控制主机与)用于控制主机与从机之间的数据传输。串行时钟信号由主机的内部总从机之间的数据传输。串行时钟信号由主机的内部总线时钟分频获得,主机的线时钟分频获得,主机的SCK引脚输出给从机的引脚输出给从机的SCK引脚,控制整个数据的传输速度。在主机启动一次传引脚,控制整个数据的传输速度。在主机启动一次传送的过程中,从送的过程中,从SCK引脚输出自动
6、产生的引脚输出自动产生的8个时钟周期个时钟周期信号,信号,SCK信号的一个跳变进行一位数据移位传输。信号的一个跳变进行一位数据移位传输。 56)主出主入引脚)主出主入引脚MOMI主出主入引脚主出主入引脚MOMI(Master Out/Master In)是单线传)是单线传输时,主机的输出输入数据线,与输时,主机的输出输入数据线,与MOSI引脚复用。对引脚复用。对于于MCU被设置为主机方式,该引脚发送或接收从机的被设置为主机方式,该引脚发送或接收从机的数据。数据。7)从入从出引脚)从入从出引脚SISO从入从出引脚从入从出引脚SISO(Slave In/Slave Out)是单线传输时,)是单线传
7、输时,从机的输出输入数据线,与从机的输出输入数据线,与MISO引脚复用。对于引脚复用。对于MCU被设置为从机方式,该引脚发送或接收主机的数被设置为从机方式,该引脚发送或接收主机的数据。据。8)时钟极性)时钟极性表示时钟信号在空闲时是高电平还是低电平。表示时钟信号在空闲时是高电平还是低电平。9)时钟相位)时钟相位时钟信号时钟信号SCK的第一个边沿出现在第一位数据传输周期的第一个边沿出现在第一位数据传输周期的中央位置还是开始位置。的中央位置还是开始位置。 62SPI的数据传输的数据传输从主机从主机CPU发出启动传输信号开始,将要传送的数发出启动传输信号开始,将要传送的数据装入据装入8位移位寄存器,
8、并同时产生位移位寄存器,并同时产生8个时钟信号依次从个时钟信号依次从SCK引脚送出,在引脚送出,在SCK信号的控制下,主机中信号的控制下,主机中8位移位寄位移位寄存器中的数据依次从存器中的数据依次从MOSI引脚送出,到从机的引脚送出,到从机的MOSI引引脚后送入它的脚后送入它的8位移位寄存器。在此过程中,从机的数据位移位寄存器。在此过程中,从机的数据也可通过也可通过MISO引脚传送到主机中。所以,我们称之为全引脚传送到主机中。所以,我们称之为全双工主双工主-从连接(从连接(Full-Duplex Master-Slave Connections)。)。其数据的传输格式是高位(其数据的传输格式是
9、高位(MSB)在前,低位()在前,低位(LSB)在后。在后。3SPI模块的时序模块的时序SPI的数据传输是在时钟信号的数据传输是在时钟信号SCK(同步信号)的(同步信号)的控制下完成的。数据传输过程涉及到时钟相位与时钟极控制下完成的。数据传输过程涉及到时钟相位与时钟极性两个概念。所谓时钟极性是指时钟信号在空闲时是高性两个概念。所谓时钟极性是指时钟信号在空闲时是高电平还是低电平,所谓时钟相位是指时钟信号电平还是低电平,所谓时钟相位是指时钟信号SCK的第的第一个边沿出现在第一位数据传输周期的中央位置还是开一个边沿出现在第一位数据传输周期的中央位置还是开始位置。始位置。 74. 模拟模拟SPI对于不
10、带对于不带SPI串行总线接口的串行总线接口的MCU来说,可以使用软来说,可以使用软件来模拟件来模拟SPI的操作。例如:我们可以使用三个普通的操作。例如:我们可以使用三个普通I/O口,口,分别定义为分别定义为pin_SCK、pin_MISO、pin_MOSI来模拟来模拟SPI器器件的件的SCK、MISO、MOSI。我们假设某。我们假设某SPI外围芯片在外围芯片在SCK的上升沿输入数据和在下降沿输出数据。则我们初始化的上升沿输入数据和在下降沿输出数据。则我们初始化pin_SCK=1,在,在MCU正常工作后,置正常工作后,置pin_SCK=0。这样,。这样,MCU在输出在输出1位位SCK时钟的同时,
11、时钟的同时,SPI外围芯片串行左移一外围芯片串行左移一位,从而输出位,从而输出1位数据至位数据至MCU的的pin_MISO线。然后再置线。然后再置SCK为为1,则,则MCU的的pin_MOSI线输出线输出1位数据(先高位,后位数据(先高位,后低位)到低位)到SPI外围芯片。至此,模拟外围芯片。至此,模拟1位数据输入输出便完成位数据输入输出便完成了。此后再置了。此后再置SCK=0,模拟下,模拟下1位数据的输入输出位数据的输入输出,依,依此循环此循环8次,即可完成次,即可完成1次通过次通过SPI总线传输总线传输8位数据的操作。位数据的操作。对于在对于在SCK的下降沿输入数据和上升沿输出数据的器件,
12、则的下降沿输入数据和上升沿输出数据的器件,则应初始化应初始化pin_SCK=0,在,在MCU正常工作后,置正常工作后,置SCK=1,使,使SPI器件输出器件输出1位数据(位数据(MCU接收接收1位数据),之后再置位数据),之后再置SCK=1,使,使SPI外围芯片接收外围芯片接收1位数据(位数据(MCU发送发送1位数据),位数据),从而完成从而完成1位数据的传送。位数据的传送。 811.1.2 KL25的的SPI模块概述模块概述KL25内部具有两个内部具有两个SPI模块,分别是模块,分别是SPI0和和SPI1。这两。这两个模块除了时钟源不一样之外,其他的地方完全相同。个模块除了时钟源不一样之外,
13、其他的地方完全相同。SPI0的时钟源是总线时钟,的时钟源是总线时钟,SPI1的时钟源是系统时钟。的时钟源是系统时钟。下表为下表为KL25的的SPI引脚及引脚及 SD-FSL-KL25-EVB实际使实际使用的引脚。用的引脚。911.1.3 SPI模块寄存器模块寄存器1KL25内部内部SPI模块寄存器模块寄存器SPI0和和SPI1地址映射关系为:地址映射关系为:0 x4007_6000u+SPI_nub*0 x00001000u,其中,其中SPI_nub分分别可取别可取0或是或是1,分别代表,分别代表SPI0和和和和SPI1。两个。两个SPI除了时除了时钟源不一样之外,其他的操作完全一样,这里只详
14、细介钟源不一样之外,其他的操作完全一样,这里只详细介绍绍SPI0, SPI0寄存器映射如下表所示。对寄存器映射如下表所示。对SPI1的应用可的应用可参照参照SPI0。 102SPI控制寄存器控制寄存器1(SPIx_C1)SPI控制寄存器一般情况下只能复位时写一次,以控制寄存器一般情况下只能复位时写一次,以后不再对其写入,不再更改对后不再对其写入,不再更改对SPI的设置。的设置。SPIx_C1复位复位后各位为后各位为0。3SPI控制寄存器控制寄存器2(SPIx_C2)SPIx_C2寄存器用于寄存器用于SPI系统可选项的设置,复位后系统可选项的设置,复位后各位为各位为0。4SPI波特率寄存器波特率
15、寄存器(SPIx_BR)该寄存器用于为一个该寄存器用于为一个SPI主机设定预定标器和位速主机设定预定标器和位速率分频因子。它可以在任何时间被读取或写入,复位为率分频因子。它可以在任何时间被读取或写入,复位为0。115SPI状态寄存器(状态寄存器(SPIx_S)该寄存器有四个只读状态位,位该寄存器有四个只读状态位,位3、2、1和和0没有定义,没有定义,复位为复位为0,写入无效。,写入无效。6SPI数据寄存器数据寄存器(SPIx_D)读取该寄存器将返回从接收数据缓冲器中读取的数据。读取该寄存器将返回从接收数据缓冲器中读取的数据。写该寄存器将会把数据写入发送数据缓冲器。当写该寄存器将会把数据写入发送
16、数据缓冲器。当SPI被被配置为主模式时,写入数据到传输数据缓冲器发起一配置为主模式时,写入数据到传输数据缓冲器发起一次次SPI传输。传输。7匹配寄存器(匹配寄存器(SPIx_M)这个寄存器存储硬件比较值。当这个寄存器存储硬件比较值。当SPI接收数据缓冲区收到接收数据缓冲区收到的的值等于此硬件比较值时,的的值等于此硬件比较值时,SPI 匹配标志匹配标志 (SPMF) 置置位。位。 1211.1.4 SPI驱动构件封装驱动构件封装1SPI驱动构件封装要点分析驱动构件封装要点分析在进行在进行SPI编程时,首先在程序初始化部分必须进编程时,首先在程序初始化部分必须进行行SPI系统初始化。系统初始化。S
17、PI的初始化,主要是对的初始化,主要是对SPI控制寄存控制寄存器器SPIx_C1、SPIx_C2进行设置,定义进行设置,定义SPI工作模式、时工作模式、时钟的空闲电平及相位、允许钟的空闲电平及相位、允许SPI等,和对等,和对SPI的波特率寄的波特率寄存器存器SPIx_BR设置,波特率根据传送速度要求计算而得设置,波特率根据传送速度要求计算而得到。到。可以设计可以设计SPI构件的几个基本功能函数。构件的几个基本功能函数。(1)初始化函数:)初始化函数:void SPI_init(uint_8 SPI_No,uint_8 SPI_mode,uint_16 BaudRate);(2)发送一字节数据:
18、)发送一字节数据:uint_8 SPI_send1(uint_8 SPI_No,uint_8 data);(3)发送)发送N字节数据:字节数据:void SPI_sendN(uint_8 SPI_No,uint_8 n,uint_8 data); 13(4)接收一字节数据:)接收一字节数据:uint_8 SPI_receive1(uint_8 SPI_No);(5)接收)接收N字节数据:字节数据:uint_8 SPI_receiveN(uint_8 SPI_No,uint_8 n,uint_8 data);(6)使能)使能SPI中断:中断:void SPI_re_enable_int(uint
19、_8 SPI_No);(7)关闭)关闭SPI中断:中断:void SPI_disablere_int(uint_8 SPI_No);2SPI驱动构件头文件及源程序驱动构件头文件及源程序具体代码见书具体代码见书P294 1411.2 I2C模块模块11.2.1 I2C总线的基础知识总线的基础知识I2C(Inter-Integrated Circuit),可翻译为),可翻译为“集成电路集成电路互联总线互联总线”,有的文献缩写为,有的文献缩写为I2C、IIC,本书一律使,本书一律使用用I2C。主要用于同一电路板内各集成电路模块。主要用于同一电路板内各集成电路模块(Inter-Integrated,I
20、C)之间的连接。)之间的连接。1I2C总线的历史概况总线的历史概况1992年年PHILIPS首次发布首次发布I2C总线规范总线规范Version1.0,并取,并取得专利。得专利。1998年年PHILIPS发布发布I2C总线规范总线规范Version2.0。2001年年PHILIPS又发布了又发布了I2C总线规范总线规范Version2.1,完,完善和扩展了善和扩展了I2C总线的功能。目前较为著名的总线的功能。目前较为著名的I2C总线总线有有ST Microelectronics、Texas Instruments、Xicor、Intel、Maxim、Atmel、Analog Devices和和
21、Infineon Technologies等,等,I2C总线标准已经属于世界性的工业总线标准已经属于世界性的工业标准。标准。 152I2C总线特点总线特点(1)在硬件上,二线制的)在硬件上,二线制的I2C串行总线使得各串行总线使得各IC只只需最简单的连接,而且总线接口都集成在需最简单的连接,而且总线接口都集成在IC中,不需另中,不需另加总线接口电路。加总线接口电路。(2)I2C总线还支持多主控(总线还支持多主控(multi-mastering)。)。(3)串行的)串行的8位双向数据传输位速率在标准模式下位双向数据传输位速率在标准模式下可达可达100kbps(S08AW系列的系列的I2C模块只支
22、持标准模式),模块只支持标准模式),快速模式下可达快速模式下可达400kbps,高速模式下可达,高速模式下可达3.4Mbps。(4)连接到相同总线的)连接到相同总线的IC数量只受到总线最大电数量只受到总线最大电容(容(400pf)的限制。)的限制。 163I2C总线的硬件相关术语与典型电路总线的硬件相关术语与典型电路1)I2C总线硬件相关术语总线硬件相关术语(1)主机(主控器):在)主机(主控器):在I2C总线中,提供时钟信总线中,提供时钟信号,对总线时序进行控制的器件。号,对总线时序进行控制的器件。(2)从机(被控器):在)从机(被控器):在I2C系统中,除主机外的系统中,除主机外的其它设备
23、均为从机。其它设备均为从机。(3)地址:每个)地址:每个I2C器件都有自己的地址,以供自器件都有自己的地址,以供自身在从机模式下使用。身在从机模式下使用。(4)发送器:发送数据到总线的器件。)发送器:发送数据到总线的器件。(5)接收器:从总线接收数据的器件。)接收器:从总线接收数据的器件。(6)SDA(Serial DAta):串行数据线。):串行数据线。(7)SCL(Serial CLock):串行时钟线。):串行时钟线。172)I2C总线的典型电路总线的典型电路 3)I2C总线数据通信协议概要总线数据通信协议概要(1)I2C总线上数据的有效性总线上数据的有效性I2C总线以串行方式传输数据,
24、从数据字节的最高位总线以串行方式传输数据,从数据字节的最高位开始传送,每个数据位在开始传送,每个数据位在SCL上都有一个时钟脉冲相对应。上都有一个时钟脉冲相对应。在一个时钟周期内,当时钟线高电平时,数据线上必须保在一个时钟周期内,当时钟线高电平时,数据线上必须保持稳定的逻辑电平状态,高电平为数据持稳定的逻辑电平状态,高电平为数据1,低电平为数据,低电平为数据0。当时钟信号为低电平时,才允许数据线上的电平状态变化,当时钟信号为低电平时,才允许数据线上的电平状态变化,如下图所示。如下图所示。 18(2)I2C总线上的信号类型总线上的信号类型I2C总线在传送数据过程中共有四种类型信号,分别是开总线在
25、传送数据过程中共有四种类型信号,分别是开始信号、停止信号、重新开始信号和应答信号。始信号、停止信号、重新开始信号和应答信号。19 (3)I2C总线上数据传输格式总线上数据传输格式 由主机发送一个开始信号,启动一次由主机发送一个开始信号,启动一次I2C通信,主通信,主机对从机寻址,然后在总线上传输数据。机对从机寻址,然后在总线上传输数据。I2C总线上传送总线上传送的每一个字节均为的每一个字节均为8位,首先发送的数据位为最高位,每位,首先发送的数据位为最高位,每传送一个字节后都必须跟随一个应答位,每次通信的数传送一个字节后都必须跟随一个应答位,每次通信的数据字节数是没有限制的;在全部数据传送结束后
26、,由主据字节数是没有限制的;在全部数据传送结束后,由主机发送停止信号,结束通信。时钟线为低电平时,数据机发送停止信号,结束通信。时钟线为低电平时,数据传送将停止进行。传送将停止进行。204I2C总线寻址约定总线寻址约定I2C总线规定起始信号后的第一个字节为寻址字节,总线规定起始信号后的第一个字节为寻址字节,用来寻址被控器件,并规定数据传送方向。寻址字节由用来寻址被控器件,并规定数据传送方向。寻址字节由被控器的被控器的7位地址位(位地址位(D7D1位)和一位方向位(位)和一位方向位(D0位)位)组成。方向位为组成。方向位为0时,表示主控器将数据写入被控器,为时,表示主控器将数据写入被控器,为1时
27、表示主控器从被控器读取数据。时表示主控器从被控器读取数据。5主机向从机读主机向从机读/写写1个字节数据的过程个字节数据的过程1)主机向从机写)主机向从机写1个字节数据的过程个字节数据的过程首先主机产生首先主机产生START信号,然后发送一个信号,然后发送一个7位从机位从机地址,第地址,第8位是数据方向位(位是数据方向位(R/W),),0表示主机发送数表示主机发送数据,这时候主机等待从机的应答信号(据,这时候主机等待从机的应答信号(ACK),收到应),收到应答信号,发送要访问的地址,等待从机的响应信号,收答信号,发送要访问的地址,等待从机的响应信号,收到响应信号时,发送到响应信号时,发送1个字节
28、的数据,等待从机的响应信个字节的数据,等待从机的响应信号,当收到响应信号时,产生停止信号,结束发送信号号,当收到响应信号时,产生停止信号,结束发送信号21 2)主机从从机读)主机从从机读1个字节数据的过程个字节数据的过程首先主机产生首先主机产生START信号,然后发送一个从机地址,此信号,然后发送一个从机地址,此时该地址的第时该地址的第8位为位为0,表明是向从机写命令,主机等,表明是向从机写命令,主机等待从机的应答信号(待从机的应答信号(ACK),收到应答信号时,发送),收到应答信号时,发送要访问的地址,继续等待从机的应答信号,当主机收要访问的地址,继续等待从机的应答信号,当主机收到应答信号后
29、,主机要改变通信模式(主机将由发送到应答信号后,主机要改变通信模式(主机将由发送变为接收,从机将由接收变为发送),所以主机发送变为接收,从机将由接收变为发送),所以主机发送重新开始信号,然后发送一个从机地址,此时该地址重新开始信号,然后发送一个从机地址,此时该地址的第的第8位为位为1,表明将主机设置成接收模式(读),这,表明将主机设置成接收模式(读),这时主机等待从机的应答信号,当收到应答信号时,就时主机等待从机的应答信号,当收到应答信号时,就可以接收可以接收1个字节的数据,当接收完成后,主机发送非个字节的数据,当接收完成后,主机发送非应答信号,不再接收数据,主机进而产生停止信号,应答信号,不
30、再接收数据,主机进而产生停止信号,结束传送过程。结束传送过程。2211.2.2 KL25的的I2C模块概要与编程要点模块概要与编程要点1I2C模块概述模块概述KL25的的I2C与通用与通用I2C总线规格兼容;多主控总线规格兼容;多主控(Multimaster)操作;软件可编程操作;软件可编程64种不同的串行时钟频种不同的串行时钟频率;软件可选择应答位;中断驱动按位数据传输;带有率;软件可选择应答位;中断驱动按位数据传输;带有自动主从模式转换的仲裁丢失中断;呼叫地址判断中断;自动主从模式转换的仲裁丢失中断;呼叫地址判断中断;开始和结束信号产生和检测;重新开始信号产生和检测;开始和结束信号产生和检
31、测;重新开始信号产生和检测;应答位的产生和检测;总线被占用检测;一般呼叫识别;应答位的产生和检测;总线被占用检测;一般呼叫识别;10位扩展地址;支持位扩展地址;支持System Management Bus (SMBus) ;可编程电子脉冲滤波器;与从机地址匹配时从低功率模可编程电子脉冲滤波器;与从机地址匹配时从低功率模式被唤醒;可支持扩展从机地址;可支持式被唤醒;可支持扩展从机地址;可支持DMA。232外部引脚外部引脚MKL25Z128VLK4芯片共有芯片共有2个个I2C模块,分别标记模块,分别标记为为I2C0和和I2C1。它们并不是固定在哪几个引脚上,而是。它们并不是固定在哪几个引脚上,而
32、是通过端口引脚配置寄存器配置。通过端口引脚配置寄存器配置。I2C模块实际使用的引脚模块实际使用的引脚见下表。每个见下表。每个I2C模块的模块的SCL为时钟线,为时钟线,SDA为数据线。为数据线。2411.2.3 I2C寄存器寄存器I2C的两个模块,所有的终端用户可以访问的的两个模块,所有的终端用户可以访问的I2C寄寄存器共有存器共有22个,每个模块各有个,每个模块各有11个个8位寄存器,但每个模位寄存器,但每个模块常用的只有块常用的只有5个,这些寄存器复位为个,这些寄存器复位为0。下表给出了。下表给出了I2C的模块的模块0和模块和模块1常用的常用的10个寄存器,每个寄存器均可个寄存器,每个寄存
33、器均可“读读/写写”。251I2C地址寄存器地址寄存器1(I2Cx_A1)D7D1(AD7:1)当作为从机被寻址时,此字)当作为从机被寻址时,此字段包含段包含I2C模块所使用的初始从机地址。此字段用于模块所使用的初始从机地址。此字段用于7位位地址方案和地址方案和10位地址方案中的低位地址方案中的低7位。位。D0(0)保留位。这个只读字段是保留的,读取值保留位。这个只读字段是保留的,读取值为为0。2I2C分频寄存器(分频寄存器(I2Cx_F)D7D6(MULT)定义倍频因子定义倍频因子MUL。此因子与。此因子与SCL分频一起使用,以产生分频一起使用,以产生I2C波特率。波特率。D5D0(ICR)
34、时钟频率。此字段和时钟频率。此字段和MULT字段确字段确定定I2C波特率、波特率、SDA保持时间、保持时间、SCL开始保持时间和开始保持时间和SCL停止保持时间。停止保持时间。263I2C控制寄存器控制寄存器1(I2Cx_C1)D7(ICEN)I2C使能。使能使能。使能I2C模块的操作。模块的操作。0 禁用禁用, 1使能。使能。D6(IICEN I 2C)I2C中断使能。使能中断使能。使能I2C中断请求。中断请求。0 禁用,禁用,1使能。使能。D5(MST)主机模式选择。主机模式选择。D4(TX)传送模式选择。传送模式选择。D3(TXAK)传送应答使能。传送应答使能。D2(RSTA)重复开始。
35、重复开始。D1(WUEN)唤醒使能。唤醒使能。D0(DMAEN)DMA使能。使能。 274I2C状态寄存器(状态寄存器(I2Cx_S)D7(TCF)传输完成标志。该位在一个字节和应答信号传输完成标志。该位在一个字节和应答信号传输完成时被置位。传输完成时被置位。D6(IAAS)作为从机被寻址。作为从机被寻址。D5(BUSY)总线忙。总线忙。D4(ARBL)仲裁丢失。仲裁丢失。D3(RAM)扩展地址匹配。扩展地址匹配。D2(SRW)从机读从机读/写。写。D1(IICIF)中断标志。中断标志。D0(RXAK)接收应答。接收应答。 285I2C数据数据I / O寄存器(寄存器(I2Cx_D)在主机传送
36、模式,当数据被写入到这个寄存器后,数据在主机传送模式,当数据被写入到这个寄存器后,数据传输开始。首先发送最高位。在主机接收模式下,读取该寄存传输开始。首先发送最高位。在主机接收模式下,读取该寄存器开始接收下一个字节的数据。在从机模式下,同样的功能都器开始接收下一个字节的数据。在从机模式下,同样的功能都可以在地址匹配后发生后获得。在主模式和从模式下的传输开可以在地址匹配后发生后获得。在主模式和从模式下的传输开始时,始时,C1 TX位必须正确地反映所需的传输方向。位必须正确地反映所需的传输方向。11.2.4 I2C驱动构件封装驱动构件封装1I2C驱动构件封装要点分析驱动构件封装要点分析为了能更方便
37、的使用为了能更方便的使用I2C模块,我们对其进行封装。这样模块,我们对其进行封装。这样将大大简化在内核相同的芯片内的移植操作。按照构件的设计将大大简化在内核相同的芯片内的移植操作。按照构件的设计思想,因为本程序牵涉到了思想,因为本程序牵涉到了2块板子间的通信,故在编写程序块板子间的通信,故在编写程序的时候先保证主机程序的正确再去编写从机程序。的时候先保证主机程序的正确再去编写从机程序。2I2C驱动构件头文件及源程序驱动构件头文件及源程序 见书见书P310 2911.3 触摸感应接口触摸感应接口TSI模块模块触摸感应输入(触摸感应输入(TSI)模块具有高灵敏和强鲁棒性)模块具有高灵敏和强鲁棒性的
38、电容触摸感应检测能力。通过独立的可编程的电容触摸感应检测能力。通过独立的可编程的检测阈值和结果寄存器,的检测阈值和结果寄存器,TSI模块可以完成电模块可以完成电容的测量。容的测量。TSI模块在带有超低电流加法的低功模块在带有超低电流加法的低功耗模式下运行,能以一个触摸事件唤醒耗模式下运行,能以一个触摸事件唤醒CPU。它是一种稳定的电容测量模块,能够实现键盘它是一种稳定的电容测量模块,能够实现键盘触摸,旋转和滑动。触摸,旋转和滑动。 3011.3.1 触摸感应接口触摸感应接口TSI基础知识基础知识1TSI触摸感应原理触摸感应原理根据电子学的知识可知,未接地的电极与地之间存根据电子学的知识可知,未
39、接地的电极与地之间存在电容。人体可以当作是一个接地面(虚地)如下图所在电容。人体可以当作是一个接地面(虚地)如下图所示,当有人体接近电极板时,等效地增大了电极与地之示,当有人体接近电极板时,等效地增大了电极与地之间的有效面积,使电极板电容值增大。间的有效面积,使电极板电容值增大。TSI模块的内部机模块的内部机制可以实现对电极电容值的检测,并且可以设定触发检制可以实现对电极电容值的检测,并且可以设定触发检测事件的阈值。当检测到电容值大于设定阈值时,测事件的阈值。当检测到电容值大于设定阈值时,TSI的的触发标志位将置位,并可激活发出中断请求,从而实现触发标志位将置位,并可激活发出中断请求,从而实现
40、了触摸感应事件的响应。了触摸感应事件的响应。312TSI模块测量电容基本原理模块测量电容基本原理TSI模块内部具有两个电流源对外接电极进行充放模块内部具有两个电流源对外接电极进行充放电,在电极板上产生三角波信号。电极上三角波信号的电,在电极板上产生三角波信号。电极上三角波信号的频率随电极电容变化而变化,当电极电容增大时,三角频率随电极电容变化而变化,当电极电容增大时,三角波信号的频率减小,周期变大。波信号的频率减小,周期变大。TSI模块以一个内部振荡模块以一个内部振荡器产生的时钟信号为参考节拍,对电极上的三角波电压器产生的时钟信号为参考节拍,对电极上的三角波电压信号的周期进行测量计数,当三角波
41、电压信号周期增大信号的周期进行测量计数,当三角波电压信号周期增大时,对应计数值亦会增大。扫描的计数结果保存在时,对应计数值亦会增大。扫描的计数结果保存在TSI模模块的计数寄存器(块的计数寄存器(TSICNT)中,可以通过程序进行访问。)中,可以通过程序进行访问。 323关于外接电极及电气参数的说明关于外接电极及电气参数的说明电极是一块表面覆有绝缘材料的导电板,其与电极是一块表面覆有绝缘材料的导电板,其与TSI模块的基本连接方式如下图所示。模块的基本连接方式如下图所示。MCU的的TSI引脚与电引脚与电极板之间串联了一个限流电阻,防止电极上与极板之间串联了一个限流电阻,防止电极上与MCU之间之间的
42、电流过大损害的电流过大损害MCU。11.3.2 KL25的的TSI的基本工作原理的基本工作原理1外部引脚外部引脚MKL25Z128VLK4芯片只有一个芯片只有一个TSI模块,标记为模块,标记为TSI0。它的通道并不是固定在哪几个引脚上,而是通过。它的通道并不是固定在哪几个引脚上,而是通过可以引脚配置寄存器配置。根据可以引脚配置寄存器配置。根据MKL25Z128VLK4引脚引脚功能分配,可以配置为串口的引脚及功能分配,可以配置为串口的引脚及SD-FSL-KL25-EVB实际使用的引脚见下表。实际使用的引脚见下表。 33KL25的的TSI引脚及引脚及 SD-FSL-KL25-EVB使用的引脚使用的
43、引脚 342KL25的的TSI模块特点模块特点(1)支持多达)支持多达16个外部电极。(个外部电极。(2)在所有电源模)在所有电源模式下,自动检测电极电容量的改变。(式下,自动检测电极电容量的改变。(3)内部参考振荡)内部参考振荡器用于高精度测量。(器用于高精度测量。(4)可配置成软件或硬件扫描触发。)可配置成软件或硬件扫描触发。(5)完全支持飞思卡尔触摸感应软件库。()完全支持飞思卡尔触摸感应软件库。(6)能够从)能够从低功耗模式中唤醒低功耗模式中唤醒MCU。(。(7)温度补差和提供电压变)温度补差和提供电压变化。(化。(8)高度敏感的)高度敏感的16位结果寄存器。(位结果寄存器。(9)每个
44、电极)每个电极电容量测量次数可达电容量测量次数可达4096次。(次。(10)支持)支持DMA数据传输。数据传输。3操作模式操作模式(1)停止和低功耗停止)停止和低功耗停止(2)等待模式)等待模式(3)运行模式)运行模式4电容测量电容测量电极引脚电容测量使用双晶振的方法。电极引脚电容测量使用双晶振的方法。TSI电极晶电极晶振有它自己的频率,该频率取决于外部电极电容和振有它自己的频率,该频率取决于外部电极电容和TSI模模块配置。使用块配置。使用TSI参考晶振可以衡量外部电极晶振的时间。参考晶振可以衡量外部电极晶振的时间。电极电容的测量值直接和这个时间成比例。电极电容的测量值直接和这个时间成比例。
45、35(1)TSI电极振荡器电极振荡器TSI电极振荡器的电路是一个可配置的直流电源对电极振荡器的电路是一个可配置的直流电源对外部电极电容进行充电和放电。一个缓冲滞环规定了振外部电极电容进行充电和放电。一个缓冲滞环规定了振荡器的三角波电压,而三角波电压规定了充放电压的上荡器的三角波电压,而三角波电压规定了充放电压的上下限。应用于平板电容的电流源大小由下限。应用于平板电容的电流源大小由SCANCEXTCHRG位进行选择。位进行选择。振荡器频率由以下方程给出:振荡器频率由以下方程给出:F_elec=I/(2*C_(elec*V) )方程中:方程中:I: 直流电流大小,直流电流大小,Celec: 电极电
46、容,电极电容,V: 滞环三角波电压差值。滞环三角波电压差值。(2) 电极振荡器和计数器控制电极振荡器和计数器控制TSI振荡器频率信号首先要经过由振荡器频率信号首先要经过由GENCSPS定义定义的分频器,之后进入计数器。的分频器,之后进入计数器。GENCSNSCN位为每个位为每个外部电极定义了扫描的次数。外部电极定义了扫描的次数。 36引脚电容采样时间由模数计数器的值从引脚电容采样时间由模数计数器的值从0计算到它计算到它的最大值得出,最大值由的最大值得出,最大值由NSCN位定义。电极采样时间可位定义。电极采样时间可以用以下方程式表达:以用以下方程式表达:T_(cap_samp)=(PS*NSCN)/F_elec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业如何避免财务数据造假的风险
- 酒店热菜摆盘技巧手册
- 2025重庆市綦江区住房和城乡建设委员会招聘全日制公益性岗位人员1人笔试备考试题及答案解析
- 中学生应当具备的胸怀宽广
- 2025浙江温州瑞安市司法局编外人员招聘1人考试含答案
- 2025浙江宁波慈溪市白沙路街道公办幼儿园招聘派遣制工作人员3人笔试备考试题及答案解析
- 石油工程压裂井设计原则
- 政治实验预案
- 心理辅导服务制度细则规程方案制度
- 2025西藏自治区山南市面向湖北专项招募“三支一扶”人员笔试含答案
- 污水处理厂人员培训方案
- 苏教版五年级上册数学分层作业设计 5.5 小数乘小数(附答案)
- 现货黄金购买合同模板
- 学术道德与学术规范
- 《机械基础》课件-V带传动
- 全国大学英语六级词汇表
- 中职学校实训室管理制度及流程
- JJG 4-2015钢卷尺行业标准
- 汾酒代理合同
- 小米企业质量管理手册
- 高中物理《相互作用》大单元集体备课
评论
0/150
提交评论