아쉽게도 라즈베리 파이에 있는 DSI 인터페이스는 아니고
[링크 : https://en.wikipedia.org/wiki/Display_Serial_Interface]
SPI를 이용한 터치 + 320x480 해상도의 LCD 이다.
DVD 하나가 들어있는데 라즈베리 img 파일이 거의 대부분의 용량을 차지하는데..
microSD의 용량이 참.. 많이도 커졌구나 싶은느낌...
이렇게 깔끔하게 장착된다 +_+
[링크 : http://eleparts.co.kr/EPXDR9TM]
[링크 : http://cafe.naver.com/pipc/11690]
┌──────────┤ Raspberry Pi Software Configuration Tool (raspi-config) ├──────────┐ │ │ │ 1 Expand Filesystem Ensures that all of the SD card s │ │ 2 Change User Password Change password for the default u │ │ 3 Enable Boot to Desktop/Scratch Choose whether to boot into a des │ │ 4 Internationalisation Options Set up language and regional sett │ │ 5 Enable Camera Enable this Pi to work with the R │ │ 6 Add to Rastrack Add this Pi to the online Raspber │ │ 7 Overclock Configure overclocking for your P │ │ 8 Advanced Options Configure advanced settings │ │ 9 About raspi-config Information about this configurat │ │ │ │ │ │ │ │ <Select> <Finish> │ │ │ └───────────────────────────────────────────────────────────────────────────────┘ ┌──────────┤ Raspberry Pi Software Configuration Tool (raspi-config) ├──────────┐ │ │ │ A1 Overscan You may need to configure oversca │ │ A2 Hostname Set the visible name for this Pi │ │ A3 Memory Split Change the amount of memory made │ │ A4 SSH Enable/Disable remote command lin │ │ A5 Device Tree Enable/Disable the use of Device │ │ A6 SPI Enable/Disable automatic loading │ │ A7 I2C Enable/Disable automatic loading │ │ A8 Serial Enable/Disable shell and kernel m │ │ A9 Audio Force audio out through HDMI or 3 │ │ A0 Update Update this tool to the latest ve │ │ │ │ │ │ <Select> <Back> │ │ │ └───────────────────────────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────┐ │ │ │ Would you like the SPI interface to be enabled? │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ <예> <아니오> │ │ │ └──────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────┐ │ │ │ The SPI interface will be enabled after a reboot │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ <확인> │ │ │ └──────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────┐ │ │ │ Would you like the SPI kernel module to be loaded by │ │ default? │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ <예> <아니오> │ │ │ └──────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────┐ │ │ │ SPI kernel module will now be loaded by default │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ <확인> │ │ │ └──────────────────────────────────────────────────────────┘ |
일단은.. HDMI가 위쪽으로 가는게 기본 방향인데..
터치랑 화면이랑 각도가 안 맞아서 이래저래 캘리브레이션을 해야 할 듯 ㅠㅠ
+
2015.08.09 추가
으으 로컬에서 해야 하는거 느므시러 ㅠㅠ
$ wget http://tronnes.org/downloads/xinput-calibrator_0.7.5-1_armhf.deb $ sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb $ xinput_calibrator Unable to connect to X server |
그나저나 SPI라서 그런지 화면 갱신이 꽤나 느리네..
pi@raspberrypi ~ $ xinput_calibrator Calibrating EVDEV driver for "ADS7846 Touchscreen" id=9 current calibration values (from XInput): min_x=0, max_x=4095 and min_y=0, max_y=4095 Doing dynamic recalibration: Swapping X and Y axis... Setting new calibration data: 237, 3965, 3888, 214 --> Making the calibration permanent <-- copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' Section "InputClass" Identifier "calibration" MatchProduct "ADS7846 Touchscreen" Option "Calibration" "237 3965 3888 214" Option "SwapAxes" "1" EndSection |
위에 예제 대로 했더니 잘 안되서
X/Y 모두 스왑 / 축 바꾸기 전부 시전 ㄷㄷ
$ cat /usr/share/X11/xorg.conf.d/99-fbturbo.conf # This is a minimal sample config file, which can be copied to # /etc/X11/xorg.conf in order to make the Xorg server pick up # and load xf86-video-fbturbo driver installed in the system. # # When troubleshooting, check /var/log/Xorg.0.log for the debugging # output and error messages. # # Run "man fbturbo" to get additional information about the extra # configuration options for tuning the driver. Section "Device" Identifier "Allwinner A10/A13 FBDEV" Driver "fbturbo" Option "fbdev" "/dev/fb1" Option "SwapbuffersWait" "true" EndSection Section "InputClass" Identifier "calibration" MatchProduct "ADS7846 Touchscreen" Option "Calibration" "237 3965 3888 214" Option "SwapAxes" "1" Option "InvertX" "1" Option "InvertY" "1" EndSection |
$ cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait fbcon=map:1
SPI로 하기 때문에 어쩔수 없이.. 16bit color인건가? RGB565로 걸리네
fbtft 의 덕택으로 편하게 쓰는.. 로그? ㅋ
pi@raspberrypi ~ $ dmesg | grep -i tft [ 3.611085] fbtft: module is from the staging directory, the quality is unknown, you have been warned. [ 3.700666] fbtft_of_value: regwidth = 16 [ 3.709297] fbtft_of_value: buswidth = 8 [ 3.716195] fbtft_of_value: debug = 0 [ 3.733842] fbtft_of_value: rotate = 90 [ 3.748195] fbtft_of_value: fps = 30 |
dts 파일을 열어보니.. 먼소리인지 모르겠다? ㅋㅋ
아무튼
LCD는 16MHz SPI clk
터치는 2MHz SPI clk로 작동이라.. 저걸 변경해서 LCD쪽 SPI 클럭 올려주면 좀더 빠르려나?
pi@raspberrypi ~/src/lcd/waveshare-dtoverlays $ cat waveshare35a-overlay.dts /* * Device Tree overlay for PiScreen 3.5" display shield by Ozzmaker * */ /dts-v1/; /plugin/; / { compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709"; fragment@0 { target = <&spi0>; __overlay__ { status = "okay"; spidev@0{ status = "disabled"; }; spidev@1{ status = "disabled"; }; }; }; fragment@1 { target = <&gpio>; __overlay__ { waveshare35a_pins: waveshare35a_pins { brcm,pins = <17 25 24>; brcm,function = <0 0 0>; /* in in in */ }; }; }; fragment@2 { target = <&spi0>; __overlay__ { /* needed to avoid dtc warning */ #address-cells = <1>; #size-cells = <0>; waveshare35a: waveshare35a@0{ compatible = "ilitek,ili9486"; reg = <0>; pinctrl-names = "default"; pinctrl-0 = <&waveshare35a_pins>; spi-max-frequency = <16000000>; rotate = <90>; bgr; fps = <30>; buswidth = <8>; regwidth = <16>; reset-gpios = <&gpio 25 0>; dc-gpios = <&gpio 24 0>; debug = <0>; init = <0x10000b0 0x00 0x1000011 0x20000ff 0x100003a 0x55 0x1000036 0x28 0x10000c2 0x44 0x10000c5 0x00 0x00 0x00 0x00 0x10000e0 0x0f 0x1f 0x1c 0x0c 0x0f 0x08 0x48 0x98 0x37 0x0a 0x13 0x04 0x11 0x0d 0x00 0x10000e1 0x0f 0x32 0x2e 0x0b 0x0d 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00 0x10000e2 0x0f 0x32 0x2e 0x0b 0x0d 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00 /* piscreen -> waveshare35a */ 0x1000036 0x28 0x1000011 0x1000029>; }; waveshare35a-ts@1 { compatible = "ti,ads7846"; reg = <1>; spi-max-frequency = <2000000>; interrupts = <17 2>; /* high-to-low edge triggered */ interrupt-parent = <&gpio>; pendown-gpio = <&gpio 17 0>; ti,x-plate-ohms = /bits/ 16 <60>; ti,pressure-max = /bits/ 16 <255>; }; }; }; __overrides__ { speed = <&waveshare35a>,"spi-max-frequency:0"; rotate = <&waveshare35a>,"rotate:0"; fps = <&waveshare35a>,"fps:0"; debug = <&waveshare35a>,"debug:0"; }; }; |
[링크 : http://www.wvshare.com/product/3.5inch-RPi-LCD-A.htm]
핀번호로 매칭해보니.. 왼쪽의 SPI는 LCD 오른쪽의 SPI가 터치구나..
'embeded > raspberry pi' 카테고리의 다른 글
라즈베리 파이 csi v4l (0) | 2015.08.09 |
---|---|
라즈베리 파이 SPI 모니터와 HDMI 듀얼로 사용하기 (2) | 2015.08.09 |
라즈베리 파이 5M 카메라 - 지름도착! (2) | 2015.08.08 |
아 몰랑 휴가비로 생각하고 질렁 (0) | 2015.08.07 |
아.. 지르고 싶다 ㅠㅠ (0) | 2015.08.05 |