728x90
반응형
정보
IMXBSPPG
Rev. LF5.15.5_1.0.0, 31 March 2022를 기준으로 작성
Chapter 8 Configuring IOMUX
8.1 Introduction
i.MX 핀(또는 패드)을 사용하기 전에, 원하는 기능을 선택하고 전압 레벨, 드라이브 강도, hysteresis와 같은 특성에 대한 값을 수정한다. IOMUX 컨트롤러에서 레지스터 세트를 구성할 수 있다.
각 핀에 대한 자세한 내용은 "External Signals and Pin Multiplexing" 장을 참조하거나, IOMUX 컨트롤러 블록에 대한 자세한 내용은 SoC Application References Manual의 "IOMUX Controller (IOMUXC)"를 참조한다.
8.1.1 Information for setting IOMUX controller registers
IOMUX 컨트롤러에는 i.MX 6Dual/6Quad/6DualLite/6Solo/6SoloX/6SoloLite/6UltraLite/7Dual 레지스터에 영향을 주는 4개의 레지스터 세트가 포함되어 있다.
- General-purpose 레지스터(IOMUXC_GPRx) : PLL 주파수, 전압과 기타 범용 세트를 컨트롤하는 레지스터로 구성된다.
- "Daisy Chain" 컨트롤 레지스터(IOMUXC_<Instance_port>_SELECT_INPUT) : 둘 이상의 패드가 모듈의 입력을 구동할 수 있는 경우, 모듈에 대한 입력 경로를 제어한다.
- MUX 컨트롤 레지스터 (패드 모드 변경) :
- 패드의 8가지 다른 기능(ALT 모드라고도 함)중 어떤 기능을 사용하는지 선택한다.
- 아래의 레지스터 중 하나를 사용하여 패드 기능을 개별적이나 그룹별로 설정한다 :
- IOMUXC_SW_MUX_CTL_PAD_<PAD NAME>
- IOMUXC_SW_MUX_CTL_GRP_<GROUP NAME>
- 패드 컨트롤 레지스터 (패드 특성 변경) :
- 아래 레지스터 중 하나를 사용하여 패드 특성을 개별적이나 그룹별로 설정한다 :
- IOMUXC_SW_PAD_CTL_PAD_<PAD_NAME>
- IOMUXC_SW_PAD_CTL_GRP_<GROUP NAME>
- 패드 특성은 아래와 같다 :
- SRE (1비트 slew rate 컨트롤) : 슬루율(slew rate) 컨트롤 비트, FAST/SLOW 슬루율 출력중에서 선택한다. FAST 슬루율은 고주파수 설계에 사용된다.
- DES (2비트 drive strength 컨트롤) : 드라이브 강도 컨트롤 비트, 드라이브 강도(low, medium, high, max)를 선택한다.
- ODE (1비트 open drain 컨트롤) : 오픈 드레인 활성화 비트, 오픈 드레인이나 CMOS 출력을 선택한다.
- HYS (1비트 hysteresis 컨트롤) : 패드가 입력일 때, CMOS나 Schmitt Trigger 중에서 선택한다.
- PUS (2비트 pull up/down 구성 값) : 풀업이나 풀다운과 해당 값 중에서 선택한다.
- PUE (1비트 pull/keep 선택) : 풀업이나 키퍼중에서 선택한다. 키퍼 회로는 핀이 더 이상 구동되지 않을 때 핀이 마지막 로직 상태를 유지하도록 한다.
- PKE (1비트 pull up, pull down이나 keeper 기능 활성화/비활성화) : 풀업, 풀다운이나 키퍼를 활성화나 비활성화한다.
- DDR_MODE_SEL (1비트 ddr_mode 컨트롤) : DDR 메모리를 인터페이스할 때 필요하다.
- DDR_INPUT (1비트 ddr_input 컨트롤) : DDR 메모리를 인터페이스할 때 필요하다.
- 아래 레지스터 중 하나를 사용하여 패드 특성을 개별적이나 그룹별로 설정한다 :
8.1.2 Using IOMUX in the Device Tree - example
아래 예는 Device Tree에서 IOMUX를 사용하는 방법을 보여준다.
usdhc@0219c000 { /* uSDHC4 */
fsl,card-wired;
vmmc-supply = <®_3p3v>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc4_1>;
};
iomuxc@020e0000 {
compatible = "fsl,imx6q-iomuxc";
reg = <0x020e0000 0x4000>;
/* shared pinctrl settings */
usdhc4 {
pinctrl_usdhc4_1: usdhc4grp-1 {
fsl,pins = <
MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059
MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059
MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059
MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059
MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059
MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059
MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x17059
MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x17059
MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x17059
MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x17059
>;
};
};
....
};
자세한 내용은 아래를 참조한다 :
- Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt
- Documentation/devicetree/bindings/pinctrl/fsl,imx6*-pinctrl.txt
- Documentation/devicetree/bindings/pinctrl/fsl,imx7*-pinctrl.txt
- Documentation/devicetree/bindings/pinctrl/fsl,imx8qm-pinctrl.txt
- Documentation/devicetree/bindings/pinctrl/fsl,imx8qxp-pinctrl.txt
※ hysteresis : 물질이 거쳐온 과거가 현재 상태에 영행을 주는 현상
※ hysteresis 전압 : 일정한 상태에서 일정한 값으로 정의되는 전압이 아니라, 이전의 전압 상태 변화에 따라 값이 변하는 전압
※ 슬루율 (slew rate) : 출력 전압의 최대 변화율
728x90
반응형
'NXP i.MX SoC Family > i.MX BSP Porting Guide' 카테고리의 다른 글
i.MX BSP Porting Guide - Adding SDHC (0) | 2022.07.06 |
---|---|
i.MX BSP Porting Guide - UART (0) | 2022.07.06 |
i.MX BSP Porting Guide - Memory Assignment (0) | 2022.07.04 |
i.MX BSP Porting Guide - Configuring Arm Trusted Firmware (0) | 2022.07.04 |
i.MX BSP Porting Guide - Configuring OP-TEE (0) | 2022.07.02 |