在現(xiàn)代電子產(chǎn)品設(shè)計中,芯片的集成度和復(fù)雜度越來越高,如何充分利用芯片的資源,滿足不同場景的需求,是每位工程師和設(shè)計師需要面對的挑戰(zhàn)。芯片IO重映射功能恰好解決了這一問題,為用戶提供更加靈活、便捷、可定制的芯片使用方式,助推產(chǎn)品創(chuàng)新和突破。
IO口是MCU內(nèi)部模塊和外部硬件唯一的進出口。每個內(nèi)置外設(shè)都有若干個輸入輸出引腳,一般這些引腳的輸出端口都是固定不變的,芯片IO重映射就是將芯片原有的通用IO端口重新定義為特定功能用途。例如,在硬件設(shè)計之初,開發(fā)人員通過移位寄存器和端口直接映射的方式實現(xiàn)了控制PWM波輸出的功能。如果需要用同一顆芯片控制兩個不同的電機,此時就需要映射另一個用于控制第二個電機的PWM波輸出端口,這樣才能滿足應(yīng)用需求。IO重映射功能即可通過編寫特定的程序來實現(xiàn)。
為了讓設(shè)計工程師更好地安排引腳的走向和功能,愛普特在系列全國產(chǎn)32位MCU產(chǎn)品中均加入了外設(shè)引腳重映射的功能,即一個外設(shè)的引腳除了具有默認的端口外,還可以通過設(shè)置重映射寄存器的方式,把這個外設(shè)的引腳映射到其它的端口。為了使不同器件封裝的外設(shè)IO功能數(shù)量達到最優(yōu),還可以把一些復(fù)用功能重新映射到其他一些引腳上。這種靈活性為產(chǎn)品硬件布局和型號適配提供了更多的可能性,方便PCB設(shè)計,減少了信號的交叉干擾;分時復(fù)用某些外設(shè),還可以虛擬增加端口數(shù)目,從而整體提高工程師的研發(fā)效率。
接下來我們以愛普特APT32F110X系列為例進行介紹:APT32F110X系列芯片為提供更靈活的 IO 功能配置,提供了自定義 GPIO 復(fù)用的功能。
芯片提供兩個預(yù)設(shè)的 GPIOGROUP,分別為 GROUP0 和 GROUP1,兩個 GROUP 分別對應(yīng) 8 個預(yù)設(shè)的可選擇的復(fù)用功能。在每個 GROUP 內(nèi),每個 GPIO可以被指定為這 8 個預(yù)設(shè)功能中的任意一個作為該 GPIO 的 AF8 功能。
IO GROUP0和 GPIO 對應(yīng)關(guān)系
IO GROUP1和 GPIO 對應(yīng)關(guān)系
IOGROUP 配置信息表
如圖中1對應(yīng)的紅色框所示,標(biāo)識的是APT32F110X GROUP0/GROUP1對應(yīng)的復(fù)用功能列表,左邊是GROUP0,右邊是GROUP1。從圖中2對應(yīng)的紅色框可直觀看到復(fù)用列表中具體功能對應(yīng)的配置數(shù)值,數(shù)值是配置在IOMAP的CFGVAL(CFGVAL0~CFGVAL7)域中;如GROUP0中選擇I2C_SDA功能,需要在對應(yīng)的CFGVAL域中寫入0x01。
APT32F110X系列是愛普特基于國產(chǎn)RISC-V核架構(gòu)和自研的IP庫研發(fā)設(shè)計的全國產(chǎn)MCU。該系列具有多達44個GPIO口,均支持外部中斷,支持IO重映射,內(nèi)置多路通用及增強型定時器,可實現(xiàn)靈活的 PWM 輸出,同時具有DMA和高速SPI通訊接口,內(nèi)嵌多模式段碼液晶驅(qū)動控制器,可以直接驅(qū)動LCD顯示屏幕,支持20通道的12位ADC,還支持LCD/LED/Touch/溫度傳感器等功能。目前APT32F110X系列產(chǎn)品已被廣泛應(yīng)用于智能家電、工業(yè)控制、物聯(lián)網(wǎng)、消費電子、消防、醫(yī)療電子等領(lǐng)域。