在嵌入式系統或 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 是屏幕品牌,代表分辨率的型號
👆 觸摸屏控制器(I2C / 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 同時也被用于 I2C 觸控器命名(可能你列重了)
🔊 音頻/語音相關名稱 簡介 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 電容觸摸屏控制器(I2C 接口) 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,I2C 控制) 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 層代碼復用性高; 示例代碼不依賴具體硬件,適配更快。