Forlinx OK7110-C Development Board Screen Debugging Methods

The OK7110-C's screen timing requires the dedicated calculation tool starFive_DSI_Tool.exe, which is stored in the Tools/dsi_tool folder of the user profile.

Operation methods:

01 Parameter configuration

Modify the input.ini file, which is used to configure the screen parameters; the following are the specific configuration parameters:

hactive: Effective screen length

Vactive:Effective screen width

Bpp:bit per pixel Pixel depth

fps:frame per second Frame rate

pixelclock_source:Pixel clock source. Because pixel clock is divided by JH7110 PLL2 integer frequency, here need to input PLL2 frequency; VF2 is 1188MHz.

dlanes: mipi dsi Number of channels

ref_pixclk:reference pixel clock reference pixel clock; according to the screen datasheet to know its reference pixel clock or reference pixel clock range.If it is a range, it is better to write the low bound here; this parameter can be filled with 0 to indicate that the reference clock is not used in the calculation or needs to calculate the timing of other frame rates.

nr_timing_generated:Number of time series to be generated

For example

JH7110 SBC Parameter configuration

02 Running

You need to install git on Windows.Open the DSI _ tool directory with git bash

JH7110 Single board computer install git on Windows.Open the DSI

Run the script run. Sh.

#!/bin/bash
output=$1
if [ "$output" == "" ]; then
	output=output.txt
fi
./StarFive_DSI_Tool.exe < input.ini > $output

Use the command./run. Sh.

JH7110 Single board computer Use the command./run. Sh.

Use the command./run. Sh. The timing generated by the tool is calculated from input.ini.

For example:

Welcome to use StarFive DSI timing generation tool v1.0
{
.dpi_timing = { //1024x600, 24 bits, 49.93 Hz
    .pixelclock   = 49500000,
    .hactive      = 1024    ,
    .hfront_porch = 475     ,
    .hback_porch  = 5       ,
    .hsync_len    = 5       ,
    .vactive      = 600     ,
    .vfront_porch = 47      ,
    .vback_porch  = 5       ,
    .vsync_len    = 5       ,
},
.dsi_timing = {
    .dlanes       = 4        ,
    .bitrate      = 380000000,
    .hsa          = 910      ,
    .hbp          = 908      ,
    .hfp          = 902      ,
    .hact         = 3072     ,
},
},

The number of generated timings is determined by the nr_timing_generated parameter in input.ini.

Note that if output.txt is generated in multiple groups,not every group will work properly. It is necessary to try them one by one to select the right timing for the screen.

Timing example:

{
.dpi_timing = { //1024x600, 24 bits, 49.93 Hz
    .pixelclock   = 49500000,
    .hactive      = 1024    ,
    .hfront_porch = 475     ,
    .hback_porch  = 5       ,
    .hsync_len    = 5       ,
    .vactive      = 600     ,
    .vfront_porch = 47      ,
    .vback_porch  = 5       ,
    .vsync_len    = 5       ,
},
.dsi_timing = {
    .dlanes       = 4        ,
    .bitrate      = 380000000,
    .hsa          = 910      ,
    .hbp          = 908      ,
    .hfp          = 902      ,
    .hact         = 3072     ,
},

Make changes against the device tree file OK7110-C.dts:

1. Modify the seeed_plane point:

dlanes: Modify according to the number of channels used on the screen.

width-mm,height-mm,data-mapping:Modify according to the actual information on the screen.

2. Modify mipi_dsi node:

Bitrate,hsa,hbp,hfp;modify according to the corresponding values in generation_timing.dsi_timing

3. panel-timing: The data in panel-timing, hactive and vactive are filled in according to the actual value of the screen; the rest of the panel-timing is modified according to the corresponding content in the generation sequence.dpi_timing. panel-timing. The modifications are as follows:

panel-timing {
		clock-frequency =;
		hactive =;
		vactive =;
		hsync-len =;
		hfront-porch =;
		hback-porch =;
		vfront-porch =;
		vback-porch =;
		vsync-len =;
};

After the modification, burn the new device tree into the device and see if it can be displayed properly.

If it can't be displayed normally, use the rest of the timings in output.txt and continue to try according to the above steps; if it can be displayed normally, the screen adaptation is completed.