0
点赞
收藏
分享

微信扫一扫

Raspberry Pi Pico SDK开发-I2C

I2C

RP2040 由 Raspberry Pi 设计,具有双核 Arm Cortex-M0+ 处理器和 264KB 内部 RAM,并支持高达 16MB 的片外闪存。 广泛的灵活 I/O 选项包括 I2C、SPI 和独特的可编程 I/O (PIO)。

本实例将演示如何使用I2C进行设备地址扫描。

在这里插入图片描述

1、I2C介绍

I2C总线是两线串行接口,由串行数据线SDA和串行时钟 SCL组成。 这些线路在连接到总线的设备之间传输信息。 每个设备都由一个唯一的7位地址识别,并且可以作为“发送器”或“接收器”运行,具体取决于设备的功能。 在执行数据传输时,设备也可以被视为主机或从机。 主机是在总线上启动数据传输并生成时钟信号以允许传输的设备。 数据传输中的第一个字节始终包含7位地址和LSB位置的读/写位。 该 API 负责切换读/写位。 在此之后,任何被寻址的设备都被视为从设备。它有许多不寻常的属性:

  • SCL可以在任何时间、任何时间、由总线的任何成员(不一定是传输的目标或发起者)保持为低电平。 这称为时钟延长。 在所有驱动程序释放时钟之前,总线不会前进。
  • 总线成员可以成为一个传输的目标并启动其他传输(主/从角色不固定)。 然而,大多数I2C硬件对此的支持很差。
  • SCL不是边沿敏感时钟,而是SDA必须在SCL为高电平的整个时间内有效
  • 尽管SDA对SCL是透明的,但SCL为高时SDA的转换用于标记传输的开始和结束(开始/停止),或一个内的新地址阶段(重新启动
举报

相关推荐

0 条评论