mipi_lcd_ST7701S.lua 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. --- 模块功能:ST7701S驱动芯片LCD命令配置
  2. -- @author openLuat
  3. -- @module ui.mipi_lcd_ST7701S
  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. ]] local function init()
  16. local para = {
  17. width = 480, -- 分辨率宽度,
  18. height = 854, -- 分辨率高度
  19. bpp = 16, -- MIPI LCD直接写16,暂不支持其他配置
  20. bus = disp.BUS_MIPI, -- LCD专用SPI引脚接口,不可修改
  21. xoffset = 0, -- X轴偏移
  22. yoffset = 0, -- Y轴偏移
  23. freq = 125000000, -- mipi时钟最高为500000000
  24. pinrst = pio.P0_20, -- reset,复位引脚,MIPI屏幕必须填写
  25. pinrs = 0x000300ffff, -- mipi不需要rs脚,直接写0x000300ffff
  26. -- continue_mode = 1,
  27. -- 初始化命令
  28. -- 前两个字节表示类型:0001表示延时,0000或者0002表示命令,0003表示数据
  29. -- 延时类型:后两个字节表示延时时间(单位毫秒)
  30. -- 命令类型:后两个字节命令的值
  31. -- 数据类型:后两个字节数据的值
  32. -- 现在MIPI LCD 只支持,lane 2线,RGB565格式
  33. initcmd = {
  34. 0x000200FF, 0x00030077, 0x00030001, 0x00030000, 0x00030000,
  35. 0x00030013, 0x000200EF, 0x00030008, 0x000200FF, 0x00030077,
  36. 0x00030001, 0x00030000, 0x00030000, 0x00030010, 0x000200C0,
  37. 0x000300E9, 0x00030003, 0x000200C1, 0x0003000C, 0x00030002,
  38. 0x000200C2, 0x00030010, 0x00030006, 0x000200CC, 0x00030038,
  39. 0x000200B0, 0x00030040, 0x0003000B, 0x00030058, 0x0003000C,
  40. 0x00030011, 0x00030006, 0x0003000B, 0x00030008, 0x00030009,
  41. 0x00030026, 0x00030006, 0x00030015, 0x00030018, 0x0003006A,
  42. 0x0003006E, 0x0003004F, 0x000200B1, 0x00030040, 0x00030011,
  43. 0x00030057, 0x0003000D, 0x00030011, 0x00030007, 0x0003000B,
  44. 0x00030009, 0x00030008, 0x00030026, 0x00030005, 0x000300D3,
  45. 0x0003000D, 0x0003006B, 0x0003006E, 0x0003004F, 0x000200FF,
  46. 0x00030077, 0x00030001, 0x00030000, 0x00030000, 0x00030011,
  47. 0x000200B0, 0x00030056, 0x000200B1, 0x0003003A, 0x000200B2,
  48. 0x00030087, 0x000200B3, 0x00030080, 0x000200B5, 0x0003004D,
  49. 0x000200B7, 0x00030085, 0x000200B8, 0x00030010, 0x000200B9,
  50. 0x00030010, 0x000200BC, 0x00030003, 0x000200C0, 0x00030089,
  51. 0x000200C1, 0x00030078, 0x000200C2, 0x00030078, 0x000200D0,
  52. 0x00030088, 0x000200E0, 0x00030000, 0x00030000, 0x00030002,
  53. 0x000200E1, 0x00030004, 0x00030000, 0x00030000, 0x00030000,
  54. 0x00030005, 0x00030000, 0x00030000, 0x00030000, 0x00030000,
  55. 0x00030020, 0x00030020, 0x000200E2, 0x00030000, 0x00030000,
  56. 0x00030000, 0x00030000, 0x00030000, 0x00030000, 0x00030000,
  57. 0x00030000, 0x00030000, 0x00030000, 0x00030000, 0x00030000,
  58. 0x00030000, 0x000200E3, 0x00030000, 0x00030000, 0x00030033,
  59. 0x00030000, 0x000200E4, 0x00030022, 0x00030000, 0x000200E5,
  60. 0x00030004, 0x0003005C, 0x000300A0, 0x000300A0, 0x00030006,
  61. 0x0003005C, 0x000300A0, 0x000300A0, 0x00030000, 0x00030000,
  62. 0x00030000, 0x00030000, 0x00030000, 0x00030000, 0x00030000,
  63. 0x00030000, 0x000200E6, 0x00030000, 0x00030000, 0x00030033,
  64. 0x00030000, 0x000200E7, 0x00030022, 0x00030000, 0x000200E8,
  65. 0x00030005, 0x0003005C, 0x000300A0, 0x000300A0, 0x00030007,
  66. 0x0003005C, 0x000300A0, 0x000300A0, 0x00030000, 0x00030000,
  67. 0x00030000, 0x00030000, 0x00030000, 0x00030000, 0x00030000,
  68. 0x00030000, 0x000200EB, 0x00030002, 0x00030000, 0x00030040,
  69. 0x00030040, 0x00030000, 0x00030000, 0x00030000, 0x000200EC,
  70. 0x00030000, 0x00030000, 0x000200ED, 0x000300FA, 0x00030045,
  71. 0x0003000B, 0x000300FF, 0x000300FF, 0x000300FF, 0x000300FF,
  72. 0x000300FF, 0x000300FF, 0x000300FF, 0x000300FF, 0x000300FF,
  73. 0x000300FF, 0x000300B0, 0x00030054, 0x000300AF, 0x000200EF,
  74. 0x00030008, 0x00030008, 0x00030008, 0x00030045, 0x0003003F,
  75. 0x00030054, 0x000200FF, 0x00030077, 0x00030001, 0x00030000,
  76. 0x00030000, 0x00030000, 0x00020011, 0x00020029
  77. },
  78. -- 休眠命令
  79. sleepcmd = {0x00020028, 0x00020010},
  80. -- 唤醒命令
  81. wakecmd = {0x00020011, 0x00020029}
  82. }
  83. disp.init(para)
  84. disp.clear()
  85. disp.update()
  86. end
  87. -- VLCD电压域配置
  88. pmd.ldoset(15, pmd.LDO_VLCD)
  89. -- 背光配置
  90. function backlightopen(on)
  91. if on then
  92. pins.setup(pio.P0_21, 1)
  93. log.info("mipi_lcd_GC9503V 你打开了背光")
  94. else
  95. pins.setup(pio.P0_21, 0)
  96. log.info("mipi_lcd_GC9503V 你关闭了背光")
  97. end
  98. end
  99. backlightopen(true)
  100. -- 初始化
  101. init()