2、硬件基础:认识K210开发板(如Sipeed Maix系列)的引脚、核心模块、摄像头接口、屏幕接口及供电方式
K210 是一颗集成 RISC-V 双核 64 位处理器与 KPU(Knowledge Processing Unit,知识处理单元)的 SoC 芯片,专为边缘视觉与音频场景设计。Sipeed Maix 系列开发板(如 Maix Bit、Maix Dock、Maix Go)是围绕 K210 搭建的典型硬件平台,其特点是“无网络也能跑 AI”——模型在本地推理,不依赖云端。理解这块板子的硬件结构,是后续进行人脸识别、物体分类、颜色追踪等视觉任务的前提。本节将从核心模块、引脚功能、摄像头与屏幕接口、供电链路四个维度展开,并给出实际接线与排查方法。
2.1 核心模块:K210 SoC 与板级资源
K210 芯片内部集成了两个 64 位 RISC-V 处理器核心(RV64IMAFDC),主频可运行在 400MHz 左右,并带有 8MB 的片上 SRAM(分为 6MB 通用 SRAM 和 2MB AI 专用 SRAM)。与普通单片机不同,K210 的亮点在于 KPU——一个专门用于卷积神经网络推理的硬件加速单元,支持 YOLO、MobileNet 等常见轻量模型,算力约为 0.8 TOPS。这意味着在无网络环境下,K210 可以独立完成人脸检测、物体分类等任务,而不需要向云端发送图像数据。
在 Maix 系列开发板上,除了 K210 芯片本身,还集成了以下关键器件:
- 外部 Flash: 通常为 8MB 或 16MB 的 SPI Flash(如 W25Q128),用于存储固件、模型文件和运行时数据。K210 本身没有内置非易失存储,所有程序必须从 Flash 加载。
- 板载麦克风(部分型号): Maix Go 等型号带有 MEMS 麦克风,支持语音识别与声源定位,但本课程聚焦视觉应用,麦克风不作为重点。
- RGB LED: 一颗 WS2812 可编程彩灯,用于状态指示或调试反馈,例如在识别到人脸时点亮绿色。
- 按键: 至少包含 BOOT 键(用于进入下载模式)和 RST 键(复位)。BOOT 键在按住状态下上电,会进入 USB 下载模式,允许通过 Type-C 线烧录固件。
fpioa_set_function(pin, FUNC_UART0_TX) 即可。
2.2 引脚功能与排针布局
Maix 系列开发板两侧通常引出 20 至 24 个排针引脚,间距为 2.54mm 标准间距,方便连接面包板或杜邦线。这些引脚并非全部直接连接 K210 的物理引脚,而是经过板级电路(如电平转换、ESD 保护)后引出。下表列出了 Maix Bit 开发板常见的引脚功能分配(不同型号略有差异,请以官方原理图为准):
| 引脚编号(丝印) | 默认功能 | 可复用功能 | 注意事项 |
|---|---|---|---|
| Pin 1 / 2 | 3.3V 电源输出 | — | 最大输出电流约 300mA,超过需外接电源 |
| Pin 3 / 4 | GND | — | 所有 GND 引脚内部连通 |
| Pin 5 | IO0(默认 UART0 TX) | GPIO / PWM / I2C SCL | 下载固件时此引脚会输出日志 |
| Pin 6 | IO1(默认 UART0 RX) | GPIO / PWM / I2C SDA | 与 BOOT 按键配合进入下载模式 |
| Pin 7 | IO2(默认 SPI0 SCK) | GPIO / PWM | 可用于驱动 LCD 屏幕时钟 |
| Pin 8 | IO3(默认 SPI0 MOSI) | GPIO / PWM | LCD 数据线 |
| Pin 9 | IO4(默认 I2C0 SCL) | GPIO / PWM | 连接摄像头 SCCB 时钟 |
| Pin 10 | IO5(默认 I2C0 SDA) | GPIO / PWM | 连接摄像头 SCCB 数据 |
| Pin 11-20 | 通用 GPIO | ADC / PWM / 中断 | ADC 输入范围 0-3.3V,不可超过 |
在实际项目中,建议优先使用排针上丝印标注的默认功能,避免频繁修改 FPIOA 映射导致代码混乱。例如,如果你要连接一个 I2C 温湿度传感器,直接使用 Pin 9(SCL)和 Pin 10(SDA)即可,无需额外配置。
2.3 摄像头接口:DVP 并行接口详解
K210 的摄像头接口采用 DVP(Digital Video Port)并行协议,通过一个 24-Pin 的 FPC 排线连接摄像头模组。DVP 接口包含以下信号组:
- 数据线 D0-D7: 8 位并行像素数据,每个像素时钟周期传输一个字节。
- 同步信号: VSYNC(帧同步)、HSYNC(行同步)、PCLK(像素时钟)。
- 控制总线: SCCB(兼容 I2C 协议),用于配置摄像头寄存器(如分辨率、曝光、白平衡)。
- 电源: 2.8V 或 3.3V 供电,以及 GND。
Maix 系列开发板通常附带 OV2640(200 万像素)或 GC0328(30 万像素)摄像头模组。OV2640 支持最高 1600x1200 分辨率,但在 K210 上常用 QVGA(320x240)或 VGA(640x480)进行实时推理,因为 KPU 的输入尺寸通常被限制在 224x224 或 320x240 以内。
2.4 屏幕接口:SPI 显示屏与调试输出
Maix 开发板板载或通过排针连接 SPI 接口的 TFT-LCD 屏幕,常见尺寸为 1.3 英寸、1.54 英寸或 2.4 英寸,分辨率从 240x240 到 320x240 不等。屏幕接口信号包括:
- SCLK(SPI 时钟) 和 MOSI(主出从入):用于传输像素数据和控制命令。
- DC(数据/命令选择): 高电平表示数据,低电平表示命令。
- CS(片选): 低电平有效,选中屏幕。
- RST(复位): 低电平复位屏幕控制器。
- BL(背光): 控制背光亮度,可接 PWM 实现调光。
屏幕在视觉项目中的主要作用是实时显示摄像头画面和识别结果。例如,人脸检测时可以在屏幕上绘制矩形框并标注“face”字样。由于 SPI 屏幕刷新率有限(通常 30-60fps),在显示视频流时建议降低分辨率至 320x240 以下,否则会出现明显卡顿。
2.5 供电方式与电源设计注意事项
K210 开发板支持多种供电方式,但不同方式对系统稳定性的影响差异显著。以下是三种常见供电场景及其注意事项:
| 供电方式 | 电压 / 电流 | 适用场景 | 风险与建议 |
|---|---|---|---|
| USB Type-C 供电 | 5V / 最大 500mA(电脑 USB) | 开发调试、烧录固件 | 电脑 USB 口可能限流,连接大功率外设(如高亮屏幕)时建议使用带外部电源的 USB HUB |
| 锂电池供电 | 3.7V / 放电电流 1A 以上 | 便携式设备、离线运行 | 需注意电池正负极,板载充电电路支持 4.2V 充电,但充电电流较小(约 500mA) |
| 外部 5V 电源 | 5V / 2A 适配器 | 固定安装、长时间运行 | 确保电源纹波小于 100mV,否则可能导致 K210 死机或摄像头图像抖动 |
K210 芯片核心电压为 0.9V(由板载 DCDC 转换),IO 电压为 3.3V。板载 LDO 或 DCDC 电路将输入电源转换为稳定的 3.3V 和 1.8V(用于摄像头)。当使用 USB 供电时,如果同时驱动摄像头、屏幕和 RGB LED,总电流可能接近 400mA,此时 USB 口电压会跌落,导致系统不稳定。建议在开发阶段使用外部 5V 电源或质量较好的 USB 线。
2.6 实战案例:从零点亮摄像头并显示到屏幕
下面通过一个完整的初始化流程,演示如何将摄像头、屏幕和 K210 核心模块协同工作。假设使用 Maix Bit 开发板 + OV2640 摄像头 + 1.54 英寸 ST7789 屏幕。
背景与目标: 在无网络环境下,实现上电后屏幕实时显示摄像头画面,并在左上角叠加“Hello K210”文字。这是所有视觉项目的基础验证步骤。
操作步骤:
- 硬件连接: 将 OV2640 摄像头通过 FPC 排线插入开发板背面摄像头接口,确保排线锁扣压紧。将屏幕排线插入正面屏幕接口(注意方向)。
- 固件准备: 使用 MaixPy 固件(MicroPython 兼容),通过
kflash.py工具烧录至 Flash。烧录时按住 BOOT 键再插入 USB,系统会识别为串口设备。 - 初始化代码: 在 MaixPy IDE 中编写以下代码:
import sensor, lcd, image # 初始化摄像头 sensor.reset() sensor.set_pixformat(sensor.RGB565) # 使用 RGB565 格式 sensor.set_framesize(sensor.QVGA) # 320x240 分辨率 sensor.run(1) # 初始化屏幕 lcd.init() lcd.set_direction(lcd.YX_LRTD) # 根据屏幕安装方向调整 # 主循环 while True: img = sensor.snapshot() # 采集一帧图像 img.draw_string(10, 10, "Hello K210", color=(255, 0, 0)) lcd.display(img) # 显示到屏幕 - 运行与验证: 点击运行按钮,屏幕应显示摄像头画面和红色文字。如果画面全黑,检查摄像头排线;如果屏幕无显示,检查屏幕接口方向或背光是否点亮。
结果与复盘: 该案例验证了 DVP 摄像头接口、SPI 屏幕接口、电源系统三者的协同工作。实际运行中,帧率约为 25fps,CPU 占用率约 30%。如果帧率过低,可以尝试将分辨率降至 240x240,或关闭屏幕显示(仅保存图像到 SD 卡)。
lcd.set_direction() 参数是否与屏幕安装方向匹配。当摄像头图像偏色时,执行 sensor.set_auto_whitebal(True) 开启自动白平衡。若系统反复重启,测量 3.3V 引脚电压是否稳定在 3.3V±5% 范围内。
2.7 常见误区与总结
在硬件使用过程中,初学者容易陷入以下误区:
- 误区一: 认为所有 GPIO 都能直接驱动大电流负载。实际上 K210 的 GPIO 最大输出电流仅约 8mA,驱动 LED 需要串联限流电阻,驱动继电器或电机必须使用三极管或 MOS 管。
- 误区二: 忽略 FPIOA 的映射冲突。例如,将 UART0 的 TX 映射到某个引脚后,该引脚不能再用于其他功能,否则会导致通信异常。
- 误区三: 使用劣质 USB 线导致供电不足。细长的 USB 线内阻大,在 400mA 电流下可能产生 0.5V 压降,使板载 3.3V 电压跌落到 2.8V 以下,引发随机死机。
- 误区四: 摄像头排线插反。FPC 排线有正反之分,强行插入会损坏排线或座子。