作者| 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下载|芯片、开发板购买