sharp_display_mipi — MIPI 点屏模块

################### 数据位数 ###################
MiPi_18_BIT = 0  # 18 Bit
MiPi_24_BIT = 1  # 24 Bit
MiPi_30_BIT = 2  # 30 Bit

################### pclk锁存边缘 ###################
MiPi_FALLING_EDGE = 0  # 下降沿锁存数据
MiPi_RISING_EDGE = 1  # 上升沿锁存数据

################### 脉冲有效电平 ###################
MiPi_LOW_ACTIVE = 0  # 低电平有效
MiPi_HIGH_ACTIVE = 1  # 高电平有效

################### 突发还是非突发 ###################
NONBURST_SYNC_PULSES = 0  # 非突发模式 sync pulses
NONBURST_SYNC_EVENTS = 1  # 非突发模式 sync events
BURST_MODE = 2  # 突发模式

################### 模式选择 ###################
VIDEO = 0  # Video模式
COMMAND = 1  # Command模式
V2C = 2  # V2C模式

################### D_PHY C_PHY LANE数选择 ###################
D_PHY_1LANE = 0x0101
D_PHY_2LANE = 0x0102
D_PHY_3LANE = 0x0103
D_PHY_4LANE = 0x0104
D_PHY_8LANE = 0x0128
C_PHY_1LANE = 0x0201
C_PHY_2LANE = 0x0202
C_PHY_3LANE = 0x0203
C_PHY_6LANE = 0x0226

################### AB端口选择 ###################
AB_Port = 0
BA_Port = 1

################### 字体尺寸参数宏定义 ################### 
FONT0816 = 0x01  # size: w = 8, h = 16
FONT1632 = 0x02  # size: w = 16, h = 32
FONT2448 = 0x03  # size: w = 24, h = 48
FONT3264 = 0x04  # size: w = 32, h = 64
FONT4080 = 0x05  # size: w = 40, h = 80
FONT4896 = 0x06  # size: w = 48, h = 96

################### 色彩宏定义 ################### 
NOCOLOR = 0x1000000  # 无色
RED = 0xFF0000
GREEN = 0x00FF00
BLUE = 0x0000FF
WHITE = 0xFFFFFF
BLACK = 0x000000
class sharp_display_mipi.MIPI

基类:object

√ MIPI信号配置模块类

  • 参数
    • PanelFre:: 屏幕刷新率

    • Pane_str : lvds_panel_par 点屏参数配置类

  • 返回
  • 注意

    使用时需要先实例化方可使用。

  • raise : 无

AB_Port = 0
ALL_En_Flag = 1

:

BA_Port = 1
BURST_MODE = 2
COMMAND = 1
C_PHY_1LANE = 513
C_PHY_2LANE = 514
C_PHY_3LANE = 515
C_PHY_6LANE = 550
D_PHY_1LANE = 257
D_PHY_2LANE = 258
D_PHY_3LANE = 259
D_PHY_4LANE = 260
D_PHY_8LANE = 296
DcsReadDT06(Port: int, reg: int, len: int)

读操作 DT = 0x06

  • 参数
    • reg: LCM 驱动IC寄存器地址

    • len: 读的长度,单位Byte

  • 返回
    • 读出的数据列表

    • -1 读失敗 其他 读成功

  • raise : 无

GenericReadDT14(Port: int, reg: int, len: int)

读操作 DT=0X14

  • 参数
    • reg : - LCM 驱动IC寄存器地址

    • len : - 讀的长度 单位Byte

  • 返回
    • 读出的数据列表

    • -1 读失敗

    • 其他 读成功

  • raise : 无

MIPI_EN = 0
MIPI_WR(mp_tuple: tuple)

整合了 DT = 0x39 0x29 0x05 0x15 0x03 0x13 0x23 的MIPI写操作

  • 参数
    • mp_tuple: 元组,不定长数据,格式: mipi_data = ((0x29,0x11),(0x29,0x29))

  • 返回 : 无

  • raise : 无

MiPi_18_BIT = 0
MiPi_24_BIT = 1
MiPi_30_BIT = 2
MiPi_FALLING_EDGE = 0
MiPi_HIGH_ACTIVE = 1
MiPi_LOW_ACTIVE = 0
MiPi_RISING_EDGE = 1
NONBURST_SYNC_EVENTS = 1
NONBURST_SYNC_PULSES = 0
SSD28_Command_HS()

在cmd模式下进hs

  • 参数 : 无

  • 返回 : 无

  • raise : 无

SSD28_Command_LP()

cmd模式下进lp

  • 参数 : 无

  • 返回 : 无

  • raise : 无

SSD28_DcsLongWrite(len: int)

DT = 0X39的写操作设置

  • 参数
    • len: n 写的字节数

  • 返回 : 无

  • raise : 无

SSD28_DcsShortWrite(len: int)

DT = 0x05, 0x15的写操作设置

  • 参数
    • len: n 写的字节数

  • 返回 : 无

  • raise : 无

SSD28_DispArea(xs: int, ys: int, xe: int, ye: int)

开窗

  • 参数
    • xs: X轴起始坐标

    • ys: Y轴起始坐标

    • xe: X轴结束坐标

    • ye: Y轴结束坐标

  • 返回 : 无

  • raise : 无

SSD28_DisplayFrame(len: int)

切换页面

  • 参数
    • len: 选择画面

  • 返回 : 无

  • raise : 无

SSD28_EnterConfigMode()

进入对应的模式

  • 参数 : 无

  • 返回 : 无

  • raise : 无

SSD28_GenericLongWrite(len: int)

DT = 0x29的写操作设置

  • 参数
    • len: n - 写的字节数

  • 返回 : 无

  • raise : 无

SSD28_GenericShortWrite(len: int)

DT = 0x03, 0x13, 0x23的写操作设置

  • 参数
    • len: n 写的字节数

  • 返回 : 无

  • raise : 无

SSD28_LP()

配置成LP模式

  • 参数 : 无

  • 返回 : 无

  • raise : 无

SSD28_PLL_ONOFF(on: int)

开启关闭PLL,休眠的进入与退出用

  • 参数
    • on : =1:开启 ,=0:关闭

  • 返回 : 无

  • raise : 无

SSD28_ReadCmdDat16(cmd: int)

2832往寄存器读16位的数据

  • 参数
    • cmd: 寄存器

    • data: 数据

  • 返回 : 读到的数据

  • raise : 无

SSD28_ReadCmdDat32(cmd: int)

2832往寄存器读32位的数据

  • 参数
    • cmd: 寄存器

    • data: 数据

  • 返回 : 读到的数据

  • raise : 无

SSD28_Read_APB_Reg(cmd: int)

2832 APB 读32位的数据

  • 参数
    • cmd: 寄存器

  • 返回 : 读到的数据

  • raise : 无

SSD28_SelectRead(tx: int)

选择读的端口

  • 参数
    • tx: 1:选择 MIPI_TX_A , 2:选择 MIPI_TX_B

  • 返回 : 无

  • raise : 无

SSD28_SelectWrite(tx: int)

选择写的端口

  • 参数
    • tx: =1:选择 MIPI_TX_A , =2:选择 MIPI_TX_B , =3:选择 MIPI_TX_A 和 MIPI_TX_B

  • 返回 : 无

  • raise : 无

SSD28_V2C_Disable()

失能 V2C * 参数 : 无

  • 返回 : 无

  • raise : 无

SSD28_V2C_Enable()

激活 V2C

  • 参数 : 无

  • 返回 : 无

  • raise : 无

SSD28_Video()

配置成Video模式

  • 参数 : 无

  • 返回 : 无

  • raise : 无

SSD28_WriteCmdDat16(cmd: int, data: int)

2832往寄存器写数据16位的数据

  • 参数
    • cmd: 寄存器

    • data: 数据

  • 返回 : 无

  • raise : 无

SSD28_WriteCmdDat32(cmd: int, data: int)

2832往寄存器写数据32位的数据

  • 参数
    • cmd: 寄存器

    • data: 数据

  • 返回 : 无

  • raise : 无

SSD28_WriteData(date: int)

发送一个MIPI数据,发MIPI初始化用

  • 参数
    • dat: 要写的数据

  • 返回 : 无

  • raise : 无

SSD28_Write_APB_Reg(cmd: int, data: int)

2832_APB写数据32位的数据

  • 参数
    • cmd: 寄存器

    • data: 数据

  • 返回 : 无

  • raise : 无

UserMipi_GetPanelFre(Pane_Par: mipi_panel_par)

√ 通过屏参数返回现在的刷新率

  • 参数
    • Pane_Par: mipi_panel_par 点屏参数配置类

  • 返回
    • 屏幕刷新频率

*注意 : 无

  • raise : 无

UserMipi_GetPanelHS_Mbps(Pane_Par: mipi_panel_par)

√ 通过屏的位数,频率和Lane数计算所需要的HS

  • 参数
    • class_panel: mipi_panel_par 点屏参数配置类

  • 返回
    • HS速率 单位Mbps

*注意 : 无

  • raise : 无

UserMipi_GetPanelPclk(Pane_Par: mipi_panel_par, hz: int)

√ 通过屏前后沿参数与刷新率获取pclk

  • 参数
    • class_panel: mipi_panel_par 点屏参数配置类

    • hz: 屏幕刷新频率

  • 返回
    • 像素时钟 单位Mhz

*注意 : 无

  • raise : 无

UserMipi_OFF()

关闭MIPI 信号

  • 参数
    • index:使能的板子 不传默认为全选

  • 返回
    • 看 EnumUserReturn 枚举

  • 注意 : 无

  • raise : 无

UserMipi_ON()

开启mipi 信号

  • 参数
    • index:使能的板子 不传默认为全选

  • 返回
    • 看 EnumUserReturn 枚举

  • 注意 : 这里出来是LP11模式

  • raise : 无

UserMipi_PclkGetPanelFre(Pane_Par: mipi_panel_par, pclk: float)

√ 通过屏前后沿参数与现传进去的pclk计算返回刷新率

  • 参数
    • class_panel : mipi_panel_par 点屏参数配置类

    *pclk : 像素时钟 单位Mhz

  • 返回
    • 屏幕刷新频率

*注意 : 无

  • raise : 无

UserMipi_SetTiming(Pane_Par: mipi_panel_par)

在点亮的同时动态的修改前后沿参数

  • 参数
    • class_panel: mipi_panel_par 点屏参数配置类

  • 返回 : 无

  • 注意 : 改pclk需要关闭显示才能修改

  • raise : 无

V2C = 2
VIDEO = 0
panel_object = None
sharp_display_mipi.SHARP_Display_Mipi_Init(PCLK, Pane_str)

√ MIPI屏幕参数设置

  • 参数
    • PCLK : pclk 像素时钟 单位Mhz

    • Pane_str: mipi_panel_par 点屏参数配置类

  • 返回 : 无(修改后的结构体以类的形式返回,返回的形式类似C指针形式并不在由return 返回)

  • 注意 : 函数执行后并不是直接生效,只是修改了par中的pclk参数,具体起作用是 UserMipi_SetPanelPar 函数后才生效

  • 所以要在 UserMipi_SetPanelPar 函数之前使用

  • raise : 无

sharp_display_mipi.SHARP_MIPI_WR(mp_tuple)

整合了 DT = 0x39 0x29 0x05 0x15 0x03 0x13 0x23 的MIPI写操作

  • 参数
    • mp_tuple: 元组,不定长数据,格式: mipi_data = ((0x29,0x11),(0x29,0x29))

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_Command_HS()

在cmd模式下进hs

  • 参数 : 无

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_Command_LP()

cmd模式下进lp

  • 参数 : 无

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_DcsLongWrite(len)

DT = 0X39的写操作设置

  • 参数
    • len: n 写的字节数

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_DcsReadDT06(reg, len)

读操作 DT = 0x06

  • 参数
    • reg: LCM 驱动IC寄存器地址

    • len: 读的长度,单位Byte

  • 返回
    • 读出的数据列表

    • -1 读失敗 其他 读成功

  • raise : 无

sharp_display_mipi.SHARP_SSD28_DcsShortWrite(len)

DT = 0x05, 0x15的写操作设置

  • 参数
    • len: n 写的字节数

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_DispArea(xs, ys, xe, ye)

开窗

  • 参数
    • xs: X轴起始坐标

    • ys: Y轴起始坐标

    • xe: X轴结束坐标

    • ye: Y轴结束坐标

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_DisplayFrame(len)

切换页面

  • 参数
    • len: 选择画面

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_EnterConfigMode()

进入对应的模式

  • 参数 : 无

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_GenericLongWrite(len)

DT = 0x29的写操作设置

  • 参数
    • len: n - 写的字节数

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_GenericReadDT14(reg, len)

读操作 DT=0X14

  • 参数
    • reg : - LCM 驱动IC寄存器地址

    • len : - 讀的长度 单位Byte

  • 返回
    • 读出的数据列表

    • -1 读失敗

    • 其他 读成功

  • raise : 无

sharp_display_mipi.SHARP_SSD28_GenericShortWrite(len)

DT = 0x03, 0x13, 0x23的写操作设置

  • 参数
    • len: n 写的字节数

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_LP()

配置成LP模式

  • 参数 : 无

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_PLL_ONOFF(on)

开启关闭PLL,休眠的进入与退出用

  • 参数
    • on : =1:开启 ,=0:关闭

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_ReadCmdDat16(cmd)

2832往寄存器读16位的数据

  • 参数
    • cmd: 寄存器

    • data: 数据

  • 返回 : 读到的数据

  • raise : 无

sharp_display_mipi.SHARP_SSD28_ReadCmdDat32(cmd)

2832往寄存器读32位的数据

  • 参数
    • cmd: 寄存器

    • data: 数据

  • 返回 : 读到的数据

  • raise : 无

sharp_display_mipi.SHARP_SSD28_Read_APB_Reg(cmd)

2832 APB 读32位的数据

  • 参数
    • cmd: 寄存器

  • 返回 : 读到的数据

  • raise : 无

sharp_display_mipi.SHARP_SSD28_SelectRead(tx)

选择读的端口

  • 参数
    • tx: 1:选择 MIPI_TX_A , 2:选择 MIPI_TX_B

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_SelectWrite(tx)

选择写的端口

  • 参数
    • tx: =1:选择 MIPI_TX_A , =2:选择 MIPI_TX_B , =3:选择 MIPI_TX_A 和 MIPI_TX_B

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_Set_OE(dat)

选择SSD28芯片(无效 不调用)

  • 参数 : 无

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_V2C_Disable()

失能 V2C * 参数 : 无

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_V2C_Enable()

激活 V2C

  • 参数 : 无

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_Video()

配置成Video模式

  • 参数 : 无

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_WriteCmdDat16(cmd, data)

2832往寄存器写数据16位的数据

  • 参数
    • cmd: 寄存器

    • data: 数据

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_WriteCmdDat32(cmd, data)

2832往寄存器写数据32位的数据

  • 参数
    • cmd: 寄存器

    • data: 数据

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_WriteData(date)

发送一个MIPI数据,发MIPI初始化用

  • 参数
    • dat: 要写的数据

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_SSD28_Write_APB_Reg(cmd, data)

2832_APB写数据32位的数据

  • 参数
    • cmd: 寄存器

    • data: 数据

  • 返回 : 无

  • raise : 无

sharp_display_mipi.SHARP_UserMipi_ConfPanelFre(hz, class_panel)

√ 通过屏参数以刷新率为目标,修改par中的pclk参数,使其达到所要的刷新率.

  • 参数
    • hz : 屏幕刷新频率

    • par: mipi_panel_par 点屏参数配置类

  • 返回 : 无(修改后的结构体以类的形式返回,返回的形式类似C指针形式并不在由return 返回)

  • 注意 : 函数执行后并不是直接生效,只是修改了par中的pclk参数,具体起作用是 UserMipi_SetPanelPar 函数后才生效

  • 所以要在 UserMipi_SetPanelPar 函数之前使用

  • raise : 无

sharp_display_mipi.SHARP_UserMipi_GetPanelFre(class_panel)

√ 通过屏参数返回现在的刷新率

  • 参数
    • class_panel: mipi_panel_par 点屏参数配置类

  • 返回
    • 屏幕刷新频率

*注意 : 无

  • raise : 无

sharp_display_mipi.SHARP_UserMipi_GetPanelHS_Mbps(class_panel)

√ 通过屏的位数,频率和Lane数计算所需要的HS

  • 参数
    • class_panel: mipi_panel_par 点屏参数配置类

  • 返回
    • HS速率 单位Mbps

*注意 : 无

  • raise : 无

sharp_display_mipi.SHARP_UserMipi_GetPanelPclk(class_panel, hz)

√ 通过屏前后沿参数与刷新率获取pclk

  • 参数
    • class_panel: mipi_panel_par 点屏参数配置类

    • hz: 屏幕刷新频率

  • 返回
    • 像素时钟 单位Mhz

*注意 : 无

  • raise : 无

sharp_display_mipi.SHARP_UserMipi_Init()

Mipi 信号基本初始化

  • 参数 : 无

  • 返回
    • 0:表示硬件ok

  • raise : 无

sharp_display_mipi.SHARP_UserMipi_OFF(index=None)

关闭MIPI 信号

  • 参数
    • index:使能的板子 不传默认为全选

  • 返回
    • 看 EnumUserReturn 枚举

  • 注意 : 无

  • raise : 无

sharp_display_mipi.SHARP_UserMipi_ON(index=None)

开启mipi 信号

  • 参数
    • index:使能的板子 不传默认为全选

  • 返回
    • 看 EnumUserReturn 枚举

  • 注意 : 这里出来是LP11模式

  • raise : 无

sharp_display_mipi.SHARP_UserMipi_PclkGetPanelFre(class_panel, pclk)

√ 通过屏前后沿参数与现传进去的pclk计算返回刷新率

  • 参数
    • class_panel : mipi_panel_par 点屏参数配置类

    *pclk : 像素时钟 单位Mhz

  • 返回
    • 屏幕刷新频率

*注意 : 无

  • raise : 无

sharp_display_mipi.SHARP_UserMipi_SetPanelPar(class_panel)

√ 点屏参数配置初始化函数

  • 参数
    • class_panel: mipi_panel_par 点屏参数配置类

  • 返回
    • >=0: 点屏参数配置初始化成功

    • <0: 点屏参数配置初始化失败

  • raise : 无

sharp_display_mipi.SHARP_UserMipi_SetTiming(class_panel)

在点亮的同时动态的修改前后沿参数

  • 参数
    • class_panel: mipi_panel_par 点屏参数配置类

  • 返回 : 无

  • 注意 : 改pclk需要关闭显示才能修改

  • raise : 无

class sharp_display_mipi.StrSSD_Window

基类:object

开窗模式配置的类对象 ,已经嵌套到 点屏参数配置的类对象里

Command_x_end()

X轴结束坐标

Command_x_start()

X轴开始坐标

Command_y_end()

Y轴结束坐标

Command_y_start()

Y轴开始坐标

class sharp_display_mipi.mipi_panel_par

基类:object

点屏参数配置类

Burst()

突发还是非突发

Burst_AllLP()

突发模式下空闲进LP使能

CmdOrVideo()

数据包传输模式(Video or command)

Cmd_PacketSizeMode()

数据包大小模式

HS_Mbps()

High speed 传输速率

LP_Mbps()

LOW Power 传输速率

PortDir()

Port 口(A口 or B口)

TypeLane()

DPHY或者CPHY类型 与 Lane数

autoPanelFre = 0

屏幕刷新率

bit_mode()

数据位数

de_active_edge()

de脉冲有效电平

h_active()

水平同步信号的的有效像素

h_active_edge()

水平同步信号的有效电平

h_back_porch()

水平同步信号的后沿

h_front_porch()

水平同步信号的前沿

h_pulse_width()

水平同步信号的脉冲宽度

pclk()

屏幕pclk时钟 单位:Mhz,支持小数

pclk_edge()

pclk锁存边缘

v_active()

垂直同步信号的有效像素

v_active_edge()

垂直同步信号的有效电平

v_back_porch()

垂直同步信号的后沿

v_front_porch()

垂直同步信号的前沿

v_pulse_width()

垂直同步信号的脉冲宽度