Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    Neza-D1开发板学习之SPI-LCD灯篇

    MR Series
    1
    1
    1692
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • X
      xfdr0805 LV 5 last edited by

      1. Neza-D1开发板芯片很强,但是没有引出RGB接口,板上引出了HDMI与MIPI接口,没引出RGB接口,手里的RGB接口的屏用不上了,扩展IO上有引出SPI1接口,看了一下尺寸,刚好可以放的下2.8”的SPI屏幕,正好手里有以前剩下的屏幕,就画了一块扩展板(可惜芯片是BGA封装,即使我能画出来,也没本事焊上啊!),驱动芯片是ili9341 4线SPI,又加了一个触摸芯片上去,如下图
        2021-09-10 22-23-50屏幕截图.png
      2. 设备树配置
          lcd_ili9341@0 {
      		#address-cells = <1>;
      		#size-cells = <1>;
      		compatible = "ilitek,ili9341";
      		reg = <0>;
      		spi-max-frequency = <32000000>;
      		rotation = <0>;
      		spi-cpol;
      		spi-cpha;
      		rgb;
      		fps = <30>;
      		buswidth = <8>;
      		txbuflen = <32768>;
      		reset-gpios = <&pcf8574 6 GPIO_ACTIVE_LOW>;
      		dc-gpios = <&pcf8574 7 GPIO_ACTIVE_LOW>;
      		/*backlight = <&backlight>;*/
      		led-gpios = <&pcf8574 5 GPIO_ACTIVE_HIGH>;
      		status = "okay";
          };
      
      1. 在内核打开small lcd support选项

        [] Staging drivers --->
        <
        > Support for small TFT LCD display modules --->3
        <*> FB driver for the ILI9341 LCD Controller

      2. 系统启动log

          [    2.670067] fbtft_of_value: buswidth = 8
          [    2.674512] fbtft_of_value: backlight = 39
          [    2.679097] fbtft_of_value: fps = 30
          [    2.683098] fbtft_of_value: txbuflen = 32768
          [    2.691259] GPT:Primary header thinks Alt. header is not at the end of the disk.
          [    2.699560] GPT:625184 != 7774207
          [    2.703265] GPT:Alternate GPT header not at the end of the disk.
          [    2.709981] GPT:625184 != 7774207
          [    2.713688] GPT: Use GNU Parted to correct GPT errors.
          [    2.719480]  mmcblk0: p1 p2 p3 p4
          [    2.987837] random: fast init done
          [    3.036258] graphics fb1: fb_ili9341 frame buffer, 240x320, 150 KiB video memory, 32 KiB buffer memory, fps=31, spi1.0 at 32 MHz
      
      1. 这里有一点需要注意,我们使用的GPIO是通过PCF8574扩展出来的,对IO读写操作时可能会导致休眠,因此不能在中断函数里使用,我们需要简单的修改一下驱动文件,用一个宏定义即可,如果不修改操作一次IO,就会出现一堆警告

        #define gpio_set_value gpio_set_value_cansleep

      2. 进系统里可以查看是否有对应设备

         # ls /dev/fb*
         /dev/fb0  /dev/fb1
         测试屏幕
         # cat /dev/urandom > /dev/fb1
         cat: write error: No space left on device
         清屏
         # cat /dev/zero > /dev/fb1
         cat: write error: No space left on device
         显示图片
         # fbv image1.jpg
        
      1 Reply Last reply Reply Quote Share 1
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策