美文网首页Arduino雕爷学编程
【雕爷学编程】Arduino动手做(128)---2路I2C电平

【雕爷学编程】Arduino动手做(128)---2路I2C电平

作者: 驴友花雕 | 来源:发表于2023-06-26 04:35 被阅读0次

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

    【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
    实验一百二十八:IIC I2C电平转换模块 5-3v系统兼容 2路 传感器模块SUNLEPHANT

    0.jpg

    知识点:场效应管

    Field Effect Transistor缩写(FET)简称场效应管。主要有两种类型:结型场效应管(junction FET—JFET)和金属 - 氧化物半导体场效应管(metal-oxide semiconductor FET,简称MOS-FET)。由多数载流子参与导电,也称为单极型晶体管。它属于电压控制型半导体器件。具有输入电阻高(107~1015Ω)、噪声小、功耗低、动态范围大、易于集成、没有二次击穿现象、安全工作区域宽等优点,现已成为双极型晶体管和功率晶体管的强大竞争者。场效应管(FET)是利用控制输入回路的电场效应来控制输出回路电流的一种半导体器件,并以此命名。由于它仅靠半导体中的多数载流子导电,又称单极型晶体管。

    场效应管是电压控制元件,而晶体管是电流控制元件。在只允许从信号源取较少电流的情况下,应选用场效应管;而在信号电压较低,又允许从信号源取较多电流的条件下,应选用晶体管。场效应管是利用多数载流子导电,所以称之为单极型器件,而晶体管是既有多数载流子,也利用少数载流子导电,被称之为双极型器件。有些场效应管的源极和漏极可以互换使用,栅压也可正可负,灵活性比三极管好。场效应管能在很小电流和很低电压的条件下工作,而且它的制造工艺可以很方便地把很多场效应管集成在一块硅片上,因此场效应管在大规模集成电路中得到了广泛的应用。

    000.jpg

    场效应管作用

    1.场效应管可应用于放大。由于场效应管放大器的输入阻抗很高,因此耦合电容可以容量较小,不必使用电解电容器。

    2.场效应管很高的输入阻抗非常适合作阻抗变换。常用于多级放大器的输入级作阻抗变换。

    3.场效应管可以用作可变电阻。

    4.场效应管可以方便地用作恒流源。

    5.场效应管可以用作电子开关。

    000-.jpg

    模块使用的BSS138LT1贴片MOS场效应管

    00-.jpg 001.jpg 002.jpg

    一个IIC的5V和3.3V电平转换的经典电路

    双向传输原理:

    为了方便讲述,定义 3.3V 为 A 端,5.0V 为 B 端。

    A端输出低电平时(0V) ,MOS管导通,B端输出是低电平(0V)

    A端输出高电平时(3.3V),MOS管截至,B端输出是高电平(5V)

    A端输出高阻时(OC) ,MOS管截至,B端输出是高电平(5V)

    B端输出低电平时(0V) ,MOS管内的二极管导通,从而使MOS管导通,A端输出是低电平(0V)

    B端输出高电平时(5V) ,MOS管截至,A端输出是高电平(3.3V)

    B端输出高阻时(OC) ,MOS管截至,A端输出是高电平(3.3V)

    优点:

    1、适用于低频信号电平转换,价格低廉。

    2、导通后,压降比三极管小。

    3、正反向双向导通,相当于机械开关。

    4、电压型驱动,当然也需要一定的驱动电流,而且有的应用也许比三极管大。

    003.jpg 004.jpg

    IIC I2C双路电平转换模块
    由于部分单片机开发板和设备是3.3V工作的,而也有单片机开发板和设备、传感器等是的5.0V工作电源,所以当两者需要通讯时,就出现了工作电压不一致的情况,令用户使用起来不方便。这个模块就是针对这个问题和解决这个问题设计的,其在3.3V和5.0V的不同设备中提供了可行性,起了桥接的作用。

    02.jpg

    IIC I2C双路电平转换模块电原理示意图

    06 (1).jpg

    IIC I2C双路电平转换模块特点

    1、2个通道的高电压逻辑和低电压逻辑双向转换

    2、2个通道的高电压逻辑转换成低电压逻辑的单向转换

    3、模块兼容面包板,可以直接插在面包板上使用

    4、实现串口直接的 5V与3.3V电平通讯。

    5、最高稳定通信波特率28800bps。

    6、UART、IIC、1-wire和SPI等总线信号3V-5V电平的双向转换。

    7、可实现I2C双向总线系统中3.3V与5V电平的双向转换,且不需要方向选择信号,而且还能将掉电的总线部分和剩下的总线系统隔离开来,保护低压器件防止高电压器件的高电压毛刺。

    006.jpg

    IIC I2C双路电平转换接线说明与PCB

    HV接5V电源

    LV接3.3V电源

    GND接电源负极,两个电源公地

    RXI输入5v TTL,将在RXO输出3.3v TTL

    TXI输入输出3.3V TTL ,TXO输入输出5V TTL, TXI与TXO双向互转

    03.jpg 08.jpg

    Arduino实验开源代码

    /*
    
    【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
    
     实验一百二十八:双路IIC I2C电平转换模块 5-3v系统兼容
    
      HV接5V电源
    
      LV接3.3V电源
    
      GND接电源负极
    
      RXO接A0
    
      RXI手动接5v
    
    */
    
    
    
    void setup()
    
    {
    
      Serial.begin(9600);
    
      pinMode(A0, INPUT);
    
    }
    
    void loop()
    
    {
    
      int val = analogRead(A0);
    
      Serial.println(val/155);
    
      delay(300);
    
    }
    

    RXI手动接入5V,RXO转换输出3.3V(未接入时输出0V)

    10.jpg

    Arduino实验场景图

    09.jpg

    实验开源图形编程(Mind+)

    11.jpg

    模块应用范围

    1、5V单片机与3.3V单片机串口通信。

    2、3.3V串口下载器与5V单片机串口通信。

    3、5V单片机与3.3V应用模块串口通信。

    模块使用注意事项

    1、如果高压区和低压区的电源已经共地,这模块中的GND只需接1根地即可。

    2、该转换模块相当于一条直线,每个端口都一一对应,只是两边的电压不一样,从而实现了不同电平之间的通讯。

    3、本模块不可以当做稳压器或者变压器的功能进行使用,只可以用于IO口电平之间的小电流的通讯。

    主要优点

    1、适用于低频信号电平转换,价格低廉。

    2、导通后,压降比三极管小。

    3、正反向双向导通,相当于机械开关。

    4、电压型驱动,当然也需要一定的驱动电流,而且有的应用也许比三极管大。

    备注:在I2C电平转换模块的操作中要考虑下面的三种状态——

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

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

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

    这三种状态显示了逻辑电平在总线系统的两个方向上传输,与驱动的部分无关。状态1执行了电平转换功能。状态2和3按照I2C总线规范的要求在两部分的总线线路之间实现“线与”的功能。

    O1CN01fJZqPC251TXouW7dM_!!0-item_pic.jpg

    相关文章

      网友评论

        本文标题:【雕爷学编程】Arduino动手做(128)---2路I2C电平

        本文链接:https://www.haomeiwen.com/subject/hluiydtx.html