ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Zephyr 上的 Google Quincy 开发板:面向指纹功能的 MCU 开发平台实战指南

Zephyr 上的 Google Quincy 开发板:面向指纹功能的 MCU 开发平台实战指南 Zephyr 上的 Google Quincy 开发板面向指纹功能的 MCU 开发平台实战指南【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyrGoogle Quincy 是 Zephyr 官方仓库中由 Google 贡献的一块 MCU 开发板专门用于指纹fingerprint相关功能开发。本指南以其板级文档 boards/google/quincy/doc/index.rst 为骨架结合仓库中的设备树、Kconfig、构建元数据与烧录脚本完整讲解该板卡的硬件组成、外设引脚映射、设备树配置、系统级默认配置以及 μServo / SWD / J-Link 等多种烧录与调试方案。读完本文你将掌握如何在 Zephyr 中为目标google_quincy构建、配置和调试应用并理解指纹 MCU 板级 BSP 的关键实现细节。板卡概述为指纹功能而生的开发平台Quincy 是一块由 Google 设计的开发板其核心用途是承载指纹fingerprint相关功能的开发与验证。与通用开发板不同Quincy 的板载接口专门围绕指纹传感器生态做了裁剪板卡提供专用的指纹传感器连接器用于外接指纹模组UART 控制台Console通过 μServo 与 USB 连接器引出方便开发者通过串口观察日志、交互调试MCU 支持通过μServo或SWD两种方式烧录固件。在 Zephyr 中该板卡以google_quincy作为 board target其兼容字符串为google,quincy-fpmcufpmcu 即 Fingerprint MCU可见它在产品线中的定位就是指纹 MCU。硬件核心NPCX99FPA0BX 指纹 MCUQuincy 板载的 MCU 是Nuvoton NPCX99FPA0BX采用VFBGA144封装。从板级 Kconfig 可以看到该芯片对应 Zephyr SoC 型号SOC_NPCX9MFPconfig BOARD_GOOGLE_QUINCY select SOC_NPCX9MFP见 boards/google/quincy/Kconfig.google_quincy板卡元数据 boards/google/quincy/google_quincy.yaml 进一步给出了该平台的关键规格属性值identifiergoogle_quincy架构armCortex-M 系列J-Link 调试器识别为 Cortex-M4RAM512 KBFlash1024 KB工具链zephyr、gnuarmemb受支持子系统clock、gpio、i2c、pm、pwm、spi、uart、watchdog外设引脚映射原文档给出了 Quincy 板级最核心的引脚分配表这是进行任何外设开发串口、SPI 通信时的第一手参考。以下表格完整保留并补充了各外设的角色说明外设功能角色CS / TXCLK / RXMISOMOSIUART_1CONSOLE控制台GPIO65 (TX)GPIO64 (RX)——UART_2PROG编程/调试GPIO86 (TX)GPIO75 (RX)——SPI_0SHI与 AP 主机通信GPIO53 (CS)GPIO55 (CLK)GPIO47 (MISO)GPIO46 (MOSI)SPI_1SPIP指纹传感器GPIOA6 (CS)GPIOA1 (CLK)GPIO95 (MISO)GPIOA3 (MOSI)SPI_2GP通用 SPIGPIO30 (CS)GPIO25 (CLK)GPIO24 (MISO)GPIO31 (MOSI)这些引脚映射在设备树 boards/google/quincy/google_quincy.dts 中一一落地形成了文档引脚表 ↔ 设备树 pinctrl的对应关系UART1控制台uart1节点选择 UART1_SL2 引脚组PIN64/65即uart1_2_sin_gp64与uart1_2_sout_gp65波特率 115200UART2AP UARTuart2节点使用uart2_sin_gp75与uart2_sout_gp86用于Host Commands 与 MKBPMatrix Keyboard Button Protocol通信同样是 115200 波特率SHI0与 AP 通信shi0节点使能shi_gp46_47_53_55引脚组。SHI 是 Nuvoton 特有的 Slave Host Interface承担 EC/MCU 与主机AP之间的高速串行通信SPIP0指纹传感器spip0节点使用spip_sclk_mosi_miso_gp95_gpa1_gpa3_gpa5_sl引脚组并将 GPIOA6 配置为片选cs-gpios gpioa 6 GPIO_ACTIVE_LOWSPIP 全称 Serial Peripheral Interface with Polling此处正是指纹传感器的数据通道DRBG0随机数发生器drbg0Deterministic Random Bit Generator节点被使能为安全相关如指纹模板加密、会话密钥提供确定性随机位生成能力。设备树中的chosen节点还指定了 Zephyr 运行时的关键绑定chosen { zephyr,console uart1; zephyr,shell-uart uart1; zephyr,sram sram0; zephyr,flash flash0; zephyr,flash-controller int_flash; };也就是说Zephyr 内核的打印输出、Shell 交互均落在 UART1即文档所述经 μServo/USB 引出的控制台上同时aliases中把watchdog0指向twd0方便 watchdog 示例程序直接引用。板级系统配置defconfig要点boards/google/quincy/google_quincy_defconfig 定义了该板卡的默认 Kconfig 配置反映了指纹 MCU 场景下的最小可用系统基线# 启用 NPCX 固件头 CONFIG_NPCX_HEADERy # 系统时钟 CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC15000000 # 15 MHz 硬件时钟 # 串行驱动与控制台 CONFIG_SERIALy CONFIG_UART_INTERRUPT_DRIVENy CONFIG_CONSOLEy CONFIG_UART_CONSOLEy # GPIO 与时钟控制器 CONFIG_GPIOy CONFIG_CLOCK_CONTROLy # 安全特性MPU 与硬件栈保护 CONFIG_ARM_MPUy CONFIG_HW_STACK_PROTECTIONy几个值得注意的要点CONFIG_NPCX_HEADERy为 NPCX 系列 SoC 生成厂商要求的固件头firmware header这是 Nuvoton EC/指纹 MCU 固件能否被芯片 ROM 正确识别加载的前提15 MHz 硬件周期时钟CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC15000000告知 Zephyr 内核硬件时钟源的频率是k_cycle_get_32()等时间 API 换算正确性的基础控制台链路SERIALUART_INTERRUPT_DRIVENCONSOLEUART_CONSOLE四条配置串联起完整的串口驱动 → 控制台输出 → 用户可见日志链路与文档中UART Console over μServo and USB的表述一一对应安全基线ARM_MPU与HW_STACK_PROTECTION默认开启体现了该板面向安全敏感应用指纹数据时的防护取向。编程与调试μServo、SWD 与 J-Link 全流程构建应用与其他 Zephyr 板卡一样构建应用只需指定 board targetgoogle_quincywest build -b google_quincy your_app_dir构建产物即为适用于 NPCX99FPA0BX 的固件镜像。通过 μServo 烧录Quincy 的控制台通过μServoServo MicroChromium OS 生态的调试/刷机桥接板和 USB 连接器引出因此最常用的烧录路径是将 μServo 连接到板卡遵循 Chromium EC 的烧录流程将固件写入 MCU。这种方式特别适合在 EC嵌入式控制器开发环境中与 Chromium OS 工具链协同工作相关操作细节可参考 Chromium 官方的 EC Flashing 与 Servo Micro 文档原文档References一节中给出属于 Chromium OS 外部资料。通过 SWD J-Link 调试板卡提供 SWD 调试接口外部J-Link连接到板上的J4连接器即可进行调试。J-Link 的调试器配置已经预先写好在 boards/google/quincy/board.cmake 中board_runner_args(jlink --deviceCortex-M4 --speed4000) board_runner_args(openocd --cmd-load npcx_write_image) board_runner_args(openocd --cmd-verify npcx_verify_image) include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)这说明该板卡在 Zephyr 构建系统中实际支持jlink与openocd两类 runnerJ-Link设备型号被指定为Cortex-M4SWD 速率 4000 kHzwest flash/west debug会自动带上这些参数OpenOCD加载与校验阶段分别调用 NPCX 专用命令npcx_write_image与npcx_verify_image确保按 Nuvoton 的镜像格式正确写入并校验这是 NPCX 系芯片烧录的关键一步。实际使用时可借助west命令直接烧录与调试# 使用默认 runner按 board.cmake 自动选择 jlink 或 openocd烧录 west flash # 显式指定调试器 west flash -r jlink west debug -r jlink调试建议使用 SWD 连接 J-Link 后可直接在 GDB 中加载 Zephyr 构建生成的 ELF 文件配合west debug进行断点、单步与寄存器级调试控制台日志走 UART1115200 baud调试期间可持续观察printk输出与 Shell 交互如需验证串口链路可参照设备树中uart1的 pinctrl 配置确认物理引脚GPIO64/65与连接器的一致性。小结Google Quincy 在 Zephyr 中是一个面向指纹功能的专用 MCU 板卡目标它基于 Nuvoton NPCX99FPA0BXSOC_NPCX9MFP构建通过 SHI 与 AP 主机通信、通过 SPIP 挂接指纹传感器并以 μServo/SWD 双通道解决烧录与调试问题。开发者若要在指纹模组、主机通信或 EC 类固件上快速起步可直接以-b google_quincy为目标构建应用并依托仓库内完整的设备树、defconfig 与 runner 配置实现从编译、烧录到调试的全链路工作流。【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表