IIC双向电平转换电路设计

现代的集成电路工艺加工的间隙可达0.5μm 而且很少限制数字I/O 信号的最大电源电压和逻辑电平。

为了将这些低电压电路与已有的5V或其他I/O电压器件连接起来,接口需要一个电平转换器。对于双向的总线系统像I2C 总线电平转换器必须也是双向的,不需要方向选择信号。解决这个问题的最简单方法是连接一个分立的MOS-FET管到每条总线线路,尽管这个方法非常简单但它不仅能不用方向信号就能满足双向电平转换的要求还能将掉电的总线部分与剩下的总线系统隔离开来,保护低电压器件防止高电压器件的高电压毛刺波。

双向电平转换器可以用于标准模式高达100kbit/s 或快速模式高达400kbit/s I2C 总线系统。

通过使用双向电平转换器可以将电源电压和逻辑电平不同的两部分I2C 总线连接起来配置入下图所示。左边的低电压部分有上拉电阻而且器件连接到3.3V 的电源电压,右边的高电平部分有上拉电阻器件连接到5V 电源电压。两部分的器件都有与逻辑输入电平相关的电源电压和开漏输出配置的I/O。

每条总线线路的电平转换器是相同的而且由一个分立的N通道增强型MOS-FET管串行数据线SDA的TR1和串行时钟线SCL 的TR2 组成。门极g 要连接到电源电压VDD1, 源极s 连接到低电压部分的总线线路而漏极d 则连接到高电压部分的总线线路。很多MOS-FET 管的基底与它的源极内部连接,如果内部没有,就必须建立一个外部连接。因此,每个MOS-FET 管在漏极和基底之间都有一个集成的二极管n-p 结。如下图所示。

电平转换器的操作

在电平转换器的操作中要考虑下面的三种状态:

1、   没有器件下拉总线线路。

低电压部分的总线线路通过上拉电阻Rp 上拉至VDD1(3.3V) MOS-FET 管的门极和源极都是VDD1(3.3V), 所以它的VGS 低于阀值电压MOS-FET 管不导通这就允许高电压部分的总线线路通过它的上拉电阻Rp 拉到5V。 此时两部分的总线线路都是高电平只是电压电平不同。

2、一个3.3V 器件下拉总线线路到低电平。

MOS-FET 管的源极也变成低电平而门极是VDD1(3.3V)。VGS高于阀值,MOS-FET 管开始导通然后高电压部分的总线线路通过导通的MOS-FET管被VDD1(3.3V)器件下拉到低电平,此时两部分的总线线路都是低电平而且电压电平相同。

3、一个5V 的器件下拉总线线路到低电平。

MOS-FET 管的漏极基底、二极管低电压部分被下拉,直到VGS 超过阀值,MOS-FET 管开始导通,低电压部分的总线线路通过导通的MOS-FET管被5V 的器件进一步下拉到低电平,此时两部分的总线线路都是低电平而且电压电平相同。

这三种状态显示了逻辑电平在总线系统的两个方向上传输,与驱动的部分无关。状态1 执行了电平转

换功能,状态2和3按照I2C总线规范的要求在两部分的总线线路之间实现“线与”的功能。除了VDD1 (3.3V)

和VDD2  (5.0V)的电源电压外,还可以是例如2V VDD1 和10V VDD2 等的正常操作。其中VDD2必须等于或高于VDD1 。

但是值得注意的是,VDD1作为较低部分的电压,必须能够大于所选择的MOS-FET的阀值电压,也就是必须能够打开MOS-FET。此管参数必须谨慎选择。如下两种参数MOS-FET,在VDD1 (1.8V)到VDD2  (3.0V) 的电路中就可能存在截然不同的效果。

管1

管2

选择管1,由于VGS的范围是1.0~2.5V,很有可能出现大于1.8V的状况,因此VDD1方面传输低电平信号时,MOS-FET不能很完全的被打开,导致到VDD2  (3.0V)方面的信号不能彻底为低,出现半高状态。如下图:

择管2,由于VGS的范围是0.9~1.5V小于1.8V,因此,通路才会正常工作。

其他不同电压间的转换原理如上,请悉心选择器件。

在3.3V IIC总线中用到5V IIC器件,该电路已实验通过。

IIC的地址

7位寻址

在7位寻址过程中,从机地址在启动信号后的第一个字节开始传输,该字节的前7位为从机地址,第8位为读写位,其中0表示写,1表示读。

图1:7位寻址。I2C总线规范规定,标准模式I2C,从机地址为7位长,其次是读/写位。

任何I2C设备都必须遵循这个标准,USB2XXX传输的从机地址即为这7bit地址,不包含读写位,读写位会根据不同的函数自动添加进去。

保留地址

I2C规范保留了两组和8个地址,1111XXX和0000XXX。这些地址用于特殊用途。下表已被取自 I2C规范(2000年)。

从机地址+R/W 描述
0000 0000 呼叫地址
0000 0001 起始字节
0000 001X CBUS地址
0000 010X 保留供不同的总线格式
0000 011X 保留将来用
0000 1XXX HS模式主机码
1111 0XXX 10位从机地址
1111 1XXX 保留将来用

8位地址

一些厂商在提供从机地址的时候说的是包含了读写位的8bit地址,比如他说写地址为0x92,读地址为0x93,如下图所示

图2: 8位寻址

这种情况下,你只需要将这个地址的前7bit提取出来,然后传入USB2XXX的接口函数即可,比如为0x49。

还有一种方式可以判断厂商提供的地址是7bit模式地址还是8bit地址模式的地址,7bit地址模式下,地址的取值范围在0x07到0x78之间,若超过了这个范围,那么这个地址可能就是8bit地址。

图3:有效的7bit地址范围

10位寻址

I2C总线的10bit寻址和7bit寻址是兼容的,这样就可以在同一个总线上同时使用7bit地址和10bit地址模式的设备,在进行10bit地址传输时,第一字节是一个特殊的保留地址来指示当前传输的是10bit地址。

图4:10bit地址寻址

在使用USB2XXX传输10bit地址模式的时候,只需要在初始化的时候配置为10bit地址模式,然后再调用读写数据函数的时候传入正确的10bit地址即可。

IIC 差异电平传输 和 IIC 地址相关推荐

  1. Linux下IIC驱动编写,介绍IIC子系统框架的使用

    一.IIC协议介绍 说起IIC,搞单片机,嵌入式的那肯定是接触的比较多的.串口.IIC.SPI这3个协议在单片机阶段应该是用比较多的,很多的外设模块,芯片都是串口.IIC.SPI等协议与主控芯片进行通 ...

  2. IIC通信协议(硬件实现IIC通信详解I)

    IIC通信协议 什么是IIC协议 协议层 起始信号和停止信号 数据的有效性 什么是IIC协议 I2C(Inter-Integrated Circuit)通讯协议是由 Phiilps 公司开发的两线式串 ...

  3. stm32 iic接口 进入busy_STM32通过IIC接口读取JY61模块MPU6050陀螺仪芯片数据核心程序...

    1 简述 最近,想学角度融合算法在网上买一个JY61的模块.他们家的模块用起来还不错.模块分为串口通讯和IIC通讯的.串口读取数据他们家有例程,我就不说了.想分享给大家这个模块的IIC是怎么去读取MP ...

  4. stm32专题十六:IIC(二)stm32 IIC通讯过程 标志位

    1 IIC进入主模式的步骤: 在主模式时,I 2 C接口启动数据传输并产生时钟信号.串行数据传输总是以起始条件开始并以停 止条件结束.当通过START位在总线上产生了起始条件,设备就进入了主模式. 以 ...

  5. IIC clock strech【转载IIC七宗罪之IIC clock stretch】

    由于前段时间工作上的事情比较杂乱, 导致第七罪姗姗来迟,既然是大结局,当然就应该让大家更加深刻的来理解I2C..我们先来复习一下大家共有的对I2C的认知: 1. I2C的SCL(Clock)总是由Ma ...

  6. IIC(I2C)总线设备地址,例如E2PROM、CH455G等器件应用

    文章目录 背景 I2C特点 IIC的物理层 IIC的协议层 a.数据的有效性 b.起始和结束条件 d.数据帧格式 地址格式(重点!!!) 实战寻址 E2PROM 注意 CH455G地址 注意 背景 I ...

  7. cmos逻辑门传输延迟时间_用DSLogic 逻辑分析仪 解析出来的IIC协议太完美了!

    1. 协议基础 1.1. 协议简介 IIC-BUS(Inter-IntegratedCircuit Bus)最早是由PHilip半导体(现在被NXP收购)于1982年开发.主要是用来方便微控制器与外围 ...

  8. IIC总线协议,7位,8位,10位地址

    IIC总线 1.1. 概述 IIC开发于1982年,当时是为了给电视机内的CPU和外围芯片提供更简易的互连方式.电视机是最早的嵌入式系统之一,而最初的嵌入系统是使用内存映射(memory-mapped ...

  9. IIC(I2C)总线上的设备其地址如何定义?通俗易懂

    IIC(I2C)总线上的设备其地址如何定义? IIC总线 一般串行数据通讯都有时钟和数据之分,有异步和同步之别. 有单线,双线和三线等. I2C肯定是2线的(不算地线). I2C协议确实很科学,比3/ ...

最新文章

  1. 大数据在犯罪预防中有独特价值
  2. python制作ios游戏_python自动化生成IOS的图标
  3. Phalcon 訪问控制列表 ACL(Access Control Lists ACL)
  4. Web services 安全实践: 基于 HTTP Basic Authentication 为 Web services 配置传输层安全机制...
  5. Android--WebView显示Html,让其中的图片适应屏幕宽度
  6. java当前时间推前三个月_获取当前时间的前三个月 java
  7. 《第二章:深入了解超文本》
  8. css flexbox模型_Flexbox教程:了解如何使用CSS Flexbox编写响应式导航栏
  9. 如何在README中使用图片
  10. 【飞秋】在SPItemEventReceiver中使用BeforeProperties和AfterProperties
  11. codeforces#253 D - Andrey and Problem里的数学知识
  12. CentOS上安装Git
  13. C语言程序设计学习心得体会总结
  14. 《HelloGitHub》第 73 期
  15. java 遍历json串_Java遍历json字符串取值的实例
  16. 炫酷3D相册 520七夕情人节表白网页制作(HTML+CSS+JavaScript)
  17. 厦大计算机推免复试,统考生没戏!厦大该专业3个系招生,推免占比最高100%!...
  18. APP地推的一些方式
  19. 华为wlan旁挂三层组网隧道转发
  20. 常看:vue面试相关知识

热门文章

  1. 力扣724.寻找数组的中心索引
  2. C语言复习4_while循环
  3. [poj2752]Seek the Name, Seek the Fame_KMP
  4. zh-cn en-uk、zh-tw表示语言(文化)代码与国家地区对照表(最全的各国地区对照表)...
  5. (学习进度表)【第八周】
  6. 该伙伴事务管理器已经禁止了它对远程/网络事务的支持
  7. 什么是Python中的类型转换?
  8. Oracle 日期加减运算
  9. SFTP环境搭建及客户代码调用公共方法封装
  10. 在maven项目结构下对于Resources目录下文件的存取