在现代电子产品设计中,芯片的集成度和复杂度越来越高,如何充分利用芯片的资源,满足不同场景的需求,是每位工程师和设计师需要面对的挑战。芯片IO重映射功能恰好解决了这一问题,为用户提供更加灵活、便捷、可定制的芯片使用方式,助推产品创新和突破。
IO口是MCU内部模块和外部硬件唯一的进出口。每个内置外设都有若干个输入输出引脚,一般这些引脚的输出端口都是固定不变的,芯片IO重映射就是将芯片原有的通用IO端口重新定义为特定功能用途。例如,在硬件设计之初,开发人员通过移位寄存器和端口直接映射的方式实现了控制PWM波输出的功能。如果需要用同一颗芯片控制两个不同的电机,此时就需要映射另一个用于控制第二个电机的PWM波输出端口,这样才能满足应用需求。IO重映射功能即可通过编写特定的程序来实现。
为了让设计工程师更好地安排引脚的走向和功能,爱普特在系列全国产32位MCU产品中均加入了外设引脚重映射的功能,即一个外设的引脚除了具有默认的端口外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的端口。为了使不同器件封装的外设IO功能数量达到最优,还可以把一些复用功能重新映射到其他一些引脚上。这种灵活性为产品硬件布局和型号适配提供了更多的可能性,方便PCB设计,减少了信号的交叉干扰;分时复用某些外设,还可以虚拟增加端口数目,从而整体提高工程师的研发效率。
接下来我们以爱普特APT32F110X系列为例进行介绍:APT32F110X系列芯片为提供更灵活的 IO 功能配置,提供了自定义 GPIO 复用的功能。
芯片提供两个预设的 GPIOGROUP,分别为 GROUP0 和 GROUP1,两个 GROUP 分别对应 8 个预设的可选择的复用功能。在每个 GROUP 内,每个 GPIO可以被指定为这 8 个预设功能中的任意一个作为该 GPIO 的 AF8 功能。
IO GROUP0和 GPIO 对应关系
IO GROUP1和 GPIO 对应关系
IOGROUP 配置信息表
如图中1对应的红色框所示,标识的是APT32F110X GROUP0/GROUP1对应的复用功能列表,左边是GROUP0,右边是GROUP1。从图中2对应的红色框可直观看到复用列表中具体功能对应的配置数值,数值是配置在IOMAP的CFGVAL(CFGVAL0~CFGVAL7)域中;如GROUP0中选择I2C_SDA功能,需要在对应的CFGVAL域中写入0x01。
APT32F110X系列是爱普特基于国产RISC-V核架构和自研的IP库研发设计的全国产MCU。该系列具有多达44个GPIO口,均支持外部中断,支持IO重映射,内置多路通用及增强型定时器,可实现灵活的 PWM 输出,同时具有DMA和高速SPI通讯接口,内嵌多模式段码液晶驱动控制器,可以直接驱动LCD显示屏幕,支持20通道的12位ADC,还支持LCD/LED/Touch/温度传感器等功能。目前APT32F110X系列产品已被广泛应用于智能家电、工业控制、物联网、消费电子、消防、医疗电子等领域。