瑞芯微RK3399主板散热风扇控制说明文档

         宁远电子科技最新研发的DLT3399A产品,搭建了最新android7.1 系统,2G 内存,16G EMMC 存诸。DLT3399A产品为消费类电子、VR设备、人脸识别设备、车载控制、机器人、智能终端、MID、无线通讯、医疗设备、工业控制等行业产品的应用开发而设计,超强的视频处理能力,超高清视频输出优势,尤其适合做工业控制、广告机人脸识别设备等。DLT3399A其丰富的接口、精湛的设计,供广大企业用户产品使用。

DLT3399A散热风扇控制说明

联系人:周小姐

手机:13632726643 (微信同号)


散热风扇控制接口

风扇接口位置如图所示:

 

1、系统自动控制:读取CPU温度,如果CPU温度超过60℃,散热风扇接口会输出12V电压,开启风扇。温度低于40℃以下,散热风扇接口会关闭风扇。

2、如果客户需要控制风扇的开启和关闭,方法如下:

温度获取节点:”/sys/devices/virtual/thermal/thermal_zone0/temp”

如果读取的到的温度值为:48750,换算温度为48750/1000=48.75℃;

控制散热风扇开启和关闭的控制节点:”/dev/fan”

使用write函数控制gpio输出:

写入’1’,代表开启散热风扇;

写入’0’,代表关闭散热风扇;

写入’2’,  代表客户不进行控制,用底层默认自动控制;

  1. 测试样例

#include <stdio.h>

#include <unistd.h>

#include <fcntl.h>

#include <stdlib.h>

#include <string.h>

#include <errno.h>

#include <sys/types.h>

 

#define FAN_PATH "/dev/fan"

#define GET_TEMPERATURE_PATH "/sys/devices/virtual/thermal/thermal_zone0/temp"

 

#define FAN_OPEN_TEMP 60 //温度达到60度,开启风扇

#define FAN_OFF_TEMP     40 //温度降到40度,关闭风扇

 

int main (void)

{

    int  fd_fan;

FILE *fd_temp;

    int get_temp = -1;

    char set_fan='0';

int flag = 1;

 

while(1){

fd_fan = open (FAN_PATH, O_RDWR); //打开风扇控制设备节点

if (fd_fan < 0){

printf("open %s error!!!!!\n",FAN_PATH);

close (fd_fan);

exit(0);  

}

 

fd_temp = fopen(GET_TEMPERATURE_PATH,"r");//打开温度设备节点

if (fd_temp < 0){

printf("open %s error!!!!!\n",GET_TEMPERATURE_PATH);

fclose (fd_temp);

exit(0);

}

 

/* read */

fscanf(fd_temp,"%d",&get_temp); //获取当前温度值

get_temp = get_temp/1000; //换算

printf("get_temp value = %d\n", get_temp);

 

/* write */

if(get_temp >=FAN_OPEN_TEMP){

set_fan = '1';

if (write(fd_fan, &set_fan, sizeof(char)) < 0) //开启散热风扇

{

perror("fail to write");

}

}else if(get_temp <=FAN_OFF_TEMP){

set_fan = '0';

if (write(fd_fan, &set_fan, sizeof(char)) < 0) //关闭散热风扇

{

perror("fail to write");

}

}

 

sleep(5);

close (fd_fan);

fclose (fd_temp);

}

    return 0;

}

 

 

 

猜你喜欢

转载自blog.csdn.net/candy19912015/article/details/88944791
今日推荐