RK3562J技术分享 | 使用SPI挂载数字式RTD温度传感器的方法
飞凌嵌入式最新推出的RK3562J开发板上预留出了SPI2接口,位于P8插针引脚上:
SPI2_CLK_M0、
SPI2_CSN0_M0、
SPI2_MOSI_M0、
SPI2_MISO_M0。
本篇文章,将为大家介绍在RK3562J开发板上使用SPI2挂载MAX31865(数字式RTD温度传感器)芯片的方法。
1. 修改思路
添加一个SPI设备的思路为:
在设备树中添加描述 → 设备树描述中对应设备驱动 → 设备驱动添加到内核
2. 修改方法
(1)MAX31865模块支持2线、3线、4线接线方式,这里我们选用3线方式接线。3线连接是一种折中方案,比4线方案少一条引线。为补偿导线上的压降,从(RTDIN+ RTDIN-)中减去FORCE+和RTDIN+之间的电压,利用FORCE2对输入采样实现。如果电缆电阻具有很好的一致性,即可消除电缆电阻引入的误差。
接线之前需要在模块上焊接一下,按照下图焊接成3线模式。
(2)在设备树里添加MAX31865的相关描述,因为我们是3线的接法,所以我们需要添加maxim,3-wire参数。
3. 将驱动编译成模块
(1)在内核源码/drivers创建max31865文件夹,添加max31865.c和Makefile文件。
(2)修改父目录/kernel/drivers/Makefile文件,执行全编译操作,修改如下:
/drivers/max31865/Makefile内容如下:
obj-m += max31865.o/kernel/drivers/Makefile添加如下代码:
obj-y += max31865再执行 ./build.sh kernel脚本编译内核,即可在 /drivers/max31865目录下生成ko模块。
(3)将max31865.ko 拷到飞凌RK35562开发板中,执行insmod max31865.ko加载。
4. 测试
使用22Ω的电阻模拟铂电阻,使用以下命令查看ADC原始值。
cat/sys/bus/iio/devices/iio:device2/in_temp_raw
可以看到22Ω的电阻,ADC的值是1655,对比芯片手册中的值,发现是正常的,对应的温度大概在-190℃左右。
至此一个新的MAX31865(数字式RTD温度传感器)设备添加成功,开发者可以根据读到的adc原始值,开发自己的应用去对应现在测到的温度。
以上就是OK3562J-C开发板上使用SPI2挂载MAX31865(数字式RTD温度传感器)设备的方法,希望能够对大家的项目开发有所帮助。
相关产品 >
-
OK3562J-C开发板
RK3562开发板,采用核心板+底板分体式设计,CPU采用瑞芯微工业级芯片RK3562J设计,RK3562J是瑞芯微专为工业自动化及消费类电子设备打造的一款高性能、低功耗国产化应用处理器,集成了4个ARM Cortex-A53高性能核,主频高达1.8GHz。RK3562核心板采用3组80Pin板对板连接器,可插拔式设计便于产品的安装与维护。 了解详情 -
FET3562J-C核心板
RK3562核心板,采用高性能低功耗工业级芯片RK3562J设计,RK3562J是瑞芯微专为工业自动化及消费类电子设备打造的一款高性能、低功耗国产化应用处理器,集成了4个ARM Cortex-A53高性能核,主频高达1.8GHz。RK3562核心板采用3组80Pin板对板连接器,可插拔式设计便于产品的安装与维护。 了解详情