<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

ElfBoard ? 2024-03-27 14:14 ? 次閱讀

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

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

在ElfBoard官方資料中的05-硬件資料\05-2芯片數據手冊\IMX6ULLARM手冊中找到這兩個引腳的MUX寄存器和PAD寄存器。

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

wKgZomYDt9uAGqseAAK-ypLX9Js555.png

wKgaomYDt-OABKy7AALTCsxn_OE911.png

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

wKgZomYDuAWAVKSiAAKf5aee3fE156.png

wKgZomYDuCOAcxUuAALHfvjQlNM608.png

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

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

提取碼:ju2x

(1)測試

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

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工具讀一下這兩個寄存器

wKgaomYDuFaAWpP8AAXNvKMkpEU002.png

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

wKgaomYDuHGAc_WvAAYhACLo-CU923.png

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

wKgaomYDuImAWYOJAAMckPQvN4c979.png

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

wKgaomYDuJ2AFAljAAY-M47Cn1E740.png

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

wKgZomYDuMiAOrZuAAP_p17HLuE758.png

(3)現在使用memtool工具設置寄存器

設置這兩個引腳的MUX寄存器值為0x05,即復用成GPIO功能。

wKgZomYDuO-AaxAqAAaaIx1BW64749.png

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

wKgaomYDuQqAcrk1AAaV_TgJj3M843.png

(4)測試驗證

此時,再去將這兩個引腳當做GPIO去操作:通過萬用表測量,能夠控制引腳高低電平的輸出。
完成以上所有步驟后,即可實現應用層對引腳復用功能的動態調整。期待以上的指南能對各位小伙伴提供切實的幫助!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5001

    文章

    18394

    瀏覽量

    291024
  • Linux
    +關注

    關注

    87

    文章

    11017

    瀏覽量

    206956
  • 開發板
    +關注

    關注

    25

    文章

    4542

    瀏覽量

    94711
收藏 人收藏

    評論

    相關推薦

    嵌入式學習-ElfBoard ELF 1-gpio模擬i2c的方法

    (2) iomuxc節點復用IO引腳(3)編譯設備樹elf@ubuntu:~/work/linux-4.1.15-elf1$ make dtbs 三、替換內核和設備樹(
    發表于 02-22 15:17

    ElfBoard ELF 1開發板-putty保存日志的方法

    ELF 1開發板有串口登錄和網絡登錄兩種方式,具體方法參考《01-0 ELF1、ELF1S開發板_快速啟動手冊》“2.2 串口登錄方式”和“
    發表于 02-29 17:04

    嵌入式學習-飛凌ElfBoard ELF 1板卡-控制wifi模塊8723du斷/上電

    :root@ELF1:~# echo 510 > /sys/class/gpio/export//導出引腳root@ELF1:~# echo 1 > /sys/class
    發表于 03-13 10:09

    嵌入式學習-飛凌ElfBoard ELF 1板卡 - 應用層更改引腳復用方法

    應用層修改IOMUX復用寄存器,從而實現將上述兩個引腳重新復用為GPIO功能的操作。 在ElfBoard官方資料中的05-硬件資料\\\\05-2芯片數據手冊\\\\IMX6ULLAR
    發表于 03-29 15:28

    I.MX6ULL-飛凌 ElfBoard ELF1板卡- 應用層更改引腳復用方法

    應用層修改IOMUX復用寄存器,從而實現將上述兩個引腳重新復用為GPIO功能的操作。 在ElfBoard官方資料中的05-硬件資料\\\\05-2芯片數據手冊\\\\IMX6ULLAR
    發表于 03-29 15:29

    飛凌嵌入式ElfBoard ELF 1板卡-4G模塊斷/上電

    :root@ELF1:~# echo 504 > /sys/class/gpio/export//導出引腳root@ELF1:~# echo 0 > /sys/class
    發表于 04-11 09:41

    關于can總線應用層協議

    can總線本身有一個規范協議can 2.0b,那應用層協議主要是規定哪些內容的(我只知道有分配標識符等),can總線通信的數據格式是不是也是在應用層規定的?哪位高手能不能具體舉例講一下。------謝謝
    發表于 07-09 02:38

    Z-Stack的應用層調整(中)

    Z-Stack的應用層調整(中)歡迎研究ZigBee的朋友和我交流。。。
    發表于 08-12 21:08

    Zigbee怎么在應用層中查看信道?

    Zigbee怎么在應用層中查看信道?我主要是想查找網絡的PANID和信道燈參數,也就是_NIB里面的參數。謝謝
    發表于 04-19 09:47

    can應用層協議

    有寫過can應用層的協議嗎,我正在搞nmea2000的can協議,網上沒有資料,求幫助?。。。。。。。?!
    發表于 04-09 19:03

    應用層通信安全

    `歡迎工程師的我們!電子發燒友E2E技術沙龍-北京站,本期討論主題是關于“應用層通信安全”E2E活動北京站活動鏈接~~http://url.elecfans.com/u/e524cb1b33
    發表于 03-18 17:55

    學習嵌入式Linux應用層的開發

    1 應用層與驅動要想學習嵌入式Linux應用層的開發,首先要區分好應用層和驅動之間的關系。我
    發表于 11-02 10:20

    如何跳轉到應用層?

    如何跳轉到應用層?
    發表于 01-20 07:03

    【學習打卡】OpenHarmony的應用層說明

    因為有了應用層,使得我們在這個階段,可以把數據或應用程序以用戶可以看明白的可視形式呈現。應用層需要處理以下功能:1.確保接收設備被識別、可到達并準備好接受數據;2.在適當的情況下,啟用設備之間的身份驗證
    發表于 07-14 08:44

    ElfBoard 的ELF1 板卡修改時區的方法。

    / DhakaDubaiHong_KongKarachiShanghaiTokyo 一、方法1.打開/etc/profile: root@ELF1:~# vi /etc/profile 2.把TZ
    發表于 10-19 14:13
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>