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

阅读

《命运》

相关推荐
youcans_1 小时前
【嵌入式软件AI编程】22. STM32 基础实验:GPIO外部中断
stm32·单片机·嵌入式硬件·ai编程·claude
未来_攻城狮1 小时前
STM32F407VGT6 芯片详解:高性能 Cortex-M4 MCU 入门指南
stm32·单片机·嵌入式硬件
xcLeigh1 小时前
FreeRTOS实战:用STM32+SEGGER打造工业级实时嵌入式系统
人工智能·stm32·单片机·嵌入式硬件·ai
路上有只喵2 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇1
单片机·嵌入式硬件
芯岭技术郦2 小时前
XL4460 FSK 无线透传模组
stm32·单片机·嵌入式硬件
半导体憨包2 小时前
共源共栅(Cascode)功率器件:让 SiC / GaN “兼容“你的硅栅驱动
嵌入式硬件·生成对抗网络·硬件工程·半导体·dc-dc·半导体芯片
天空'之城2 小时前
单片机基础核心知识点汇总(五十)
单片机·嵌入式硬件
硅基造物主3 小时前
STM32 从 0 到 1 做智能家居(十):串口与 printf 重定向
stm32·单片机·智能家居·usart·中断
新晨单片机设计5 小时前
S033A-基于STM32单片机拼图游戏机【Proteus仿真+Keil程序+原理图】
stm32·单片机·嵌入式硬件·拼图游戏机
Silicore_Emma6 小时前
D2596HV:高压异步DC-DC降压芯片简介
嵌入式硬件·消费电子·dc-dc系列电路·电源管理电路·降压(buck)开关稳压器