在現(xiàn)代電子產品設計中,芯片的集成度和復雜度越來越高,如何充分利用芯片的資源,滿足不同場景的需求,是每位工程師和設計師需要面對的挑戰(zhàn)。芯片IO重映射功能恰好解決了這一問題,為用戶提供更加靈活、便捷、可定制的芯片使用方式,助推產品創(chuàng)新和突破。
IO口是MCU內部模塊和外部硬件唯一的進出口。每個內置外設都有若干個輸入輸出引腳,一般這些引腳的輸出端口都是固定不變的,芯片IO重映射就是將芯片原有的通用IO端口重新定義為特定功能用途。例如,在硬件設計之初,開發(fā)人員通過移位寄存器和端口直接映射的方式實現(xiàn)了控制PWM波輸出的功能。如果需要用同一顆芯片控制兩個不同的電機,此時就需要映射另一個用于控制第二個電機的PWM波輸出端口,這樣才能滿足應用需求。IO重映射功能即可通過編寫特定的程序來實現(xiàn)。
為了讓設計工程師更好地安排引腳的走向和功能,愛普特在系列全國產32位MCU產品中均加入了外設引腳重映射的功能,即一個外設的引腳除了具有默認的端口外,還可以通過設置重映射寄存器的方式,把這個外設的引腳映射到其它的端口。為了使不同器件封裝的外設IO功能數量達到最優(yōu),還可以把一些復用功能重新映射到其他一些引腳上。這種靈活性為產品硬件布局和型號適配提供了更多的可能性,方便PCB設計,減少了信號的交叉干擾;分時復用某些外設,還可以虛擬增加端口數目,從而整體提高工程師的研發(fā)效率。
接下來我們以愛普特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庫研發(fā)設計的全國產MCU。該系列具有多達44個GPIO口,均支持外部中斷,支持IO重映射,內置多路通用及增強型定時器,可實現(xiàn)靈活的 PWM 輸出,同時具有DMA和高速SPI通訊接口,內嵌多模式段碼液晶驅動控制器,可以直接驅動LCD顯示屏幕,支持20通道的12位ADC,還支持LCD/LED/Touch/溫度傳感器等功能。目前APT32F110X系列產品已被廣泛應用于智能家電、工業(yè)控制、物聯(lián)網、消費電子、消防、醫(yī)療電子等領域。