打工人日报#20251202

打工人日报#20251202

2C 和 SPI 并非随便选择几个引脚然后设置时序就能实现,虽然从原理上理解它们基于特定时序通信,但实际应用中有诸多限制与要求:

I2C

引脚特性

SCL(时钟线)和 SDA(数据线):I2C 标准规定使用这两根线进行通信。在大多数微控制器中,通常有特定的引脚被指定为 I2C 功能引脚,这些引脚具备开漏输出特性 。开漏输出意味着引脚只能拉低电平,高电平需要通过上拉电阻到电源来实现。例如,STM32 系列微控制器,有专门的 I2C 外设引脚,如 PB6(SCL)和 PB7(SDA)可作为 I2C1 的默认引脚。

上拉电阻:由于 I2C 引脚的开漏特性,必须接上拉电阻。上拉电阻的值通常在 1kΩ - 10kΩ 之间,常见取值为 4.7kΩ。上拉电阻的作用是在总线空闲时将 SCL 和 SDA 线拉高到高电平,确保信号的正常传输和电平状态的稳定。

时序要求严格

起始和停止条件:起始条件是当 SCL 为高电平时,SDA 由高电平向低电平跳变;停止条件是当 SCL 为高电平时,SDA 由低电平向高电平跳变。这些条件的时序要求非常精确,例如起始条件下 SCL 高电平期间 SDA 的电平变化必须在规定的时间内完成,否则从设备可能无法正确识别起始信号。

数据传输:数据在 SCL 的低电平期间改变,在 SCL 高电平期间保持稳定以供从设备采样。每个数据位的传输都要严格遵循这种时序,并且数据传输的速率也有规定,标准模式下速率为 100kbps,快速模式为 400kbps,高速模式可达 3.4Mbps,不同模式对时序的要求不同。

SPI

引脚功能特定

MOSI(主机输出从机输入)、MISO(主机输入从机输出)、SCK(串行时钟)和 SS(从机选择):SPI 通信至少需要这四根线(有些简单应用中可能会共享某些线)。在不同的微控制器中,这些信号通常对应特定的引脚。例如,Arduino 的 SPI 通信,MOSI 对应 D11 引脚,MISO 对应 D12 引脚,SCK 对应 D13 引脚,SS 引脚可根据实际连接的从设备选择不同引脚。

引脚复用:很多微控制器的引脚具有复用功能,SPI 相关引脚可能会与其他外设功能复用。例如,在一些芯片中,SPI 的 SCK 引脚可能同时也能作为普通 GPIO 或者其他通信接口的时钟引脚,这就需要通过配置寄存器来选择使用 SPI 功能。

时序模式多样

四种工作模式:SPI 有四种工作模式,由时钟极性(CPOL)和时钟相位(CPHA)决定。CPOL 决定时钟空闲时的电平状态(0 为低电平空闲,1 为高电平空闲),CPHA 决定数据采样的时钟沿(0 为在时钟的第一个沿采样,1 为在时钟的第二个沿采样)。主机和从机必须配置为相同的工作模式才能正常通信,例如主机设置为 CPOL = 0,CPHA = 0 模式,从机也需要设置为相同模式。

速率限制:SPI 的数据传输速率取决于主机的时钟发生器和相关寄存器配置,同时也受到硬件电路和从设备的限制。过高的传输速率可能会导致信号失真、数据传输错误等问题,例如在长距离传输或者连接低速从设备时,需要适当降低传输速率。

阅读

《命运》

相关推荐
云山工作室1 小时前
基于单片机的智能电表
单片机·毕业设计·毕设
不怕犯错,就怕不做2 小时前
RK3562 +RK817的dts布尔属性解析(uboot基础知识)
linux·驱动开发·嵌入式硬件
逐梦之程3 小时前
STM32的串口通讯--DMA接收和CPU接收不定长数据帧对比
stm32·单片机·嵌入式硬件
文弱书生6563 小时前
2-electronbot主控免驱工程结构
linux·单片机·嵌入式硬件
求知喻4 小时前
LCD真值表
单片机·嵌入式硬件
csg11075 小时前
高效驱动,灵活控制:深度解析RZ7899大电流DC双向马达驱动芯片及其创新应用
单片机·嵌入式硬件·物联网
心疼你的一切5 小时前
三菱FX5U PLC与C#通信开发指南
开发语言·单片机·c#
JSMSEMI116 小时前
JSM9N20C 200V N 沟道 MOSFET
单片机·嵌入式硬件
梁下轻语的秋缘7 小时前
I2S与I2C
运维·stm32·单片机·51单片机
chipsense7 小时前
机器人用霍尔电流传感器,能提升操作安全性么?
单片机·嵌入式硬件·人形机器人·霍尔电流传感器