




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《嵌入式系统设计原理》STM32F40x的I2C通信模块原理主讲人:赖树明东莞理工学院05I2C总线控制与应用作业01I2C总线介绍02I2C总线时序03I2C总线时序编程04FT5206触摸屏驱动示例01I2C总线介绍总线概述总线物理拓扑结构总线通信原理总线特征I2C总线与UART比较I2C总线介绍总线概述01I2C又称IIC,即Inter-IntegratedCircuit(内部集成电路)。I2C总线是PHLIPS公司推出的一种串行同步通信总线。I2C总线有两根双向信号线,一根数据线SDA,另一根时钟线SCL。简介I2C总线应用非常广泛,尤其在传感器类芯片中,如温度湿度传感器、光强传感器,触摸屏传感器、加速度传感器。应用I2C总线介绍总线物理拓扑结构01拓普结构主从结构,一条总线并联多个设备,任何一时刻,只能有一个是主机,其他是从机。总线上每个从机都有一个惟一的设备地址,用于供主机寻址。通信只能由主机发起,主机对总线具备有绝对的控制权。IIC设备的接口内部是开漏输出,无法输出高电平,在硬件设计中,SDA,SCL线必须有上拉电阻,通过上拉电阻实现高电平输出,上拉电阻一般在4.7K~100K之间。I2C总线介绍总线通信原理01数据传输主机发送起始信号发送从机地址,并指明操作类型(读或写)方向位:1表示读数据,0表示写数据。等待从机发送应答信号。传输数据:如果是写操作则主机发送数据,如果读操作,则主机接收数据。应答周期:如果是写操作,则从机发送应答,如果是读操作,则主机发送应答。数据传送完毕后,主机发送停止总线信号。数值传递时先发送数据高位,再发送数据低位。传输说明I2C总线介绍总线特征01通信只能由主机主动发起,主机对通信过程具备绝对的控制权。I2C总线数据传输速率:标准模式可达100kbit/s(所有器件都支持);快速模式可达400kbit/s(大部分器件支持)高速模式可达3.4Mbit/s(少量新型器件支持)数据传输只能以字节(8位)为单位进行数据传输,先发送高位,再发送低位。同一时刻只能有一个设备是主设备,其他都是从设备,从设备地址是唯一的。通常MCU设备作为主设备,其他作为从设备(有多个MCU时总线会自动仲裁)。I2C设备地址有两种:7位地址和10位地址,其中7位地址的器件较常见。同一条总线上可以同时有7位地址设备和10位地址设备共存。重要特征I2C总线介绍总线特征01设备地址组成:由固化地址和可编程地址构成:固化地址:芯片出厂就固定了;可编程地址:由使用都硬件设计或软件配置决定的。示例:At24C02芯片设备地址:地址7位:高4位是固定为1010,这部分地址称为固化地址
低3位是:A2~A0,可编程地址,由硬件设计决定一条总线上可挂载的设备数量:理论上,只要能保证每个从设备地址惟一,7位地址模式可以挂载127个设备,10位地址挂载1023个设备(0不能用于设备地址),但是I2C总线上可挂接的设备数量受总线最大电容400pF限制。思考:一条总线可以接多少个AT24C02?8个!!重要特征I2C总线介绍I2C总线与UART比较01特征对比名称IIC总线UART通信方式同步、半双工异步、全双工数据位长度8位5~8位通信速度标准三种模式(实际上也要可以是极限速度下任何一个速度)很多种(但是一般都有固定的速度)结构主从设备通信不分主设备与从设备02I2C总线通信时序起始和停止条件应答和非应答信号三种通信过程时序波形I2C总线通信时序起始和停止条件时序02空闲状态:不进行数据传输时SDA和SCL状态,都维持高电平。起始条件:SCL为高电平期间,SDA线由高到低电平,SCL线为低电平。停止条件:SCL为高电平期间,SDA线由低电平到高电平。时序描述时序波形I2C总线通信时序应答和非应答信号02起始条件+8位数据(高位在前)+应答/非应答信号+停止条件。数据位:SCL线为低电平准备数据,SCL线为高电平采集数据。应答/非应答信号:在每传输1字节后,跟随一个应答位:SCL高电平期间,低电平表示应答信号,高电平表示非应答信号。应答信号/非应答信号是由接收方发出,发送方检测。时序描述主机写操作I2C总线通信时序三种通信过程02主机:1)发送起始条件
2)
发送7位地址数据(高位在前)+写方向;3)检测从机发的
应答/非应答信号;4)有应答时开始发送1字节数据;5)检测从机发的应答/非应答信号;6)循环执行4,5两步发送数据;7)发送停止条件,终止本次通信时序描述主机读操作I2C总线通信时序三种通信过程02主机:1)发送起始条件
2)
发送7位地址数据(高位在前)+读方向;3)检测从机发的
应答/非应答信号;4)有应答时开始接收1字节数据;5)发应答信号给从机(不需要更多数据时发送非答应信号);6)循环执行4,5两步接收数据;7)发送停止条件,终止本次通信时序描述主机读写切换I2C总线通信时序三种通信过程02IIC总线允许读/写过程中不停止总线而直接重新发送起始条件,来切换读/写操作,或重启总线重复原来的读写操作。时序描述03模拟I2C总线时序编程初始化函数起始条件实现停止条件实现发送应答信号实现接收应答信号实现发送一个字节数据接收一个字节数据voidIIC_GpioInit(void){RCC->AHB1ENR|=(1<<1);//PB使能
/*PB8---SCL*/GPIOB->MODER&=~(3<<16);GPIOB->MODER|=(1<<16);//PB8通用输出
GPIOB->OTYPER|=(1<<8);//输出开漏
/*PB9---SDA*/GPIOB->MODER&=~(3<<18);GPIOB->MODER|=(1<<18);//PB9通用输出
GPIOB->OTYPER|=(1<<9);//PB9开漏输出开漏
GPIOB->PUPDR&=~(3<<18);GPIOB->PUPDR|=(1<<18);//PB9上拉
/*初始化为空闲状态*/
SCL_H();SDA_H();}模拟I2C总线时序编程初始化函数03使用GPIO模拟IIC总线,IO引脚配置为普通输入输出模式(非复用功能)。SCL和SDA引脚配置为开漏输出。当要读取数据时动态修改SDA为输入方向。当要发送数据时动态修改SDA为输出方向。后面示例以PB8,PB9两个IO口为例子:
PB8--SCL,PB9--SDA#defineSCL_H()(GPIOB->BSRRL=1<<8)#defineSCL_L()(GPIOB->BSRRH=1<<8)#defineSDA_H()(GPIOB->BSRRL=1<<9)#defineSDA_L()(GPIOB->BSRRH=1<<9)#defineRD_SDA()(!!(GPIOB->IDR&1<<9))代码实现宏定义GPIO配置时序波形voidIIC_Start(void){SCL_H();//刚开始,IIC总线为高电平
SDA_H();//刚开始,IIC总线为高电平iic_delay();//起始信号的建立时间
SDA_L();//产生下降沿
iic_delay();//起始信号的保持时间
SCL_L();//为后面数据传输做准备}相关操作模拟I2C总线时序编程起始条件实现03SCL_H():拉高SCL线的宏调用SCL_L():是拉低SCL线的宏调用SDA_H():是拉高SDA线的宏调用SDA_L():是拉低DA线的宏调用iic_delay:是满足I2C时延要求的函数代码实现时序波形voidIIC_Stop(void){SDA_L();//拉低SDA线SCL_H();//时钟线准备为高电平
iic_delay();//停止信号的建立时间。
SDA_H();//拉高数据线,产生上升沿。
iic_delay();//延时}相关操作模拟I2C总线时序编程停止条件实现03SCL_H():拉高SCL线的宏调用SCL_L():是拉低SCL线的宏调用SDA_H():是拉高SDA线的宏调用SDA_L():是拉低DA线的宏调用iic_delay:是满足I2C时延要求的函数代码实现时序波形//ack0:表示应答;1:表示非应答voidIIC_send_ack(u8ack){ack?SDA_H():SDA_L();
iic_delay();//延时SCL_H();//稳定数据线数据
iic_delay();//延时
SCL_L();//拉低}模拟I2C总线时序编程发送应答信号实现03相关操作SCL_H():拉高SCL线的宏调用SCL_L():是拉低SCL线的宏调用SDA_H():是拉高SDA线的宏调用SDA_L():是拉低DA线的宏调用iic_delay:是满足I2C时延要求的函数时序波形/*备注:返回:0表示应答,1表示非应答*/u8IIC_check_ack(void){u8is_ack=0;SCL_L();//让从设备准备数据
SDA_H();//释放SDA线的控制权
iic_delay();//延时
SCL_H();//稳定SDA线数据
is_ack=RD_SDA();//读数据
iic_delay();SCL_L();//完整周期returnis_ack;//返回应答/非应答}模拟I2C总线时序编程接收应(非)答信号实现03相关操作SCL_H():拉高SCL线的宏调用SCL_L():是拉低SCL线的宏调用SDA_H():是拉高SDA线的宏调用SDA_L():是拉低DA线的宏调用RD_SDA():读取SDA线电平状态宏调用iic_delay:是满足I2C时延要求的延时函数时序波形//返回:0应答,发送成功;1非应答,发送失败u8IIC_WriteByte(u8data){u8i,ack;for(i=0;i<8;i++){
//发送数据0或1到SDA线上
(data&0x80)?SDA_H():SDA_L();iic_delay();//延时SCL_H();//稳定数据
iic_delay();//延时SCL_L();//准备发下一位数据。
data<<=1;//移动下一位待发数据}ack=IIC_check_ack();//检测应答信号returnack;}模拟I2C总线时序编程发送一个字节数据03相关操作SCL_H():拉高SCL线的宏调用SCL_L():是拉低SCL线的宏调用SDA_H():是拉高SDA线的宏调用SDA_L():是拉低DA线的宏调用iic_delay:是满足I2C时延要求的延时函数代码实现要点:时序波形//接收一字节数据,并且发送应答/非应答//参数:ack为1表示发送非应答,为0发送应答//返回:接收到的数据u8IIC_ReadByte(u8ack){u8i,buf=0;SDA_H();//主机释放SDA数据线
for(i=0;i<8;i++){iic_delay();//延时
SCL_H();buf<<=1;//移出最低位//读取1bit数据,保存到最低位
buf|=RD_SDA();
iic_delay();//延时
SCL_L();//准备接收下一位数据
}IIC_send_ack(ack);returnbuf;}模拟I2C总线时序编程接收一个字节数据03相关操作SCL_H():拉高SCL线的宏调用SCL_L():是拉低SCL线的宏调用SDA_H():是拉高SDA线的宏调用SDA_L():是拉低DA线的宏调用iic_delay:是满足I2C时延要求的延时函数代码实现04FT5206触摸屏驱动示例(可选内容:学员根据兴趣选择性学习)芯片介绍读时序分析重要寄存器硬件原理图分析软件设计内部框架图FT5206触摸屏驱动示例芯片介绍04AFE:触摸面板接口电路,连接电容触摸屏面板,用于做触点数据采集。外部接口电路:I2C,SPI,UART,GPIO,INT,WAKE,/RSTMCU内核:内置一个8051单片机电路核心EAC:电源,时钟,功耗管理的电路主机接口图FT5206触摸屏驱动示例芯片介绍04详细芯片手册:FT5x06_DS.pdfFT5206-书签版.pdfFT5206-书签版.pdf设备地址FT5x06支持I2CorSPI接口设备地址:由I2CCON控制器内容决定,A[6:4]:固定011,其中A[3:0]是由当前运行的单片机程序决定,本实验箱使用的FT5X06芯片设备地址是0X38,(二进制:0111000),读数据发出的地址字节是0x71(二进制:01110001),写数据发出的地址字节是0x70(二进制:01110000)。FT5206触摸屏驱动示例芯片介绍04FT5206触摸屏驱动示例芯片介绍04复位芯片芯片上电需要对它进行复位,保证芯片内部逻辑电平是正确的,复位时序很简单,只需要拉低REST引用一段时间,然后重新拉高即可。FT5206触摸屏驱动示例芯片介绍04读取据方法1FT5206触摸屏驱动示例芯片介绍04读取据方法1FT5206触摸屏驱动示例读写序分析04写数据时序主机与触摸屏芯片通信流程:起始信号
从机地址+写方向
检测应答
发送寄存器地址
检测应答
循环[发送数据
检测应答]
发送停止信号FT5206触摸屏驱动示例读写序分析04读取数据时序主机与触摸屏芯片通信流程:起始信号
从机地址+写方向
检测应答
发送寄存器地址
检测应答
发送停止信号;起始信号
从机地址+读方向
检测应答
循环[读取数据地址
发送应答]发送停止信号;寄存器说明寄存器名称:工作模式寄存器(0x00)寄存器作用:该寄存器用于设置FT5206的工作模式。MODE[2:0]用于控制FT5206的工作模式,一般设置为:000b,表示正常工作模式。FT5206触摸屏驱动示例重要寄存器04寄存器说明寄存器名称:中断状态控制寄存器(0xA4)寄存器作用:该寄存器用于设置FT5206的工作模式。MODE[2:0]用于控制FT5206的工作模式,一般设置为:000b,表示正常工作模式。寄存器说明寄存器名称:有效触摸门限控制寄存器(0X80)寄存器作用:该寄存器用于设置FT5206的有效触摸门限值。该寄存器8位数据都有效,用于设置FT5206有效触摸的门限值,计算公式为:有效触摸门限值=T[7:0]*4T[7:0]所设置的值越小,触摸越灵敏,默认状态下T[7:0]=70。FT5206触摸屏驱动示例重要寄存器04寄存器说明寄存器名称:激活周期控制寄存器(0X88)寄存器作用:该寄存器用于设置FT5206的激活周期。该寄存器只有低4位有效,用于设置FT5206的激活周期。P[3:0]的设置范围为:3~14,不过建议一般不要小于12。寄存器说明寄存器名称:
触摸状态寄存器(0X02)寄存器作用:寄存器用于读取FT5206的触摸状态。该寄存器只有低4位有效,TD[3:0]的取值范围是:1~5,表示有多少个有效触摸点。我们可以根据这个寄存器的值来判断有效触摸点的个数,然后通过0X03/0X09/0X0F/0X15和0X1B等寄存器来读取触摸坐标数据。FT5206触摸屏驱动示例重要寄存器04寄存器说明寄存器名称:触摸数据寄存器(0X03~0X1E)寄存器作用:这里总共包括20个寄存器,他们是:0X03~0X06、0X09~0X0C、0X0F~0X12、0X15~0X18、0X1B~0X1E。每4个寄存器为1组,表示一个触摸点的坐标数据,比如0X03~0X06,则表示触摸点1的坐标数据,其他的以此类推。。FT5206触摸屏驱动示例重要寄存器04EventFLAG:用于表示触摸状态:00按下;01松开;10持续触摸;11保留。一般我们只需要判断该状态为10即可,即持续触摸状态,就可以稳定的读取触摸坐标数据了。TouchID:触点ID号,裸机中一般用不到,在Linux系统中使用时比较有用,用于实现触点追踪功能。X[11:8]<<8|X[7:0]:是X坐标数据,这些数据以12位的形式表示,分两个寄存器存储。Y[11:8]<<8|Y[7:0]:是Y坐标数据,这些数据以12位的形式表示,分两个寄存器存储。原理图说明查看STM32F407物联网开发平台-智能网关原理图.pdf文档,触摸屏硬件设置原理图如下所示:原理图分析物联网实验箱主控与FT5206之间的通讯接口采用IIC接口模式,FT5206的七位器件地址为0X38(写地址:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度广东省新型城镇化背景下住宅租赁合同
- 2025年度幼儿园装修工程保修服务协议
- 2025年度按揭房屋转让与贷款利率调整协议
- 2025年度养猪场养殖废弃物处理设施运营管理合同
- 2025年度户口分家及遗产继承协议书模板
- 2025年度海洋资源资产托管与可持续发展服务协议
- 2025年度山林流转与生态农业开发合同
- 2025年度商业地产合租运营管理服务协议
- 办公家具运输简易合同
- 2025年度房地产合伙人股权分配与项目开发协议
- 文件袋、档案袋密封条模板
- 依图科技业务概述
- 支气管镜室工作制度
- 紫精丹_圣惠卷九十五_方剂加减变化汇总
- 船模制作教程(课堂PPT)课件(PPT 85页)
- 防腐检查培训教材ppt课件
- 天蓝色商务发展历程时间轴PPT模板课件
- 第5章液相传质步骤动力学
- GJB 国军标标准对应名称解析
- 肺炎链球菌肺炎医学PPT课件
- 小学英语微课ppt
评论
0/150
提交评论