在嵌入式系统或 STM32 平台中常见的 外设芯片 或 模块名称,包括:
- 📺 显示驱动(如 ST7735、OTM8009A、NT35510)
- 📷 摄像头模组(如 OV5640、OV9655、S5K5CAG)
- 💾 Flash 存储器(如 W25Q128J、MX25L512、N25Q512A)
- 👆 触摸屏控制器(如 FT6X06、FT5336、STMPE811)
- 🌐 网络芯片(如 DP83848、LAN8742)
- 🎵 音频芯片(如 WM8994)
- 📐 IO 控制扩展(如 MFXSTM32L152)
- 🧠 多功能芯片/平台控制器(如 STMPE811)
下面我按照功能对这些芯片进行分类和简要解释:
📺 显示相关
名称 | 简介 |
---|
ST7735 | 1.8寸/1.44寸 常见 SPI 接口的 TFT-LCD 控制器 |
ST7789H2 | 高分辨率 SPI TFT 控制器,320x240 常见 |
NT35510 | 高分屏驱动 IC,MIPI/并口接口 |
OTM8009A | 800x480 分辨率 TFT 控制器,常用于 4.3 寸屏 |
RK043FN48H | 4.3寸 480x272 TFT 显示模块(带电容触控) |
TS3510 | 触摸屏控制器,有时用于电阻屏 |
Ampire480272 / Ampire640480 | Ampire 是屏幕品牌,代表分辨率的型号 |
👆 触摸屏控制器(I²C / SPI)
名称 | 简介 |
---|
FT6X06 / FT5336 / FT3X67 | FocalTech 电容触控芯片(支持多点触控) |
STMPE811 | ST 出的电阻触摸 + IO 扩展控制器 |
EXC7200 | EETI 出的电容触摸控制器 |
MFXSTM32L152 | ST 的 IO 扩展芯片,支持触摸/按键检测等功能 |
📷 摄像头模块
名称 | 简介 |
---|
OV5640 | 500 万像素摄像头模块,常见于 STM32 DCMI 示例 |
OV9655 | 130 万像素,较老的摄像头模组 |
S5K5CAG | Samsung 500 万像素摄像头模组,高端应用常见 |
💾 Flash 存储器(SPI/QSPI/NOR)
名称 | 简介 |
---|
W25Q128J | Winbond SPI NOR Flash,128Mbit(16MB) |
MX25L512 | Macronix 512Kbit(64KB) NOR Flash |
N25Q128A / N25Q512A | Micron QSPI Flash,支持 XIP 执行 |
Common | 可能指的是“通用 Flash”类型或分区名称 |
🌐 网络接口芯片
名称 | 简介 |
---|
DP83848 | TI 的 10/100 Mbps 以太网 PHY(MII 接口) |
LAN8742 | Microchip 的 10/100 Mbps PHY,常用于 STM32F7/H7 Eval 板 |
FT6X06 | 同时也被用于 I²C 触控器命名(可能你列重了) |
🔊 音频/语音相关
名称 | 简介 |
---|
WM8994 | Wolfson 出的音频编解码器,常用于 STM32 开发板音频播放 |
🧩 IO 扩展/特殊控制器
名称 | 简介 |
---|
MFXSTM32L152 | ST 出的多功能控制扩展器(GPIO、ADC、温度传感、触控检测等) |
🧠 说明/使用建议
- 这些芯片大多被用于 STM32 的评估板(如 STM32F7/H7 Discovery/Eval)、工业 UI 屏、机器视觉、语音控制等复杂项目。
- ST 的
STM32CubeMX
/ TouchGFX
/ STM32Cube FW
中经常包含这些芯片的驱动支持。 - 比如
OV5640
可用于 DCMI 摄像头应用,OTM8009A
是用于 MIPI 接口的触摸屏显示器。
STM32 系统(尤其是 ST 官方评估板、开发板)常用的 外设器件,涵盖:
- 📺 显示屏和触控控制器
- 📷 摄像头模组
- 💾 Flash 存储器
- 🧭 IMU、加速度计、陀螺仪、磁力计
- 🎵 音频芯片
- 🌐 以太网 PHY
- 🔘 IO 扩展与控制器
我将它们再 分类简明解释一下(不重复前面介绍过的):
📺 显示屏相关
名称 | 简介 |
---|
Ampire480272 / Ampire640480 | Ampire 品牌的 TFT 屏幕,分辨率 480×272 或 640×480 |
ILI9341 / ILI9325 | SPI / 并口 TFT 控制器,常用于 2.4~2.8寸彩屏 |
NT35510 / OTM8009A | MIPI/并口 高分辨率 TFT 控制器(用于手机屏) |
LS016B8UY | Sharp Memory LCD,低功耗显示屏(反射型) |
ST7735 / ST7789H2 | 小尺寸彩屏驱动 IC(SPI 接口) |
👆 电容/电阻触摸屏控制器
名称 | 简介 |
---|
FT3X67 / FT6X06 | FocalTech 电容触摸屏控制器(I²C 接口) |
EXC7200 | 电容触摸控制器(EETI 出品) |
STMPE811 | ST 出的触摸控制 + ADC + IO 扩展器 |
MFXSTM32L152 | ST 多功能扩展器(IO+触摸+ADC) |
TS3510 | 电阻屏控制器(ST 或第三方) |
📷 摄像头模组
名称 | 简介 |
---|
OV2640 | 200 万像素,JPEG 输出,常用于 ESP32-CAM |
OV5640 | 500 万像素,支持 RAW/YUV/JPEG,常用于 STM32 DCMI |
S5K5CAG | Samsung 500 万像素,高端摄像头模组 |
💾 Flash / 存储器
名称 | 简介 |
---|
N25Q128A / N25Q256A / N25Q512A | Micron QSPI/NOR Flash,常用于 XIP 启动 |
S25FL512S | Cypress(原 Spansion)出品的 SPI Flash(512Mbit) |
Common | CubeMX 中常作为通用 Flash 芯片占位符用 |
🧭 传感器类(IMU/陀螺仪/加速度/磁力)
名称 | 类型 | 简介 |
---|
L3GD20 | 陀螺仪 | ST 三轴角速度传感器(SPI/I2C) |
I3G4250D | 陀螺仪 | ST 陀螺仪,温漂性能优于 L3GD20 |
LIS3DSH | 加速度 | 高性能加速度计(内置 FIFO 和中断) |
LIS302DL | 加速度 | STM32F4Discovery 板默认加速度计 |
LSM303DLHC / LSM303AGR | 加速度 + 磁力计二合一 | ST常用组合传感器 |
🌐 网络芯片
名称 | 简介 |
---|
LAN8742 | ST 官方推荐的 PHY(RMII) |
DP83848 | TI 出品的工业级 PHY(MII / RMII) |
🎵 音频编解码器
名称 | 简介 |
---|
CS43L22 | Cirrus Logic 音频编解码器,STM32F4 Disco 默认搭载 |
WM8994 | Wolfson 高级音频 Codec(输入输出均支持) |
🔘 IO 控制与扩展器
名称 | 简介 |
---|
STMPE1600 | IO 扩展芯片(16bit GPIO,I²C 控制) |
STMPE811 | IO + 触控 + ADC 多合一扩展芯片 |
MFXSTM32L152 | ST 多功能控制器,CubeMX支持,具备 IO / ADC / RTC 等功能 |
✅ 应用场景示例
场景 | 典型芯片 |
---|
显示屏 UI(TouchGFX) | ILI9341 + FT6X06、OTM8009A + EXC7200 |
摄像头 DCMI | OV5640 / OV2640 |
数据记录 + 存储 | N25Qxxx、S25FLxxx |
网络通信 | LAN8742 / DP83848 + STM32F7/H7 MAC |
传感器 IMU | LSM303AGR + L3GD20 |
音频播放 | CS43L22 / WM8994 |
教育/开发板 | STMPE811、MFXSTM32L152、LIS302DL |
💡 开发建议
- 使用 STM32CubeMX 时,大多数上述芯片已经集成在 BSP(Board Support Package) 中,配置自动生成初始化代码。
- TouchGFX 工程、STM32F7/H7 示例、摄像头 Demo 等都广泛用到这些芯片。
- 建议查阅各芯片的 datasheet + ST 提供的 example(比如
STM32Cube_FW_H7/Projects/.../Applications/...
)。
你贴出的这个路径是:
~/STM32Cube/Repository/STM32Cube_FW_F4_V1.28.2/Drivers/BSP/Components/Common/
里面的文件是 ST 提供的 通用 BSP 外设抽象层接口头文件,用于统一封装常见外设(如陀螺仪、加速度计、温度传感器、LCD、触摸屏等),这样不同芯片或不同模块之间调用接口保持一致。
📂 每个文件的作用简析:
文件名 | 作用 |
---|
accelero.h | 加速度传感器统一接口 |
gyro.h | 陀螺仪传感器统一接口 |
magneto.h | 磁力计传感器统一接口 |
camera.h | 摄像头(如 OV5640)统一接口 |
audio.h | 音频(如 WM8994)编解码器统一接口 |
epd.h | 电子墨水屏 (E-Paper Display) 接口 |
idd.h | 电流消耗测量(IDD 功耗测量模块) |
io.h | I/O 扩展器(如 STMPE1600、MFXSTM32L152)统一接口 |
lcd.h | LCD 屏幕接口(包括 OTM8009A、ILI9341 等) |
ts.h | 电阻式/电容式触摸屏统一接口(如 FT6X06) |
tsensor.h | 温度传感器统一接口 |
Release_Notes.html | 版本说明文档 |
✅ 举例说明(以 lcd.h
为例)
lcd.h
是 ST 官方封装的一层抽象 API,你不需要关心底层用的是哪块屏(如 ILI9341、OTM8009A、ST7789),只要使用通用 API:
BSP_LCD_Init();
BSP_LCD_Clear(LCD_COLOR_WHITE);
BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"Hello, LCD!", CENTER_MODE);
而具体实现会通过 BSP/Components/<驱动芯片>
中的 .c/.h
文件决定(例如 ili9341.c
、otm8009a.c
)。
💡 为何要用这套结构?
这是一种 面向平台抽象(Platform Abstraction) 的设计方式。好处是:
- 多块不同芯片/模块只要注册自己的驱动实现,接口不变;
- BSP 层代码复用性高;
- 示例代码不依赖具体硬件,适配更快。