K230 的引脚支持 FPIOA (Field Programmable Input and Output Array (现场可编程 IO 阵列))
FPIOA可以简单理解为,让K230上的某一个引脚,在硬件层面上复用为uart 、iic 、pwm等多种功能
FPIOA (也叫IOMUX) 主要配置物理PAD (管脚) 的功能,由于soc功能多管脚 (pads) 少,多个功能共享同一个I / O管脚(pads), 但是一个pads同一时间只能使用其中一个功能,所以需要IOMUX进行功能选择。
注:本节内容以理论以及介绍FPIOA操作为主,在学习后面的实际章节时,我们才能更直接的体会到FPIOA的实际的用法和作用
源码位于 [源码汇总/02.Basic/01.fpioa.py] 执行下述代码
xfrom machine import FPIOA
# 实例化FPIOA
fpioa = FPIOA()
# 打印所有引脚配置
fpioa.help()
# 打印指定引脚详细配置
fpioa.help(0)
# 打印指定功能所有可用的配置引脚
fpioa.help(FPIOA.IIC0_SDA, func=True)
# 获取指定功能当前所在的引脚
fpioa.get_pin_num(FPIOA.UART0_TXD)
# 获取指定引脚当前功能
fpioa.get_pin_func(0)
可以看到在串行终端中,输出了K230芯片所有的IO口以及支持复用的功能
为压缩模块体积,我们的 K230 模块并没有将芯片支持的所有引脚都引出来。我们来看一下YAHBOOM K230 常用的一些引脚
散热片旁边的两排排针
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时,请务必确认丝印标识确保正确连接。由短接、反接、超压或过流造成的人为损坏,将无法提供售后维修服务。!!!!
USB 口旁边的 通讯接口
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模块中初始化代码如下
xxxxxxxxxx
fpioa.set_function(9, fpioa.UART1_TXD, ie=0, oe=1)
fpioa.set_function(10, fpioa.UART1_RXD, ie=1, oe=0)
uart = UART(UART.UART1, baudrate)