首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

IIC总线的硬件解析

IIC总线有主从之分,从设备可以是多个,这个是由硬件电路与协议决定的,一般来说总线上扩展的器件数量主要由电容负载来决定。...因为每个器件的总线接口都有一定的等效电容.而线路中电容会影响总线传输速度.当电容过大时,有可能造成传输错误. 所以需要根据不同的负载电容去估算支持的最大从设备的数量。...上拉电阻Rp的最大值计算: 总线电容是线路连接和管脚的总电容,它决定了Rp 的最大值。 标准模式:每条总线线路的最大电容负载都为400pF。...(注意还要满足Tr<300ns) 快速模式:每条总线线路的最大电容负载都为200pF。...硬件调试方法: 下面简单说下IIC总线设备的调试方法。 第一,请正确给出从设备的地址,一般有pin可以给你自己配置,也有的是IC固定下来的,请务必保证总线上所有的地址都不冲突。

1.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    2.1 IIC协议的FPGA实现(一)IIC 总线规范简介

    2.1 IIC协议的FPGA实现 2.1.1 IIC 总线规范简介 1) IIC 总线特性介绍   在现代电子产品开发过程中,为了简化系统,提高系统的可靠性,缩短产品开发周期,增加硬件构成的灵活性,推出了一种高效...、可靠、方便的 IIC串行总线。...2) IIC 标准模式总线规范  IIC总线可通过串行数据(SDA)和串行时钟(SCL)线与总线上的任何一个器件连接,每 个器件都有一个唯一的地址,都可以作为一个发送器或接收器。...至于硬件地址就是 IIC 设备在总线上辨识地址,默认下为 3 位,即同类的 IIC 设备在同一条 IIC总线上仅允许占据 8 个而已。然而,开发板上的 24LC04 为 3’b000。...Start 是 IIC 总线的起始位, Stop 是 IIC 总线的结束位, Data 是 IIC 总线的数据位,为了确保三者成功写入从机, Setup Time 与 Hold Time 必须得到满足。

    1.5K10

    IIC总线最多可以挂多少个设备

    IIC(Inter-Integrated Circuit)其实是IIC Bus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展...IIC总线最多可以挂多少个设备由IIC地址决定,8位地址,减去1位广播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127个地址, 所以理论上可以挂127个从器件。...总线之所以规定电容大小是因为,IIC的OD要求外部有电阻上拉,电阻和总线电容产生了一个RC延时效应,电容越大信号的边沿就越缓,有可能带来信号质量风险。...所以结论就是IIC总线挂载设备一般在8个以下。...补充: IIC协议经常用在一些外部存储器件,比如64K、128K的flash,主控和flash之间是IIC通信,Linux内核有写的非常规范的IIC协议和各种所需的结构体,可以参考。

    3.3K40

    IIC总线最多可以挂多少个设备

    IIC(Inter-Integrated Circuit)其实是IIC Bus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展...IIC总线最多可以挂多少个设备由IIC地址决定,8位地址,减去1位广播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127个地址, 所以理论上可以挂127个从器件。...但是 IIC协议没有规定总线上device最大数目,但是规定了总线电容不能超过400pF。 管脚都是有输入电容的,PCB上也会有寄生电容,所以会有一个限制。实际设计中经验值大概是不超过8个器件。...总线之所以规定电容大小是因为,IIC的OD要求外部有电阻上拉,电阻和总线电容产生了一个RC延时效应,电容越大信号的边沿就越缓,有可能带来信号质量风险。...所以结论就是IIC总线挂载设备一般在8个以下。

    1.9K50

    linux_驱动_IIC_BLSP

    每一块BLSP对应六位,每一位对应一个GPIO,每一位的GPIO都可以作为UART、SPI、IIC的链接线 2....需要通过平台的数据手册 来确定用哪块BLSP的哪个QUP链接是哪个GPIO,这些个GPIO支持的是什么类型的总线(三大总线之一),每一位又是作为三大总线的哪一条 3....BAM中断与外设中断:BAM中断意味着数据读取/写入完成 外设状态和错误的等级会引发外设中断 应用实例: 1.基础概念 (1) Bus Access Module (BAM),总线访问模块 BAM...is used to move data to/from the peripheral buffers. (2) BAM Low-Speed Peripheral (BLSP),低速接口的总线访问模块...Peripheral (QUP)和六个UART cores、其中SPI和IC2核心集成到一个名字为QUP核心,并且共享同一个FIFO,而UART_DM单独集成并有自己的FIFO,所有的这3个core共享同一个总线接口

    79390

    IIC

    IIC 简介 IC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。...下图是一个嵌入式系统中处理器仅通过2根线的IIC总线控制多个IIC外设的典型应用图 ?...所有接到 IIC 总线设备上的串行数据 SDA 都接到总线的 SDA 上,各设备的时钟线 SCL 接到总线的 SCL 上。对于并联在一条总线上的每个 IIC 都有唯一的地址。...空闲状态 当 IIC 总线的数据线 SDA 和时钟线 SCL 两条信号线同时处于高电平时,规定为总线的空闲状态。...IIC 总线操作 对 IIC 总线的操作实际就是主从设备之间的读写操作。大致可分为以下三种操作情况: 主设备往从设备中写数据 数据包括从机寄存器地址和需要写入寄存器的数据data ?

    1K11

    IIC协议

    IIC协议解释 (1)概述 I2C(Inter-Integrated Circuit BUS) 集成电路总线,该总线由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用...(2)IIC的物理层 a.只要求两条总线线路,一条是串行数据线SDA,一条是串行时钟线SCL。(IIC是半双工,而不是全双工)。...c.IIC是真正的多主机总线,(而这个SPI在每次通信前都需要把主机定死,而IIC可以在通讯过程中,改变主机),如果两个或更多的主机同时请求总线,可以通过冲突检测和仲裁防止总线数据被破坏。...e.连接到总线的IC数量只是受到总线的最大负载电容400pf限制。 一个典型的IIC接口如下图(1)所示 ? 图(1) (3)IIC的协议层 IIC的协议层才是掌握IIC的关键。...即使是含有IIC硬件的单片机(如stm32 103系列)也有一定的缺陷,所以一般也会模拟IIC的时序。现将具体时间截图如下: ?

    1.1K10

    Linux PCI和PCIe总线

    ,PCIe规范中引入,比较快 – endpoint,x86主板上内置设备的总线号一般为0,而外挂EP的总线号一般从1开始 Figure 3-1 Type0 Header Figure 3-2 Type1...,所以总线编号是8位。...但对于大型系统而言,这是不够的,所以,引入了域的概念,每个PCI域可以拥有最多256个总线,每个总线上可支持32个设备,所以设备号是5位,而每个设备上最多可有8种功能,所以功能号是3位 – I210一般连接在...pcibios_init x86 BIOS专门提供了针对PCI总线的操作,这些操作里就包括了总线枚举的整个过程,Linux kernel中的宏CONFIG_PCI_BIOS。...在系统加电以后自检时,就会完成对PCI总线的枚举,之后Linux对PCI配置空间的访问都是通过BIOS调用的形式进行,提供有这些功能和服务的BIOS就称之为PCI BIOS 。

    6.1K40

    IIC设备驱动实例调试

    记录一次自己调试linux开发板iic器件(ap3216c光敏设备)。 概述: iic通讯线一般只有两条,一条用于时钟控制,一条用于数据通讯。当然也存在单总线通讯,像单片机经常用到的ds18b20。...撸码: 1详细信息: 平台:imx6ull开发板 linux版本:4.9.88 开发编辑器:gediit 2概要: 在linux源码中,已经实现了iic主机通讯协议传输的各种传输接口。...在系统初始化时,会遍历iic驱动链表将本驱动注册。具体原理可查阅代码include/linux/i2c.h。...总线上,所以在设备树配置中,只需要在i2c1下添加上ap3216c设备节点即可,根据手册查阅本设备iic地址为0x1e。...对于使用过单片机调试iic设备的同学,对于iic通讯应该很熟悉了,主要就是对linux驱动注册流程稍加研究即可。

    1.4K21

    IIC实测波形入手,搞懂IIC通信

    Circuit,集成电路总线)是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。...IIC的一些特点: IIC是半双工,而不是全双工 IIC是真正的多主机总线,(对比SPI在每次通信前都需要把主机定死,而IIC可以在通讯过程中,改变主机),如果两个或更多的主机同时请求总线,可以通过冲突检测和仲裁防止总线数据被破坏...起始和终止信号都是由主机发出的,连接到IIC总线上的器件,若具有IIC总线的硬件接口,则很容易检测到起始和终止信号 在起始信号后必须发送一个7位从机地址+1位方向位,用“0”表示主机发送数据,“1”表示主机接收数据...IIC通信线只有只有两根,数据线SDA的高低电平传输2进制的数据,时钟线SCL通过方波信号提供时钟节拍 多个IIC器件可以并联在IIC总线上,每个器件有特定的地址,分时共享IIC总线 实际使用IIC当然还要连接电源以及共地哦...最后SDA和SCL都为高,即释放IIC总线IIC总线进入空闲状态。

    2.7K41

    ARM(十五).IIC with IRQ

    协议转输进行探究 ---- 概要 ---- IIC协议转输 要求 使用 IIC 协议在 ARM 板上24C02芯片中存取数据 IIC 原理图 IIC总线连接方式 AT24C02A电路原理图 创建项目...,数据输出使能位,总线仲裁成功,address-as-slave状态标志位清0,地址0状态标志位清0,最后收到位状态标志位清0(最后收到位是0 ACK位) rINTMSK &= ~BIT_IIC;...总线数据输出使能(有效Rx/Tx),总线仲裁成功,最后收到位是0(收到ACK) rIICCON = 0xaf; //(1010 1111)恢复IIC模式 Delay(50000...总线数据输出使能(有效Rx/Tx),总线仲裁成功,最后收到位是0(收到ACK) rIICCON = 0xaf; //(1010 1111)恢复IIC模式,IIC总线应答启用, 传输时钟预定标器源时针钟选择位为...总线数据输出使能(有效Rx/Tx),总线仲裁成功,最后收到位是0(收到ACK) rIICCON = 0xaf; //(1010 1111)恢复IIC模式 Delay(50000);

    95920

    Linux 总线、设备、驱动模型的探究

    下面进入今天的话题——总线、设备和驱动模型的探究。 设想一个叫 GITCHAT 的网卡,它需要接在 CPU 的内部总线上,需要地址总线、数据总线和控制总线,以及中断 pin 脚等。 ?...没错,Linux 内核里就是运用了这种设计思想去对设备和驱动进行适配隔离的,只不过在内核里我们不叫做适配层,而取名为总线,意为通过这个总线去把驱动和对应的设备绑定一起,如图: ?...基于这种设计思想,Linux 把设备驱动分为了总线、设备和驱动三个实体,这三个实体在内核里的职责分别如下: ?...最底层是不同板子的板级文件代码,中间层是内核的总线,最上层是对应的驱动,现在描述板级的代码已经和驱动解耦了,这也是 Linux 设备驱动模型最早的实现机制,但随着时代的发展,就像是人类的贪婪促进了社会的进步一样...完美的 Linux 怎么会允许这样的事情存在,于是乎,设备树(DTS)就登向了历史舞台,下一篇内容将探讨设备树的实现原理和用法。 【部分内容整理于宋宝华老师课程】

    6.5K41

    Linux笔记(21)| platform总线驱动分析

    //本文主要参考《野火Linux实战开发指南》 上次跟大家分享了设备模型的一些东西,包括总线、设备、驱动等的一些概念,还有他们之间的联系。...因为在Linux当中,对于I2C、SPI、USB这些常见类型的物理总线来说,Linux内核会自动创建与之相应的驱动总线,因此I2C设备、SPI设备、 USB设备自然是注册挂载在相应的总线上。...它们也就没有相应的物理总线,比如led、rtc时钟、蜂鸣器、按键等等,Linux内核将不会为它们创建相应的驱动总线。...为了使这部分设备的驱动开发也能够遵循设备驱动模型,Linux内核引入了一种虚拟的总线——平台总线(platform bus)。...> #include #include #include #include <linux/fs.h

    2.4K40
    领券