23浏览
查看: 23|回复: 1

[项目] 【花雕动手做】CanMV K230 AI视觉识别模块之FPIOA 引脚分配

[复制链接]
什么是 CanMV K230?
CanMV K230是一款高性价比的RISC-V边缘AI平台,凭借低功耗、强视觉处理能力和开放的开发生态,成为嵌入式AI开发的理想选择,尤其适合需要快速部署视觉与AI功能的创客、中小企业及教育场景。CanMV 是一套 AI 视觉开发平台,K230 是其核心芯片。该模块结合了图像采集、AI推理、边缘计算等能力,适合嵌入式视觉应用开发。

CanMV:类似 OpenMV 的图像处理框架,支持 Python 编程,简化视觉识别开发流程。
K230 芯片:嘉楠科技推出的 AIoT SoC,采用 RISC-V 架构,内置第三代 KPU(AI加速单元),算力高达 6 TOPS,性能是 K210 的 13.7 倍。

【花雕动手做】CanMV K230 AI视觉识别模块之FPIOA 引脚分配图1

【花雕动手做】CanMV K230 AI视觉识别模块之FPIOA 引脚分配图2

驴友花雕  中级技神
 楼主|

发表于 14 小时前

【花雕动手做】CanMV K230 AI视觉识别模块之FPIOA 引脚分配

1、FPIOA 引脚分配
CanMV K230 支持 FPIOA(Field Programmable Input and Output Array,现场可编程输入输出阵列)功能。简单来说,FPIOA 允许将 K230 的任意物理引脚在硬件层面复用为多种接口功能,如 UART、I2C、PWM 等,因此也常被称为 IOMUX(输入输出多路复用器)。

FPIOA 的核心作用是为物理管脚(PAD)分配具体功能。由于 SoC 芯片内部集成了大量功能模块,而可用的物理引脚数量有限,多个模块往往需要共享同一个 I/O 引脚。为了避免冲突并实现灵活配置,FPIOA 提供了功能选择机制,使每个引脚在不同场景下承担不同角色。需要注意的是:同一个 PAD 在同一时间只能启用一种功能。

作为 Kendryte 系列芯片(包括 K230)的关键特性,FPIOA 支持将芯片内部的功能模块(如 UART、SPI、PWM、I2C、摄像头接口等)灵活映射到物理引脚上,从而实现高度定制化的硬件连接方案,极大提升了系统的适配能力与开发灵活性。

理解 FPIOA 的三个核心概念
(1)功能模块与引脚非绑定 K230 的内部功能(如 UART0_TX 信号)并不固定绑定某个引脚,而是可以通过 FPIOA 映射到任意支持该功能的物理引脚。

(2)动态配置能力 在程序运行过程中,开发者可以使用 FPIOA.set_function(pin_number, function_name) 接口动态修改引脚功能,无需更改硬件连接。

(3)复用与排他性 单个引脚可支持多种功能模块(如 UART、PWM、GPIO 等),但在同一时刻只能激活其中一种,确保功能逻辑的唯一性与稳定性。

这种机制使 K230 在 AI 视觉、物联网、嵌入式控制等应用领域具备更强的灵活性与扩展性,是其在硬件设计上的一大优势。


2、FPIOA 常用方法
源码位于 [源码汇总/02.Basic/01.fpioa.py]
执行下述代码

  1. from machine import FPIOA
  2. # 实例化FPIOA
  3. fpioa = FPIOA()
  4. # 打印所有引脚配置
  5. fpioa.help()
  6. # 打印指定引脚详细配置
  7. fpioa.help(0)
  8. # 打印指定功能所有可用的配置引脚
  9. fpioa.help(FPIOA.IIC0_SDA, func=True)
  10. # 获取指定功能当前所在的引脚
  11. fpioa.get_pin_num(FPIOA.UART0_TXD)
  12. # 获取指定引脚当前功能
  13. fpioa.get_pin_func(0)
复制代码


可以看到在串行终端中,输出了K230芯片所有的IO口以及支持复用的功能

【花雕动手做】CanMV K230 AI视觉识别模块之FPIOA 引脚分配图1

3、YAHBOOM K230 引脚
为压缩模块体积,我们的 K230 模块并没有将芯片支持的所有引脚都引出来。我们来看一下YAHBOOM K230 常用的一些引脚

(1)散热片旁边的两排排针

【花雕动手做】CanMV K230 AI视觉识别模块之FPIOA 引脚分配图2


1 :GPIO 42,可复用为:GPIO42 / UART1_RTS / PWM0 / QSPI1_D2 / RESV  /   

2 :GPIO 43,可复用为:GPIO43 / UART1_CTS / PWM1 / QSPI1_D3 / RESV /   

3 :GPIO 33,可复用为:GPIO33 / IIC0_SDA / IIS_WS / UART3_RXD / RESV /  

4 :GND

5 :GPIO 32,可复用为:GPIO32 / IIC0_SCL / IIS_CLK / UART3_TXD / RESV /

6 :GPIO 26,可复用为:GPIO26 / MMC1_CLK / RESV / PDM_CLK /

7 :GND

8 :GPIO 34,可复用为:GPIO34 / IIC1_SCL / IIS_D_IN0 / PDM_IN3 / UART3_RTS /   

9 :5v 输出  

10 :GPIO 35,可复用为:GPIO35 / IIC1_SDA / IIS_D_OUT0 / PDM_IN1 / UART3_CTS /   

11 :5v 输出

12 :3.3v 输出

!!!在连接12pin GPIO时,请务必确认丝印标识确保正确连接。


(2)USB 口旁边的 通讯接口

【花雕动手做】CanMV K230 AI视觉识别模块之FPIOA 引脚分配图3

1 :5v

2 :GND

3 :UART1_TXD  | 可复用为 GPIO9 / PWM4 / UART1_TXD / IIC1_SCL / RESV/  

4 :UART1_RXD  | 可复用为 GPIO10 / CTRL_IN_3D / UART1_RXD / IIC1_SDA / RESV/

该通讯接口默认为串口 UART1,YbUart模块中初始化代码如下

  1. fpioa.set_function(9, fpioa.UART1_TXD, ie=0, oe=1)
  2. fpioa.set_function(10, fpioa.UART1_RXD, ie=1, oe=0)
  3. uart = UART(UART.UART1, baudrate)
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail