0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

IIC时序问题的解决方法

CHANBAEK 来源:硬件工程师技术干货 作者:硬件工程师技术干 2023-06-14 17:52 次阅读

最近硬件测试工程师反馈一个BUG,和IIC的时序有关,这个BUG目前没有带来使用方面的影响,但是不符合规范,要求整改。我们使用的单片机是cortex-m3内核的芯片美信公司生产,使用此芯片读取电容屏的坐标数据。目前电容屏都是自带芯片的设计,芯片检测到触摸后产生一个GPIO中断,单片机接收到中断后读取电容屏IC的坐标数据,使用比较简单。

由于此款单片机手册没有给出IIC时序图,硬件测试工程师把IIC的通用规范作为标准进行时序测试,认为以下两个数据指标不达标,此数据符合IIC快速模式(最高可达400kHz)标准,但是不符合标准模式(最高100kHz)标准。这两个时间参数只限制了最小值,是为了让速率慢的IIC设备能够正确的接收起始和停止信号,因为速率慢的器件反应慢。

tHD_STA = 2.5us(标准是4us)

tSU_STO = 2.6us(标准是4us)

wKgaomSJimSAfUYtAAIwUQj_MVo682.jpg

wKgZomSJimSAK_35AAN77UkVDk0062.jpg

wKgaomSJimSAUoc3AAJHoX9taps725.jpg

wKgZomSJimSAPbO7AAIwYdqMNSw884.jpg

我们单片机操纵IIC接口的频率是100kHz,测试人员认为其属于标准模式,于是按照标准模式判定是否合格。因为此款产品是量产产品,并无市场反馈有实际问题,于是本着尽量不改动的原则和人家商讨,100KHz正好是界限,也可以认为是快速模式,可以按照快速模式标准判断,而且软件操纵IIC并非GPIO模式方式,使用了硬件IIC接口,这两个时间参数不可控,都是硬件行为,讨论了半天,结果碰了一鼻子灰,被人家的执着打败了。解决办法只有一个就是提高速率,让它满足快速模式标准。以下是速率提高至200kHz的测量结果,满足了要求。

tHD_STA = 1.2us

tSU_STO = 1.3us

wKgaomSJimSAWnLnAAIxthkuK8Y144.jpg

wKgZomSJimSAaJtuAAI3N3oqwjg647.jpg

软件上改速率很好改,无非是100改为200,换个数字而已,但是其它工作量比较大,因为是量产产品,而且这款屏幕有替代料,速率提高了,替代料也要测量是否工作正常,而且不能验证一台就拉倒了。这个问题真的有必要修改吗?个人认为完全没有必要,如果处于研发中的产品改了就改了,量产的产品完全没有必要,而且有未知风险,有时候是没有办法的事情。

解决这个问题的过程中,一直有个疑问,如果单片机的速率配置为100kHz以下,能否满足标准速率标准呢?示波器抓了几个速率的时间参数如下:

90kHz,不符合标准速率标准。

tHD_STA = 2.7us

tSU_STO = 2.9us

wKgaomSJimSAZL64AAJRPXIKZEw029.jpg

wKgZomSJimSAQrftAAJI8Ct72XE854.jpg

70kHz,不符合标准速率标准。

tHD_STA = 3.5us

tSU_STO = 3.7us

wKgaomSJimSAIofyAAJL-5vwuOM249.jpg

wKgZomSJimSAIw7KAAJRKunywhM535.jpg

60kHz,符合标准速率标准。

tHD_STA = 8.3us

tSU_STO = 9.4us

wKgaomSJimWAZ6oxAAJLLdHscDA761.jpg

wKgZomSJimWADFJUAAJEN-PboEQ425.jpg

从测量结果来看,这两个时间参数是随着速率降低不断增大的,在70kHz-100kHz区间内,不满足标准速率标准。所以说这款单片机的IIC接口还是有瑕疵的,如果某个标准速率的IIC器件工作在这个区间内,有可能对START和STOP信号识别错误,导致问题,当然出现这种情况的概率很小。就算出现了,只要降低速率就能解决。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6030

    文章

    44501

    浏览量

    632281
  • 内核
    +关注

    关注

    3

    文章

    1362

    浏览量

    40196
  • IIC
    IIC
    +关注

    关注

    11

    文章

    298

    浏览量

    38249
  • 时序
    +关注

    关注

    5

    文章

    384

    浏览量

    37253
  • Cortex-M3
    +关注

    关注

    9

    文章

    269

    浏览量

    59410
收藏 人收藏

    评论

    相关推荐

    IIC按照时序图编写子函数

    按照IIC时序编写的程序
    发表于 11-05 20:37

    实现嵌入式硬件通信IIC接口管理、IIC时序

    本文将要讲解和实现的内容主要分为两个部分:代码实现IIC接口管理、代码实现IIC时序IIC接口管理接口管理的目的是想在后期扩展时,一个工程里可使用多个
    发表于 01-04 07:00

    IIC总线时序启动时序

    配合实现,传输速率包含标注准(100kps)、快速(400kps)、高速(3.4Mbps)三大类。2. IIC总线时序启动时序:当SCL为高电平时,SDA下降沿,表示启动。...
    发表于 11-29 06:20

    采用IIC硬件时序读写AT24C08的方法步骤

    时序的,上篇文章已经介绍了采用IIC模拟时序读写AT24C02,这篇文章介绍STM32的硬件IIC配置方法,并读写AT24C08。文章地址:
    发表于 11-30 07:48

    配置STM32的IIC硬件时序读写AT24C02和AT24C08

    时序的,本文采用的是模拟时序,下篇文章就介绍配置STM32的IIC硬件时序读写AT24C02和AT24C08。模拟时序更加方便移植到其他单片
    发表于 12-08 06:27

    IIC时序的特征有哪些

    IIC时序理解IIC 的特征:两条总线:串行数据总线(SDA)和串行时钟总线(SCL)数据有效性规定:IIC总线在进行数据传输时,SCL在高电平区间,SDA上的电平必须保持稳定SDA的
    发表于 01-07 06:05

    IIC的定义及其时序简析

    IIC的一些定义后,要想写代码必须知道它的时序。一、空闲状态,IIC在空闲状态时SDA和SCL都是处于高电平。二、开始信号,当SCL电平不发生变化的时候,SDA由高电平变为低电平的这一个过程...
    发表于 02-23 06:07

    使用IIC驱动读取AP3216C传感器时出错怎么办

    IIC传输数据但不发送结束信号的情况下,IIC的SCL线不能被拉高,从而发送下一个起始信号于是自行拉高SCL(PC0引脚),结果正确请问是否有更好的解决方法
    发表于 11-10 10:13

    24C02中IIC总线的应答信号(ACK)时序图分析

    24C02中IIC总线的应答信号(ACK)时序图分析,很好的单片机学习资料。
    发表于 03-21 17:30 93次下载

    STM32入门开发: 采用IIC硬件时序读写AT24C08(EEPROM)

    STM32入门开发: 采用IIC硬件时序读写AT24C08(EEPROM)
    发表于 11-21 13:51 47次下载
    STM32入门开发: 采用<b class='flag-5'>IIC</b>硬件<b class='flag-5'>时序</b>读写AT24C08(EEPROM)

    STM32F103 模拟IIC时序

    STM32F103 模拟IIC时序
    发表于 11-25 09:51 34次下载
    STM32F103  模拟<b class='flag-5'>IIC</b><b class='flag-5'>时序</b>

    STM32入门开发: 介绍IIC总线、读写AT24C02(EEPROM)(采用模拟时序)

    时序的,本文采用的是模拟时序,下篇文章就介绍配置STM32的IIC硬件时序读写AT24C02和AT24C08。模拟时序更加方便移植到其他单片
    发表于 11-25 20:06 39次下载
    STM32入门开发: 介绍<b class='flag-5'>IIC</b>总线、读写AT24C02(EEPROM)(采用模拟<b class='flag-5'>时序</b>)

    时序不满足的典型案例及解决方法

    原先的时序报告: 根据时序报告中的路径提示,在ILA的某个路径上建立时间过长,而程序中并未例化ila的核,只是使用了chipscrop.。所以猜测是chipscrop部分的路径时序不收敛。 于是去除
    发表于 08-22 09:19 1709次阅读

    有关AXI IIC和PS IIC的自调试技巧

    AXI IIC 和 PS IIC 控制器都符合 NXP IIC 总线规范。用户必须确保其选择使用的从设备的时序参数与UM10204 的第 48 页上的“表 10”中的参数相同。
    发表于 08-25 10:29 1702次阅读

    电源时序器跳闸的原因和解决方法

    电源时序器跳闸是一个常见的电气问题,它可能由多种因素引起,包括电源电压不稳定、电路短路、过载电流以及时序器本身的故障等。下面将详细分析电源时序器跳闸的原因及相应的解决方法
    的头像 发表于 09-29 16:28 454次阅读