当前位置: 首页 > ops >正文

【芯片测试篇】:93K测试机I2C的设置和调试

文章目录

  • I2C 总线配置
    • 起始和停止条件
    • 位传输
    • 数据格式/应答
    • 完整的 I2C 数据传输
  • PE 结构
  • 93K setup
  • I2C 调试


在这里插入图片描述


I2C 总线配置

在这里插入图片描述

  • I2C 是一种双向,两线串行通讯接口,分别是串行数据线 SDA 和串行时钟线 SCL 。两根线都必须通过一个上拉电阻接到电源。

  • 总线上发送数据的器件被称作发送器,接收数据的器件被称作接收器。控制信息交换的器件被称作主器件,受主器件控制的器件则被称作从器件。主器件产生串行时钟 SCL,控制总线的访问状态,产生 START 和 STOP 条件。

  • 只有当总线处于空闲状态时才可以启动数据传输。每次数据传输均开始于 START 条件,结束于 STOP 条件,二者之间的数据字节数是没有限制的,由总线上的主器件决定。信息以字节(8位)为单位传输,第9位时由接收器产生应答。

起始和停止条件

在这里插入图片描述

  • 数据和时钟线都为高则称总线处在空闲状态,当 SCL 为高电平时 SDA 的下降沿(高到低)叫做起始条件(START,简写为S),SDA 的上升沿(低到高)则叫做停止条件(STOP,简写为P)。

位传输

在这里插入图片描述

  • 每个时钟脉冲传送一位数据。SCL 为高时 SDA 必须保持稳定,因为此时 SDA 的改变被认为是控制信号。

数据格式/应答

在这里插入图片描述

  • I2C 的数据字节定义为 8 位长度,每次数据传输的字节数没有限制。每个传输的字节后必须跟随一个应答(ACK)信号:应答信号的时钟由主设备生成,而接收方通过拉低 SDA 线,并在应答时钟脉冲的高电平阶段保持其低电平,来产生实际的应答信号。

  • 若从设备处于忙状态(需先完成其他任务,才能发送或接收下一个数据字节),它可将 SCL 保持在低电平,从而迫使主设备进入等待状态。当从设备准备好并释放时钟线时,正常的数据传输将恢复。

完整的 I2C 数据传输

在这里插入图片描述

  1. 在以起始条件(S)开始通信后,主机先发送一个7位的从机地址,随后紧跟第8位 — 读/写位。读/写位用于指示主机是从从机接收数据,还是向从机写入数据。

  2. 接着,主机释放 SDA 线,并等待从机的应答信号(ACK)。每个传输的字节后都必须跟随一个应答位:为了应答,从机需将 SDA 线拉低,并在 SCL 线的高电平周期内保持低电平。

  3. 数据传输始终由主机以停止条件(P)终止,以此释放通信线路。不过,主机也可产生重复起始条件(Sr),无需先发送停止条件(P)就能寻址另一个从机。

  4. 停止条件的定义是:当 SCL 为高电平时,SDA 线发生从低到高的跳变 。除起始和停止条件外,SDA 线的所有电平变化都应在 SCL 为低电平时进行。

PE 结构

在这里插入图片描述

  1. 驱动(输入)

    • 驱动单元为被测器件(DUT)提供输入信号,从向量存储单元获取格式化逻辑信号 FDATA(仅 0 或 1 ),从参考电压源(RVS)获取 VIL/VIH 参考电平,将电平与逻辑信号结合:
      • 若 FDATA 为逻辑0,施加 VIL(DUT 识别为逻辑0的最大电压)到DUT输入引脚。
      • 若 FDATA 为逻辑1,施加 VIH(DUT 识别为逻辑1的最低电压)到DUT输入引脚。
  2. 动态负载

    • 动态负载(Active Load,又称电流负载),在功能测试时连接到 DUT 输出端充当负载,由测试程序控制提供拉电流(IOH — DUT 输出逻辑 1时,其输出引脚必须向外提供的电流,测试系统从 DUT 引脚 “拉取” 电流)和灌电流(IOL — DUT 输出逻辑 0时,其输出引脚必须接纳的电流,测试系统向 DUT 引脚 “灌入” 电流)。
    • 参考电压(Voltage Reference,表示为Vref)决定是 IOH 起作用还是 IOL 起作用;当待测器件的输出电压高于 Vref 时,ATE从被测器件引脚拉取电流 IOH;当待测器件的输出电压低于 Vref 时,ATE向被测器件引脚灌入电流 IOL。
  3. 电压接收

    • 若DUT输出电压 ≤ VOL → 判定为逻辑0。
    • 若DUT输出电压 ≥ VOH → 判定为逻辑1。
    • 若DUT输出电压 介于 VOL 和 VOH 之间(VOL < 电压 < VOH)→ 判定为 三态电平(高阻态)或无效输出。

93K setup

  • I2C 总线上的所有设备都使用开漏输出,并且使用时需要连接上拉1.5K,2.2K 或者 4.7K 的电阻,在 93K 测试机上可使用 vt = VCC 和 iol = VCC / pull-up_resistor 配置 Active Load 用来代替实际的电阻,term = load。

  • I2C 总线上数据的传输速率有 100kbit/s 和 400kbit/s,在 spec 文件 set timing 中的 period 可以设置为 10us 或者 2.5us。

  • 将 vth = VCC / 2.0 用来比较高低电平。

  • 按照 Topic 360281 — 定义 I2C 协议,参考 Topic 0482073425 — 标准I2C接口,写I2C class method。

I2C 调试

  • 硬件连接:

    • 检查电源 pin 和复位 pin 是否供电稳定,检查 dcVI 是否连接并且上电 VCC,可以用万用表确认,instrument 视图测量或者 profiling()。
    • 检查 DUT 的 SDA/SCL 引脚是否正确连接到机台的 pogo pin,loadboard 上是否存在虚焊。
    • 上拉电阻:根据 VCC 和 pull-up_resistor 求 iol。
  • 总线配置:

    • 设备地址 + 读/写位 发送是否正确。
    • 时钟频率是 100kbit/s 还是 400kbit/s,修改 period 为 10us 或者 2.5us。
    • ​起始信号和停止信号时序是否正确。
    • 第9个周期的 ack 是否为低电平。
    • MCU 烧录的固件是否正确,在跑 I2C 时序前是否要加延时,有时会加到几十ms。
  • 必要时通过示波器抓取波形查看:在使用示波器连接 DUT pin 时,机台要先断开连接,也就是数字pin和电源pin的 disconnect = true; ,如果不断开的话 DUT pin 上是有电压的,而如果此时示波器设置上升沿 VCC / 2.0 电压触发,示波器探头接触到 DUT pin 时就会直接抓到波形,而这个并不是想要的。


http://www.xdnf.cn/news/14926.html

相关文章:

  • 可达性分析算法Test1
  • 基于springboot的非遗传承宣传平台
  • 短视频矩阵管理平台的崛起:源头厂商的深度解析
  • 车载通信架构 --- 以太网相关网络安全
  • c++文件操作
  • Git 安装避坑指南:从环境检查到高级配置的全流程解析
  • Java项目:基于SSM框架实现的旅游协会管理系统【ssm+B/S架构+源码+数据库+毕业论文】
  • 猎板解析PCB低损耗基材:AI与高频通信的隐形推手
  • 谁主沉浮:人工智能对未来信息技术发展路径的影响研究
  • C++高频知识点(六)
  • 【Python】Python Socket 编程详解:从原理到实践
  • 基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(1)搭建框架基本雏形
  • 实战:Android 15 (API 35) 适配 构建踩坑全记录
  • 鼎捷T100程序开发(R报表开发完整流程)
  • Bright Data MCP+Trae :快速构建电商导购助手垂直智能体
  • RabbitMQ第一章(MQ基础与RocketMQ使用手册)
  • EXCEL链接模板无法自动链接到PowerBI?试试这个方法
  • 数据分析-58-SPC统计过程控制的8个判异准则
  • 解决Maven“无法将类 XXXXX 中的构造器 XXXXXX 应用到给定类型”错误
  • WPA2 与 WPA3:深入解析Wi-Fi安全协议
  • 第0章:开篇词 - 嘿,别怕,AI应用开发没那么神!
  • Linux命令的命令历史
  • 安卓10.0系统修改定制化____recovery-from-boot.p文件的具体作用 在定制项目中的关联
  • stm32--SPI原理应用W25Q64(二)
  • 【力扣(LeetCode)】数据挖掘面试题0002:当面对实时数据流时您如何设计和实现机器学习模型?
  • vue openlayer 找出直线上的某一个点 , 点距离直线 最短路径的点 WKT坐标转换为GeoJSON坐标
  • xbox one controller DSLogic 逻辑分析仪截包
  • 商品中心—库存分桶高并发的优化文档
  • 谢飞机的Java高级开发面试:从Spring Boot到分布式架构的蜕变之旅
  • C++11标准库算法:深入理解std::none_of