计算MIPI DSI数据速率的方式,以及如何配置时钟clk的方式
2016-09-14 10:41
525 查看
[DESCRIPTION]
计算DSI数据速率的方式,以及如何配置时钟clk的方式
[KEYWORD]
dsi、data rate、mipi clk
[SOLUTION]
1、DSI vdo mode下的数据速率data_rate的大致计算公式为:
Data rate= (Height+VSA+VBP+VFP)*(Width+HSA+HBP+HFP)* total_bit_per_pixel*frame_per_second/total_lane_num
2、DSI cmd mode下的数据速率data_rate的大致计算公式为:
Data rate= width*height*1.2* total_bit_per_pixel*frame_per_second/total_lane_num
参数注释:
data_rate : 表示的是数据速率
width,height :屏幕分辨率
VSA VBP VFP :DSI vdo mode的vertical porch配置参数
HSA HBP HFP :DSI vdo mode的horizontal porch配置参数
total_bit_per_pixel :表示的是一个pixel需要用几个bit来表示,比如RGB565的话就是16个bit
frame_per_second :就是我们通常看到的fps,叫做帧率,表示每秒发送多少个帧,一般是60帧每秒
total_lane_num :表示的是data lane的对数。
3、DSI采用的是双边采样,则clk等于数据速率的一半,因此: clk=data_rate/2
有两种配置clk的方式,第一种方式配置四个参数得到,第二种配置方式直接配置频率,建议采用第二种。
第一种方式,通过div分频倍频实现,各个平台略有差异,但是原理基本一致,请参考porting guide,如下举例89平台:
params->dsi.pll_div1 = ; //配置范围为0,1,2,3的时候,对应的div1_real等于1,2,4,4
params->dsi.pll_div2 = ; //配置范围为0,1,2,3的时候,对应的div2_real等于1,2,4,4
params->dsi.fbk_div = ; //范围 0..63
params->dsi.fbk_sel = ; //配置范围为0,1,2,3的时候,对应的fbk_sel_real等于1,2,4,4
输出频率=26MHz*(fbk_div+1)*(2*fbk_sel_real)/(div1_real*div2_real)
第二种方式,直接配置clk大小:
params->dsi.PLL_CLOCK = LCM_DSI_6589_PLL_CLOCK_234;//这里举例89平台,使用一个宏,表示配置的clk等于234MHz。但是在89之后的平台,使用直接配置一个频率数字的方式,比如params->dsi.PLL_CLOCK = 234,表示234MHZ)
4、在lcm porting过程中,这些参数都定义在lcm_drv.h文件中的LCM_DSI_PARAMS结构体中,随着平台的发展,或许有所不同,但是基本原理都是一致的,如何配置clk的大小,请先根据自己的帧率、像素格式、porch值、屏的分辨率、data lane对数等计算出data_rate,然后计算出clk。
在后面问一句,datasheet 中出现的dsi ddr clk rate 是什么意思 ddr 是double data-rate 的意思吗?知道的回答一下。
计算DSI数据速率的方式,以及如何配置时钟clk的方式
[KEYWORD]
dsi、data rate、mipi clk
[SOLUTION]
1、DSI vdo mode下的数据速率data_rate的大致计算公式为:
Data rate= (Height+VSA+VBP+VFP)*(Width+HSA+HBP+HFP)* total_bit_per_pixel*frame_per_second/total_lane_num
2、DSI cmd mode下的数据速率data_rate的大致计算公式为:
Data rate= width*height*1.2* total_bit_per_pixel*frame_per_second/total_lane_num
参数注释:
data_rate : 表示的是数据速率
width,height :屏幕分辨率
VSA VBP VFP :DSI vdo mode的vertical porch配置参数
HSA HBP HFP :DSI vdo mode的horizontal porch配置参数
total_bit_per_pixel :表示的是一个pixel需要用几个bit来表示,比如RGB565的话就是16个bit
frame_per_second :就是我们通常看到的fps,叫做帧率,表示每秒发送多少个帧,一般是60帧每秒
total_lane_num :表示的是data lane的对数。
3、DSI采用的是双边采样,则clk等于数据速率的一半,因此: clk=data_rate/2
有两种配置clk的方式,第一种方式配置四个参数得到,第二种配置方式直接配置频率,建议采用第二种。
第一种方式,通过div分频倍频实现,各个平台略有差异,但是原理基本一致,请参考porting guide,如下举例89平台:
params->dsi.pll_div1 = ; //配置范围为0,1,2,3的时候,对应的div1_real等于1,2,4,4
params->dsi.pll_div2 = ; //配置范围为0,1,2,3的时候,对应的div2_real等于1,2,4,4
params->dsi.fbk_div = ; //范围 0..63
params->dsi.fbk_sel = ; //配置范围为0,1,2,3的时候,对应的fbk_sel_real等于1,2,4,4
输出频率=26MHz*(fbk_div+1)*(2*fbk_sel_real)/(div1_real*div2_real)
第二种方式,直接配置clk大小:
params->dsi.PLL_CLOCK = LCM_DSI_6589_PLL_CLOCK_234;//这里举例89平台,使用一个宏,表示配置的clk等于234MHz。但是在89之后的平台,使用直接配置一个频率数字的方式,比如params->dsi.PLL_CLOCK = 234,表示234MHZ)
4、在lcm porting过程中,这些参数都定义在lcm_drv.h文件中的LCM_DSI_PARAMS结构体中,随着平台的发展,或许有所不同,但是基本原理都是一致的,如何配置clk的大小,请先根据自己的帧率、像素格式、porch值、屏的分辨率、data lane对数等计算出data_rate,然后计算出clk。
在后面问一句,datasheet 中出现的dsi ddr clk rate 是什么意思 ddr 是double data-rate 的意思吗?知道的回答一下。
相关文章推荐
- 计算DSI数据速率的方式,以及如何配置时钟clk的方式
- 配置SQL Server 2005 Express的身份验证方式,以及如何启用sa登录名(转)
- 配置SQL Server 2005 Express的身份验证方式,以及如何启用sa登录名
- 数据库开发基本操作-配置SQL Server 2005 Express的身份验证方式,以及如何启用sa登录名
- stm32变更外部晶振时如何配置时钟、以及HSI的使用
- [RK3288][Android6.0] 如何配置MIPI DSI Clock和PCLK
- servlet(三)-如何使用传参-三种转发方式、传递参数以及对象中数据的范围
- 如何配置DSI时钟频率
- 如何配置DSI时钟频率
- Hive表中四种不同数据导出方式以及如何自定义导出列分隔符
- 配置SQL Server 2005 Express的身份验证方式,以及如何启用sa登录名。
- 事务有哪些特性?spring的事务管理有几种方式实现,如何实现?spring 中常用的两种事务配置方式以及事务的传播性、隔离级别
- 配置SQL Server 2005 Express的身份验证方式,以及如何启用sa登录名
- (3)分布式下的爬虫Scrapy应该如何做-递归爬取方式,数据输出方式以及数据库链接
- servlet(三)-如何使用传参-三种转发方式、传递参数以及对象中数据的范围
- 【转载】配置SQL Server 2005 Express的身份验证方式,以及如何启用sa登录名。
- MyBatis第三种方式,xml和接口的结合,以及如何获得插入数据的返回参数、传入空的参数
- 如何配置DSI时钟频率
- 表单向后台提交数据,get和post的两种方式的根本区别以及如何处理乱码?
- 配置SQL Server 2005 Express的身份验证方式,以及如何启用sa登录名