mipi_lcd_HX8379C.lua 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. --- 模块功能:HX8379C驱动芯片LCD命令配置
  2. -- @author openLuat
  3. -- @module ui.mipi_lcd_HX8379C
  4. -- @license MIT
  5. -- @copyright openLuat
  6. -- @release 2022.01.07
  7. --[[
  8. 注意:MIPI接口
  9. module(...,package.seeall)
  10. ]] --[[
  11. 函数名:init
  12. 功能 :初始化LCD参数
  13. 参数 :无
  14. 返回值:无
  15. ]]
  16. require "pins"
  17. local function init()
  18. local para = {
  19. width = 480, -- 分辨率宽度,
  20. height = 864, -- 分辨率高度
  21. bpp = 16, -- MIPI LCD直接写16,暂不支持其他配置
  22. bus = disp.BUS_MIPI, -- LCD专用SPI引脚接口,不可修改
  23. xoffset = 0, -- X轴偏移
  24. yoffset = 0, -- Y轴偏移
  25. freq = 125000000, -- mipi时钟最高为500000000 最低为125000000
  26. pinrst = pio.P0_20, -- reset,复位引脚,MIPI屏幕必须填写
  27. pinrs = 0xffff, -- mipi不需要rs脚,直接写0xffff
  28. ---- porch_vs porch_vbp porch_vfp porch_hs porch_hbp porch_hfp 这6个参数可以不配置
  29. ---- 软件有默认的配置。一般mipi屏会兼容多套参数。也可以根据厂商提供的参数进行修改
  30. ---- (480+30+30+10)*(854+15+8+2)* 16
  31. --porch_vs = 2,
  32. porch_vbp = 3,
  33. --porch_vfp = 13,
  34. --porch_hs = 10,
  35. -- porch_hbp = 30,
  36. --porch_hfp = 30,
  37. -- continue_mode 可以不配置底层默认为0. 配置后一直处于高速continue 模式
  38. --continue_mode = 1,
  39. -- 初始化命令
  40. -- 前两个字节表示类型:0001表示延时,0000或者0002表示命令,0003表示数据
  41. -- 延时类型:后两个字节表示延时时间(单位毫秒)
  42. -- 命令类型:后两个字节命令的值
  43. -- 数据类型:后两个字节数据的值
  44. -- 现在MIPI LCD 只支持,lane 2线,RGB565格式
  45. initcmd = {
  46. 0x000200B9,0x000300FF,0x00030083,0x00030079,
  47. 0x000200B1,0x00030044,0x00030016,0x00030016,0x00030031,0x00030031,0x00030090,0x000300D0,0x000300EE,0x00030094,0x00030080,0x00030038,0x00030038,0x000300F8,0x00030022,0x00030022,0x00030022,
  48. 0x000200B2,0x00030082,0x000300FE,0x0003000D,0x0003000A,0x00030020,0x00030050,0x00030011,0x00030042,0x0003001D,
  49. 0x000200B4,0x00030001,0x00030078,0x00030001,0x00030078,0x00030001,0x00030078,0x00030022,0x0003007F,0x00030023,0x0003007F,
  50. 0x000200C7,0x00030000,0x00030000,0x00030000,0x000300C0,
  51. 0x000200CC,0x00030002,
  52. 0x000200D2,0x00030011,
  53. 0x000200D3,0x00030000,0x00030007,0x00030000,0x0003003C,0x00030014,0x0003000A,0x0003000A,0x00030032,0x00030010,0x00030002,0x00030000,0x00030002,0x00030003,0x00030070,0x00030003,0x00030070,0x00030000,0x00030008,0x00030000,0x00030008,0x00030037,0x00030033,0x00030006,0x00030006,0x00030037,0x00030006,0x00030006,0x00030037,0x0003000B,
  54. 0x000200D5,0x00030019,0x00030019,0x00030018,0x00030018,0x0003001A,0x0003001A,0x0003001B,0x0003001B,0x00030002,0x00030003,0x00030000,0x00030001,0x00030006,0x00030007,0x00030004,0x00030005,0x00030020,0x00030021,0x00030022,0x00030023,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030000,0x00030000,
  55. 0x000200D6,0x00030018,0x00030018,0x00030019,0x00030019,0x0003001A,0x0003001A,0x0003001B,0x0003001B,0x00030003,0x00030002,0x00030005,0x00030004,0x00030007,0x00030006,0x00030001,0x00030000,0x00030023,0x00030022,0x00030021,0x00030020,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,0x00030018,
  56. 0x000200E0,0x00030000,0x00030000,0x00030000,0x0003000C,0x0003000C,0x0003003F,0x00030021,0x00030031,0x00030007,0x0003000C,0x0003000F,0x00030019,0x00030011,0x00030016,0x00030018,0x00030016,0x00030016,0x00030008,0x00030012,0x00030013,0x00030018,0x00030000,0x00030000,0x00030000,0x0003000B,0x0003000D,0x0003003F,0x00030020,0x00030031,0x00030008,0x0003000D,0x0003000F,0x00030019,0x00030012,0x00030016,0x00030019,0x00030016,0x00030016,0x00030008,0x00030014,0x00030014,0x00030019,
  57. 0x000200B6,0x0003004D,0x0003004D,
  58. 0x00020011,0x00030000,
  59. 0x00010078,
  60. 0x00020029,0x00030000,
  61. 0x00010032,
  62. },
  63. -- 休眠命令
  64. --sleepcmd = {0x00020028, 0x00020010},
  65. ---- 唤醒命令
  66. --wakecmd = {0x00020011, 0x00020029}
  67. }
  68. disp.init(para)
  69. disp.clear()
  70. disp.update()
  71. end
  72. -- VLCD电压域配置
  73. pmd.ldoset(15, pmd.LDO_VIBR)
  74. -- 背光配置
  75. function backlightopen(on)
  76. if on then
  77. pins.setup(pio.P0_8, 1)
  78. log.info("mipi_lcd_GC9503V 你打开了背光")
  79. else
  80. pins.setup(pio.P0_8, 0)
  81. log.info("mipi_lcd_GC9503V 你关闭了背光")
  82. end
  83. end
  84. backlightopen(true)
  85. -- 初始化
  86. init()