Latest Post
AM335x 커널 4.4 Device tree 수정하여 UART 사용하기

커널 4.4에서는 device tree를 수정하면 됩니다. 


arch/arm/boot/dts/am335x-evmsk.dts 파일에서

아래와 같이 설정하면 됩니다. 


0x180 (PIN_INPUT_PULLUP | MUX_MODE0)   

숫자 180의 의미는 첨부된 spruh73p AM335x Technical Reference Manual 메뉴얼에  

1456 페이지에 conf_gpmc_ad0에서 부터 offset값입니다. 

해당 mux 첨부된 엘셀파일 참조하세요. 



아래는 예제입니다. 


#if 0//crazyboys 20180816

/* crazyboy 20161215 i2c1 */

        i2c1_pins: pinmux_i2c1_pins {

                pinctrl-single,pins = <

                        0x168 (PIN_INPUT_PULLUP | MUX_MODE3 | SLEWCTRL_SLOW)    /* uart0_ctsn.i2c1_sda */

                        0x16c (PIN_INPUT_PULLUP | MUX_MODE3 | SLEWCTRL_SLOW)    /* uart0_rtsn.i2c1_scl */

                >;

        };

#endif

        uart0_pins: pinmux_uart0_pins {

                pinctrl-single,pins = <

                        0x170 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart0_rxd.uart0_rxd */

                        0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)         /* uart0_txd.uart0_txd */

                >;

        };

/* crazyboys 20180816 */

        uart1_pins: pinmux_uart1_pins {

                pinctrl-single,pins = <

                        0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */

                        0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */

                >;

        };

        uart2_pins: pinmux_uart2_pins {

                pinctrl-single,pins = <

                0x12c (PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_txclk.uart2_rxd */

                0x130 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_rxclk.uart2_txd */

                >;

        };

        uart4_pins: pinmux_uart4_pins {

                pinctrl-single,pins = <

                        0x168 (PIN_INPUT_PULLUP | MUX_MODE1) /* uart0_ctsn.uart4_rxd */

                        0x16c (PIN_OUTPUT_PULLDOWN | MUX_MODE1 )   /* uart0_rtsn.uart4_txd */

                >;

        };


핀 mux하고 

&uart0 {

        pinctrl-names = "default";

        pinctrl-0 = <&uart0_pins>;


        status = "okay";

};

//crazyboys 20180816

&uart1 {

        pinctrl-names = "default";

        pinctrl-0 = <&uart1_pins>;

  //      current-speed = <115200>;


        status = "okay";

};

&uart2 {

        pinctrl-names = "default";

        pinctrl-0 = <&uart2_pins>;


        status = "okay";

};

&uart4 {

        pinctrl-names = "default";

        pinctrl-0 = <&uart4_pins>;


        status = "okay";

};


커널 컴파일 후 이미지 Write후 uart 확인 방법.

커널 컴파일 후 아래와 같이 Write한다. 

$ cp /zImage custom_datafs/boot/

$ cp am335x-evmsk.dtb custom_datafs/boot/

$ ./custom_datafs_make.sh실행 후 custom_datafs.tar.gz 이 만들어 진다.?

$ sudo ./create-sdcard-ubuntu16.0.6.sh /dev/

또는 

$ sudo ./create-sdcard.sh /dev/


$ ls /dev/ttyS*

ttyS1, ttyS2, ttyS4 가 있어야 한다. 

[root@localhost ~]# stty -F /dev/ttyS0

speed 115200 baud; line = 0;

eol = ^J;

-brkint ixoff -imaxbel

-iexten -echoctl

[root@localhost ~]# stty -F /dev/ttyS1

speed 9600 baud; line = 0;

-brkint -imaxbel


만약 없으면 커널 *.dtb 파일이 제대로 write가 되지 않은 것이다. 


G
M
T
Y
음성 기능은 200자로 제한됨
Comments 0
:    :    :
이름 / 2014-11-20 / ★★★☆☆ [수정 / 삭제]

내용

Recent Comments
일방통행  |  ★★★★★
ISE 14.7 virtualbox를 설치했는데, ,iMPACT가 인식을 못하는데, 어케해야하나요?
min  |  ★★★★☆
These are the only Drives available to write images to: # major minor size name 1: 8 0 512805384 sda 2: 8 16 15558144 sdb Enter Device Number or n to exit: 2 Invalid selection! 왜 이런 오류가 나는 걸까요?
dino  |  ★★☆☆☆
NAND Scrub실행 후 에러가 나타납니다/ 조치방법을 알려주세요 에러내용 crz nand_erase_opts erase.addr=0x0, opt->offset=0x0, erase_ieng minfo_erases=0x20000 .....진행후 s3c-nand:ecc uncorrectable error detected---4개발생합니다 빠른 회신부탁드립니다 연락처:010-3752-6251 강희진
bluewind  |  ★★★★★
안녕하세요..구입했는데..회로도 부탁드립니다. percephy@naver.com 입니다.
조형철  |  ★★★★★
상기 Backlight 관련 회로를 구할 수 있을까요?
hwang  |  ★★★★★
구입한지 조금 됬는데 회로도 부탁합니다. rubens7777@paran.com 입니다.