久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6715|回復: 0
打印 上一主題 下一主題
收起左側

Freescales i.mx6開發板配置IOMUX-迅為電子

[復制鏈接]
跳轉到指定樓層
樓主
為什么IOMUXSoc芯片上有很多引腳,每個引腳對應特定的功能。例如控制電機需要控制電機的功能引腳1和引腳2,控制傳感器需要控制傳感器功能的引腳3和引腳4。對于使用Soc芯片的需求方來說,可能只是控制電機,或者只是控制傳感器。這樣Soc芯片上的4個引腳就浪費了2個引腳。為了能提供更多的功能,減少引腳的浪費,可以把引腳1,2和引腳3,4合并,通過復用引腳來解決問題。
i.mx6的Soc芯片提供IOMUX機制就是用來解決引腳復用的問題。
如何確定使用引腳12,還是使用引腳34,是下面要介紹的主要內容
需要的概念Pad 對應的是Soc芯片上的引腳
Signal 對應的是控制電機的功能
需要配置的寄存器
  • Pad控制寄存器
  • Mux控制寄存器
  • Select Input寄存器
配置IOMUX的必備工具
  • 芯片原理圖
  • 芯片軟件手冊
  • 內核源代碼
配置步驟1. 查看原理圖下面是USB轉串口芯片的原理圖,我們需要配置UART1_RX這個接口。

uart.jpeg

通過UART1_RX,我們可以在i.mx6的原理圖中找到對應的引腳CSI0_DAT11。

imx6soc.jpeg

2. 查找軟件手冊(引腳功能)軟件手冊第4章
查找CSI0_DAT11,可以得到兩個重要的信息
  • Pad的控制寄存器名稱 SW_PAD_CTL_PAD_CSI0_DATA11
  • CSI0_DAT11的功能UART1_RX_DATA 用于查找其他兩個寄存器

  • uartfunction.jpeg
查找UART1_RX_DATA,可以得到兩個寄存器
  • Mux的控制寄存器名稱 IOMUX_SW_MUX_CTL_PAD_CSI0_DATA11
  • Select Input的寄存器名稱 IOMUXC_UART1_UART_RX_DATA_SELECT_INPUT

  • uartmuxoption.jpeg
3. 查找軟件手冊(IOMUX功能配置)軟件手冊第36章, 介紹了IOMUX需要配置寄存器的所有信息。
根據三個寄存器的名稱進行查找
  • Pad的控制寄存器名稱 SW_PAD_CTL_PAD_CSI0_DATA11
  • Mux的控制寄存器名稱 IOMUX_SW_MUX_CTL_PAD_CSI0_DATA11
  • Select Input的寄存器名稱 IOMUXC_UART1_UART_RX_DATA_SELECT_INPUTIOMUX_SW_PAD_CTL_PAD_CSI0_DATA11偏移地址:654h
    Pad控制寄存器主要用于控制引腳的上拉電阻,下拉電阻和電壓控制

  • pad.jpeg
IOMUX_SW_MUX_CTL_PAD_CSI0_DATA11偏移地址:284h
配置MUX_MODE的模式為ALT3,就能使用UART1_RX_DATA的功能

mux.jpeg

IOMUXC_UART1_UART_RX_DATA_SELECT_INPUT偏移地址:920h

selectinput.jpeg

三 源碼配置配置IOMUX的過程,實際上就是向指定的設備地址寫入配置值的過程。
內核代碼提供專門的宏 IOMUX_PAD,用來把IOMUX的配置進行拼裝,然后寫入到指定的設備地址中。
IOMUX_PAD 定義文件  ~/android/kernel_imx/arch/arm/plat-mxc/include/mach/iomux-v3.h
/* *      build IOMUX_PAD structure * * This iomux scheme is based around pads, which are the physical balls * on the processor. * * - Each pad has a pad control register (IOMUXC_SW_PAD_CTRL_x) which controls *   things like driving strength and pullup/pulldown. * - Each pad can have but not necessarily does have an output routing register *   (IOMUXC_SW_MUX_CTL_PAD_x). * - Each pad can have but not necessarily does have an input routing register *   (IOMUXC_x_SELECT_INPUT) * * The three register sets do not have a fixed offset to each other, * hence we order this table by pad control registers (which all pads * have) and put the optional i/o routing registers into additional * fields. * * The naming convention for the pad modes is MX35_PAD___ * If  or  refers to a GPIO, it is named * GPIO__ * * IOMUX/PAD Bit field definitions * * MUX_CTRL_OFS:            0..11 (12) * PAD_CTRL_OFS:           12..23 (12) * SEL_INPUT_OFS:          24..35 (12) * MUX_MODE + SION:        36..40  (5) * PAD_CTRL + NO_PAD_CTRL: 41..58 (18) * SEL_INP:                59..62  (4) * reserved:                 63    (1)*/#define IOMUX_PAD(_pad_ctrl_ofs, _mux_ctrl_ofs, _mux_mode, _sel_input_ofs,  _sel_input, _pad_ctrl)                  (((iomux_v3_cfg_t)(_mux_ctrl_ofs) << MUX_CTRL_OFS_SHIFT) |                       ((iomux_v3_cfg_t)(_mux_mode) << MUX_MODE_SHIFT) |                                 ((iomux_v3_cfg_t)(_pad_ctrl_ofs) << MUX_PAD_CTRL_OFS_SHIFT) |                   ((iomux_v3_cfg_t)(_pad_ctrl) << MUX_PAD_CTRL_SHIFT) |                                 ((iomux_v3_cfg_t)(_sel_input_ofs) << MUX_SEL_INPUT_OFS_SHIFT) |                 ((iomux_v3_cfg_t)(_sel_input) << MUX_SEL_INPUT_SHIFT))參數
  • _pad_ctrl_ofs  pad控制寄存器的偏移地址
  • _mux_ctrl_ofs mux控制寄存器的偏移地址
  • _mux_mode    mux的模式
  • _sel_input_ofs input寄存器的偏移地址
  • _sel_input       input的類型
配置通過軟件手冊查找到三個寄存器的地址, 使用IOMUX_PAD配置代碼。
  • SW_PAD_CTL_PAD_CSI0_DATA11 偏移地址 0x654
  • IOMUX_SW_MUX_CTL_PAD_CSI0_DATA11 偏移地址 0x284
  • IOMUXC_UART1_UART_RX_DATA_SELECT_INPUT 偏移地址 0x920
文件  ~/android/kernel_imx/arch/arm/plat-mxc/include/mach/iomux-mx6q.h
#define _MX6Q_PAD_CSI0_DAT11__UART1_RXD                                 IOMUX_PAD(0x0654, 0x0284, 3, 0x0920, 1, 0)上面的內容描述了從原理圖查找指定引腳,到軟件手冊找到Mux,Pad,SelInput的寄存器配置信息,再到內核代碼如何進行配置的全部映射關系。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久女 | 久久精品国产清自在天天线 | 国产成人精品区一区二区不卡 | 久久久精品一区 | 久久精品免费一区二区 | 亚洲国产第一页 | 欧美综合在线观看 | 欧美三级在线 | 成人免费淫片aa视频免费 | 超碰人人插 | 午夜影院在线观看 | 91精品国产综合久久福利软件 | 中文字幕免费视频 | 日韩欧美国产一区二区 | 国产一区二区麻豆 | 成人精品一区亚洲午夜久久久 | 国内精品视频在线观看 | 国产高清精品一区二区三区 | 国产91亚洲精品一区二区三区 | 欧美日韩在线视频一区 | 成年人国产在线观看 | 无码国模国产在线观看 | 日本激情视频中文字幕 | 99爱免费| 奇米影视首页 | 亚洲国产精品久久久 | 午夜大片| 亚洲精品高清视频在线观看 | 成人免费观看男女羞羞视频 | 日日夜夜精品免费视频 | 一级黄色片网站 | 亚洲欧美国产毛片在线 | 欧美一级在线 | 日本福利在线观看 | 久草视频网站 | www.天天操.com| 日韩欧美国产一区二区 | 黄色免费av | 精品一区二区三区在线观看 | 中文字幕在线一 | 国产精品久久久久久久久久软件 |