I2C的功能和配置

这篇具有很好参考价值的文章主要介绍了I2C的功能和配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

I2c的功能

适用于主从机之间的通信,通过数据引脚(SDA)和时钟引脚(SCL)连接到I2C总线,实现100khz/400khz的通信

通信的流程

通信对于主机从机都是有接受和发送的模式,主模式的时候,i2c启动数据传输同时产生时钟信号起始条件和中止条件都由软件进行控制。从模式能够识别自己的地址,软件可以控制开启或者关闭识别。

数据和地址按照8位进行一个传输,由高位到地位,传输完成一个字节之后接收器返回一个ack进行应答,如果数据接收完毕,不再进行传输的话,返回一个nack。

启动条件:SCL,SDA默认情况下都是高电平,当sda转化为低电平

停止条件:SCL高电平,SDA转化为高电平

通信的时候,0表示为低电平,1表示为高电平

I2C默认工作在从模式,检测到起始条件时,SDA上接受到的地址将被送到移位寄存器,与自己的地址进行比较。匹配成功的从机会发送一个低电平

地址帧的末尾有一个读写位,如果是主机发送是低电平,接受为高电平

当SCL为高电平的时候,读取SDA上的信号值

i2c配置寄存器,单片机,嵌入式硬件,stm32,Powered by 金山文档

使用小马哥四轴学习平台的例程进行说明

i2c配置寄存器,单片机,嵌入式硬件,stm32,Powered by 金山文档

通过配置GPIO口为复用输出和浮空输入,实现对SDA线的一个电平配置

i2c配置寄存器,单片机,嵌入式硬件,stm32,Powered by 金山文档

配置GPIO口的原理如上图

i2c配置寄存器,单片机,嵌入式硬件,stm32,Powered by 金山文档

起始信号的配置

i2c配置寄存器,单片机,嵌入式硬件,stm32,Powered by 金山文档

首先配置mcu使开启SDA,把SDA,SCL设置为高电平,确定为待机,通过拉低SDA的电平,表示起始信号,延时,拉低SCL的电平,准备最开始的通信,具体原理看上面的时序图。

停止信号的配置

i2c配置寄存器,单片机,嵌入式硬件,stm32,Powered by 金山文档

读取数据

i2c配置寄存器,单片机,嵌入式硬件,stm32,Powered by 金山文档

发送数据

i2c配置寄存器,单片机,嵌入式硬件,stm32,Powered by 金山文档

发送应答

i2c配置寄存器,单片机,嵌入式硬件,stm32,Powered by 金山文档

等待应答的配置

i2c配置寄存器,单片机,嵌入式硬件,stm32,Powered by 金山文档

MPU9250与MCU的通信

MPU9250与i2c的通信时序如图

该图为多字节写入

i2c配置寄存器,单片机,嵌入式硬件,stm32,Powered by 金山文档

首先由主机发送一个起始信号,表示通信开始,之后发送地址和从机的控制(读写)指令。等目标从机发送ack之后发送需要写入的外设的寄存器的地址,之后进行数据的传输,代码实现如图

i2c配置寄存器,单片机,嵌入式硬件,stm32,Powered by 金山文档

多字节读取

i2c配置寄存器,单片机,嵌入式硬件,stm32,Powered by 金山文档

注意发送寄存器地址之后要写入一个读的指令 文章来源地址https://www.toymoban.com/news/detail-707639.html

i2c配置寄存器,单片机,嵌入式硬件,stm32,Powered by 金山文档

到了这里,关于I2C的功能和配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32 CubeMX】I2C层次结构、I2C协议

    在STM32 CubeMX环境中,I2C(Inter-Integrated Circuit)是一种常用的串行通信协议,广泛应用于连接各种外设和传感器。理解I2C的层次结构、协议和硬件结构对于STM32微控制器的开发至关重要。通过STM32 CubeMX提供的图形化配置工具,我们能够更轻松地理解和配置I2C通信,同时深入了解

    2024年02月22日
    浏览(76)
  • DSPF2833x:IIC配置[DSP I2C]

    如图所示,IIC总线由SDA数据线和SCL时钟线组成,同时总线上外接上拉电阻确保信号的稳定性,设备对应挂载到总线上。 IIC总线时钟频率经过两次分频可得,如下图所示。 时钟频率的计算公式如下: I2C模块时钟(I2C Module Clock) = 系统时钟(SYSCLK) / (I2CPSC + 1) I2C总线时钟(I

    2024年01月24日
    浏览(34)
  • 【I2C 通信的工作原理是什么?Arduino 和 I2C 教程】

    在本教程中,我们将了解 I2C 通信协议的工作原理,我们还将使用 Arduino 板和使用该协议的传感器制作一个实际示例。您可以观看以下视频或阅读下面的书面教程。 I2C通信总线非常流行,并被许多电子设备广泛使用,因为它可以很容易地在许多需要主设备与多个从设备甚至多

    2024年02月05日
    浏览(36)
  • I2C用法和MSP430F5299上的I2C

    1. 二线传输; 2. 无中心主机; 3. 软件寻址; 4. 应答式数据传输过程; 5. 节点可带点接入或撤出; 6. IIC的SCL和SDA都需要接上拉电阻,保证空闲状态的稳定性; 由主机发出起始信号和停止信号。 起始信号: 当SCL保持为高电平时,SDA产生一个下降沿,则代表起始信号; 停止信

    2024年02月13日
    浏览(48)
  • 由I2C data信号低电平不到0,再思考I2C及GPIO

    最近做项目测试时发现I2C data信号低电平不能完全到0电平,如下图 量测到低电平最大值150mV左右,检查SOC及负载端SPEC,低电平最大值都是VIL max =0.35VDD 对于1.8V的IO 电平,这个电压是0.35x1.8=0.63V 显然150mV630mV,不影响逻辑判断,因此从项目的角度考虑,此问题并不影响项目,可以

    2023年04月24日
    浏览(43)
  • 关于Linux下i2c-tool工具(i2cdetect/i2cget/i2cset/i2ctransfer)及memtool32工具直接操作寄存器的使用

    1. 首先本人是直接下载的i2c-tool和memtool32工具到开发板内直接使用: 2. i2cdetect命令:该命令是用于扫描板卡内i2c总线上的设备 输入./i2cdetect,会出现i2cdetect指令的语法操作说明 参数说明:         参数y:关闭交互模式,使用该参数时,不会提示警告信息。         参

    2024年04月27日
    浏览(39)
  • 【SA8295P 源码分析】13 - Android GVM 虚拟机 QUPv3 UART / SPI / I2C功能配置及透传配置

    【源码分析】 因为一些原因,本文需要移除, 对于已经购买的兄弟,不用担心,不是跑路, 我会继续持续提供技术支持, 有什么模块想学习的,或者有什么问题有疑问的, 请私聊我,我们 +VX 沟通技术问题,一起学习,一起进步 接下来,我一一私聊已经购买的兄弟添加V

    2024年02月12日
    浏览(35)
  • I2C协议介绍以及HAL库实现I2C对SHT30温湿度采样

    (1)I2C协议简介 I2C总线是Philips公司在八十年代初推出的一种串行、半双工的总线,主要用于近距离、低速的芯片之间的通信。 12C Bus(IIC, Inter-Integrated Circuit Bus)是由一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步,利用上拉电阻将它们拉成高电平(表示总

    2023年04月24日
    浏览(63)
  • I2C通信

    I2C写数据时序如图:  通过解析器解析I2C通信如上图(SCL和SDA反了)。 1---起始信号        2、3---应答信号ACK       5---停止信号 起始信号:SCL线是高电平时,SDA线从高电平向低电平切换。 停止信号SCL线是高电平时,SDA线从低电平向高电平切换。 I2C通信的过程: 起始---写

    2023年04月18日
    浏览(43)
  • S32K3系列 --- 硬件I2C Mcal配置

    网上看到很多I2C的教程,基本都是模拟I2C,现在S32K3的芯片支持硬件I2C,我想着就配一个硬件的出来吧,这边记录一下,供大家学习。 这里主要教大家如何去配置,去使用。 原理的话可以参考这篇文章: 一文搞懂I2C通信总线_i2c通信的详细讲解-CSDN博客 I2C时序 这里我们用I2C与

    2024年01月18日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包