串口通讯

UART

UART:Universal Asynchronous Receiver/Transmitter 通用异步收发器

  • RX 接收
  • TX 发送

USART

USART:Universal Synchronous/Asynchronous Receiver/Transmitter 通用同步/异步收发器,UART 升级版

  • 时钟线(CLK)
  • RX 接收
  • TX 发送

I2C

时钟频率:常见的传感器(如 MPUs, OLED)多用400 kHz频率,100 kHz最基础的速率,几乎所有设备都支持,新型号芯片支持1MHz,或特殊电路设计达到3.4MHz。

  • SDA 数据
  • SCL 时钟

I2S

I2S “数字音频传输协议“(Digital Audio Interface),专用于音频,I2S 传输的是PCM数据

PCM 音频数据(已经解码好的采样值)

例如:44.1kHz / 16bit(每秒44100 个采样点,每采样点有2^16=65536个电压采样可能性)

算一下单声道数据率:

$$
44100 \times 16 = 705600 \ \text{bit/s}
$$

👉 ≈ 706 kbps(单声道)

🎧 双声道(立体声)

$$
44100 \times 16 \times 2 = 1{,}411{,}200 \ \text{bit/s}
$$

👉 ≈ 1.4 Mbps

可理解为,I2S = 按时间顺序传输“电压采样点”

1
2
3
4
5
6
7
8
9
10
11
12
13
音频文件(MP3)
↓ 解码
PCM数据

I2S

DAC

模拟信号

功放(比如 LTK5208)

喇叭

SPI

时钟频率:

场景 典型时钟频率范围 常见应用
低速设备 1 MHz - 5 MHz 简单的传感器、电位计。
普通设备 10 MHz - 25 MHz 128x64 显示屏、SD 卡读写、外部 Flash。
高速设备 50 MHz - 100 MHz+ 高清 TFT 屏幕、高速 FPGA 间通信。

引脚描述:

引脚名称 功能描述 主设备 (Master) 从设备 (Slave)
SCLK 串行时钟(Serial Clock):由主设备生成的时钟信号,用于同步数据传输。 输出 输入
MOSI 主输出从输入(Master Out Slave In):主设备向从设备发送数据的信号线。 输出 输入
MISO 主输入从输出(Master In Slave Out):从设备向主设备发送数据的信号线。 输入 输出
CS/SS 片选(Chip Select)/从属选择(Slave Select):用于选择从设备的信号,通常为低电平有效。 输出 输入

调试协议

JTAG

信号线

  • TMS(Test Mode Select) 模式选择信号,引导 TAP 进入不同的状态,如 Shift-DR、Shift-IR、Capture 或 Update 等状态
  • TCK(Test Clock) 时钟信号
  • TDI(Test Data In) 数据流向:调试器 → 被调试设备(Target)
  • TDO(Test Data Out) 数据流向:被调试设备(Target) → 调试器。

SWD

调试STM32设备协议,由JTAG转化而来的升级版;

信号线

  • SWDIO:双向数据传输线,用于发送和接收数据。
  • SWCLK:时钟信号。