2、硬件基础:认识K210开发板(如Sipeed Maix系列)的引脚、核心模块、摄像头接口、屏幕接口及供电方式

K210 是一颗集成 RISC-V 双核 64 位处理器与 KPU(Knowledge Processing Unit,知识处理单元)的 SoC 芯片,专为边缘视觉与音频场景设计。Sipeed Maix 系列开发板(如 Maix Bit、Maix Dock、Maix Go)是围绕 K210 搭建的典型硬件平台,其特点是“无网络也能跑 AI”——模型在本地推理,不依赖云端。理解这块板子的硬件结构,是后续进行人脸识别、物体分类、颜色追踪等视觉任务的前提。本节将从核心模块、引脚功能、摄像头与屏幕接口、供电链路四个维度展开,并给出实际接线与排查方法。

K210 开发板硬件架构与接口链路 K210 SoC 核心 RISC-V 双核 64位 @400MHz KPU 神经网络加速器 FPIOA 可编程 IO 映射 6MB SRAM + 8MB 外部 Flash 摄像头接口 DVP 24-Pin FPC 排线 SCCB + 8bit 并行数据 支持 OV2640 / GC0328 屏幕接口 SPI/LCD 8-Pin 或 24-Pin ST7789 / ILI9341 SPI + DC + RST + BL 供电系统 USB 5V → 3.3V LDO 锂电池 3.7V → 3.3V 最大电流 600mA(峰值) 引脚排针(两侧) 左侧:GPIO / I2C / SPI 右侧:UART / PWM / ADC 3.3V 逻辑电平 板载外设 Boot 按键(下载模式) 复位按键 RST RGB LED(WS2812) DVP 8bit + SCCB SPI + 控制信号 电源 / GND FPIOA 允许将任意外设功能映射到任意引脚,极大提升布线灵活性

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 线烧录固件。
核心原理: K210 的 FPIOA(Field Programmable IO Array)机制允许开发者将任意外设功能(如 UART、SPI、I2C、PWM)映射到芯片的任意物理引脚上。这与传统单片机固定引脚复用不同,极大提高了 PCB 布线的灵活性。例如,你可以将 UART0 的 TX 映射到引脚 10,也可以映射到引脚 20,只需在初始化代码中调用 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 以内。

接线经验: 摄像头 FPC 排线插入开发板时,务必确认金属触点朝向正确——通常排线蓝色加强片朝上,插入后轻轻按压锁扣。如果图像出现花屏或颜色异常,首先检查排线是否完全插入,其次检查摄像头型号是否与固件匹配。

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 线。

风险提示: 切勿将 5V 电压直接连接到 K210 的 3.3V 引脚或 GPIO 引脚,否则会烧毁芯片。所有 GPIO 均为 3.3V 电平,与 5V 逻辑设备通信时必须使用电平转换模块(如 TXS0108E)。

2.6 实战案例:从零点亮摄像头并显示到屏幕

下面通过一个完整的初始化流程,演示如何将摄像头、屏幕和 K210 核心模块协同工作。假设使用 Maix Bit 开发板 + OV2640 摄像头 + 1.54 英寸 ST7789 屏幕。

背景与目标: 在无网络环境下,实现上电后屏幕实时显示摄像头画面,并在左上角叠加“Hello K210”文字。这是所有视觉项目的基础验证步骤。

操作步骤:

  1. 硬件连接: 将 OV2640 摄像头通过 FPC 排线插入开发板背面摄像头接口,确保排线锁扣压紧。将屏幕排线插入正面屏幕接口(注意方向)。
  2. 固件准备: 使用 MaixPy 固件(MicroPython 兼容),通过 kflash.py 工具烧录至 Flash。烧录时按住 BOOT 键再插入 USB,系统会识别为串口设备。
  3. 初始化代码: 在 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)             # 显示到屏幕
    
  4. 运行与验证: 点击运行按钮,屏幕应显示摄像头画面和红色文字。如果画面全黑,检查摄像头排线;如果屏幕无显示,检查屏幕接口方向或背光是否点亮。

结果与复盘: 该案例验证了 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 排线有正反之分,强行插入会损坏排线或座子。