• 正文
  • 推薦器件
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

ELF 1技術貼 | 應用層更改引腳復用的方法

2024/03/28
1509
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

嵌入式系統(tǒng)設計中,引腳復用功能通常是通過設備樹(Device Tree)預先配置設定的。出廠的設備樹中UART2_TX_DATA和UART2_RX_DATA兩個引腳被復用成了UART2功能,如果想要在不更換系統(tǒng)鏡像的情況下,將這兩個引腳的功能轉(zhuǎn)換為GPIO,并作為數(shù)字輸出(DO)引腳來控制高低電平信號,該如何實現(xiàn)呢?

下面我們將逐步解析如何在應用層修改IOMUX復用寄存器,從而實現(xiàn)將上述兩個引腳重新復用為GPIO功能的操作。

在ElfBoard官方資料中的05-硬件資料5-2芯片數(shù)據(jù)手冊IMX6ULLARM手冊中找到這兩個引腳的MUX寄存器和PAD寄存器。UART2_TX_DATA和UART2_RX_DATA的MUX寄存器如下圖:

UART2_TX_DATA和UART2_RX_DATA的PAD寄存器如下圖:

可以直接使用memtool工具進行修改。

鏈接:https://pan.baidu.com/s/10ixxhbwf4yGajS8SYUIATQ

提取碼:ju2x

(1)測試

在修改之前先進行測試,直接在文件系統(tǒng)中,使用以下命令操作,通過萬用表測量發(fā)現(xiàn)不能成功輸出高低電平:

echo 20 > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio20/direction
echo "1" > /sys/class/gpio/gpio20/value
echo "0" > /sys/class/gpio/gpio20/value

echo 21 > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio21/direction
echo "1" > /sys/class/gpio/gpio21/value
echo "0" > /sys/class/gpio/gpio21/value

(2)用memtool工具讀一下這兩個寄存器

因為這兩個寄存器是連續(xù)的,所以也可以使用這個命令直接讀兩個寄存器:

可以看出,這兩個MUX寄存器的值為0,以UART2_TX_DATA為例,通過下圖得知0表示復用成UART2功能:

同時也讀一下這兩個引腳的PAD寄存器:

可以看到讀出來的電氣參數(shù)跟設備樹中配置一致:

(3)現(xiàn)在使用memtool工具設置寄存器
設置這兩個引腳的MUX寄存器值為0x05,即復用成GPIO功能。

設置這兩個引腳的PAD寄存器值為0x10b0。

(4)測試驗證

此時,再去將這兩個引腳當做GPIO去操作:

通過萬用表測量,能夠控制引腳高低電平的輸出。完成以上所有步驟后,即可實現(xiàn)應用層對引腳復用功能的動態(tài)調(diào)整。期待以上的指南能對各位小伙伴提供切實的幫助!

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
VSC8504XKS-05 1 Microchip Technology Inc Ethernet Transceiver
暫無數(shù)據(jù) 查看
HMC534LP5ETR 1 Analog Devices Inc VCO SMT with Fo/2 & Divide-by-4, 10.6 - 11.8 GHz
$37.05 查看
FTLX8571D3BCL 1 Finisar Corporation Transceiver, 840nm Min, 860nm Max, 10000Mbps(Tx), 10000Mbps(Rx), LC Connector, Board/panel Mount, ROHS COMPLIANT PACKAGE-20
$77.85 查看

相關推薦