周五见| CLK相关问题讲解

Comake Online


作者| fish.xu、koda.xu、sz.chen、Macro、user_华仔、An、yongfeng.wu


Comake社区技术问题汇总,第20231027期,本期将分享CLK相关的问题。



本期问题速览


▪ MIPI DSI mclk如何计算?


▪ 用户使用过程中可能需要支持多种不同速率的i2c从设备,如何实现在用户层动态设置i2c总线的clk?


▪ 点TTL屏时,输出的clk信号能否反转?


▪ SPI CLK设置问题


▪ SDIO切通过*padmux.dts切mode之后,量测发现没有正常的CLK信号


▪  [SSD22X/21X]如何查看当前DDR 的clk及type?


▪ 设置SPI的clk为1M Hz为什么实际的clk为1.125M Hz?


▪ SSC369G mclk驱动力修改


▪ 输出MCLK给sensor可以输出哪些频率,是否可以自行修改?





Q1:MIPI DSI mclk如何计算?


A1:CLK = (H_Total)*(V_Total) * FPS * BitsPerPixel/lane number/2(双边沿采样)

H_Total/V_Total通过屏参MI_PANEL_ParamConfig_t u16HTotal/u16VTotal确认。

FPS通过屏参MI_PANEL_MipiDsiConfig_t u16Fps确认。

BitsPerPixel通过屏参MI_PANEL_MipiDsiConfig_t enformat确认



lane number通过屏参MI_PANEL_MipiDsiConfig_t enLaneNum确认,



双边沿采样是固定的,不可设定。

以ILI9881P的屏参举例:



可以看到H_Total = 880,V_Total = 1320,FPS = 60,enLaneNum = 4,BitsPerPixel = 24,所以


CLK = 880 * 1320 * 60 * 24/4/2 = 209088000


点击阅读原文



Q2:用户使用过程中可能需要支持多种不同速率的i2c从设备,如何实现在用户层动态设置i2c总线的clk?


A2:适用于SSD22X。


用户层来设置i2c clk有下面两种方式:


通过ioctl方式来设置。需要i2c原生驱动这一层提供支持,当前kernel版本的原生驱动并没有提供支持设置i2c clk的命令和接口。


修改sigma平台i2c驱动,提供设置i2c clk的接口。


当前我们选择在sigma的i2c驱动这一层做修改,添加“speed”属性节点,支持echo方式修改和以文件方式打开修改。相关修改如下:


20230810_support_set_i2c_speed.rar


当前i2c支持clk:



添加speed节点,支持动态设置i2c clk,设置方法如下。
查看i2c clk信息:



设置i2c clk,共0~9十个档位,分别对应i2c支持的是个档位的clk:




注意,主控一般是预设好i2c总线的频率,然后在和外设通讯过程中保持频率不变。应用层需要保证在设备工作前设定好总线频率,在设备工作过程中不会去修改i2c总线频率。


点击阅读原文



Q3:点TTL屏时,输出的clk信号能否反转


A3:可以支持clk信号的反转


→ 点击阅读全文



如您在开发的过程中遇到CLK相关问题,或您需要技术支持选型支持商务支持,欢迎进入Comake社区开发论坛发帖咨询,社区技术工程师和运营人员将会及时响应您的诉求。



往期回顾


周五见| GPIO相关问题讲解


周五见| USB相关问题讲解


周五见|kernel相关问题讲解


周五见|i2c相关问题讲解


周五见| SSD21X/22X相关问题讲解





扫码进入论坛

原厂答疑|产品选型|官方资源



扫码咨询客服

SDK下载|芯片、开发板购买


X 提交 下一题

查看更多