hmc7044时钟芯片调试笔记

前言

本笔记基于运行linux操作系统的SOC芯片平台、linux内核版本linux5.10.xxx和无操作系统的mcu平台记录调试;

一、依赖文档、工具

文档名 说明 获取方式
hmc7044.pdf 数据手册 adi官网或者国内采芯网
GUI配置工具 通过在界面进行操作可以导出寄存器和寄存器值配置对文档用于代码中进行配置参考 adi官网

二、运行linux内核驱动的平台

1、代码、文件列表

文件名 说明 获取链接
hmc7044.c 驱动文件 https://github.com/analogdevicesinc/linux/blob/master/drivers/iio/frequency/hmc7044.c
hmc7044.h 驱动头文件 https://github.com/analogdevicesinc/linux/blob/master/include/dt-bindings/iio/frequency/hmc7044.h
hmc7044.txt 设备树属性配置说明文档,可以和GUI中的配置项说明配合理解 https://github.com/analogdevicesinc/linux/blob/master/Documentation/devicetree/bindings/iio/frequency/hmc7044.txt

2、适配、编译

1.将hmc7044.c 添加到自己的linux版本sdk的drivers/iio/frequency/目录下;
2.将hmc7044.h 添加到自己的linux版本sdk的include/dt-bindings/iio/frequency/目录下;
3.修改linux内核代码的配置文件添加CONFIG_HMC7044=m,这里配置为生成内核模块的方式;

4.修改hmc7044.c同级目录下的Kconfig文件添加如下内容:
config HMC7044
tristate “Analog Devices HMC7044, HMC7043 Clock Jitter Attenuator with JESD204B”
depends on SPI
depends on COMMON_CLK
help
Say yes here to build support for Analog Devices HMC7044, HMC7043
Clock Jitter Attenuator with JESD204B.
The driver provides direct access via sysfs.
To compile this driver as a module, choose M here: the
module will be called hmc7044.

5.修改hmc7044.c 同级目录下的Makefile文件增加如下内容:
obj-$(CONFIG_HMC7044) += hmc7044.o
6.修改设备树文件,配置spi使用的pin脚,hmc7044使用的是三线spi,这里我配置成了普通的gpio,在hmc7044中使用io模拟spi三线的的方式读写hmc7044:
&引脚配置控制器{
片选 {
};
时钟 {
};
数据线 {
};
};

7.修改设备树文件,spi节点下增加hmc7044子节点和配置,配置为参考配置具体以实际设计需求为准:

&spiXXX
{
   
        pinctrl-0 = <引用片选>,<引用时钟>,<引用数据线>;
        hmc7044: hmc7044@0 {
   
		compatible = "adi,hmc7044";
		reg = <0>;
		spi-max-frequency = <10000000>;
		adi,pll1-clkin-frequencies = <122880000 0 0 0>;
		adi,pll1-loop-bandwidth = <200>;
        //gpio属性定义
        spics = <引用引脚>;
        spiclk = <引用引脚>;
        spidata = <引用引脚>;
        
		adi
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值