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