Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8605
  • 博文数量: 7
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 45
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-30 19:48
文章分类
文章存档

2012年(7)

我的朋友

分类:

2012-11-07 11:10:12

原文地址:EC对CPU风扇转速的控制 作者:siasca

笔记本 PWM FAN原理及实例分析:
 
基本思路: 生产商会给定一个cpu温度与当前转速匹配的Table表,我们EC可以通过TACHi来读取当前的cpu风扇的转速,然后与Table表进行比较来调节cpu的转速。转速的调节主要通过ADC来实现的,也就是控制其PWM。具体实现如下:
1、将cpu_tachometer表load到EC所开辟的SRAM空间中
2、通过smbus来读取cpu的当前温度,和系统的温度。
3、根据CPU的温度来选取cpu_tachometer表中对应的参数
4、通过EC的TACHi来读取cpu的当前转速,然后在与根据温度所得出的转速值进行比较,来调节相应PWM的值来控制转速。
 
Thermal Table,应该由散热工程师给出来的。这才是符合每一个机子的特性。
//比如CPU温度到了60度,规定要让风扇转到3000转,怎么办?当温度到了60度,EC会侦测风扇的转速,如果没有到3000转,就增加或者减少PWM的Duty cycle,直到得到想要的转速为止,其本质也是调节PWM,表现形式就是转速。//
 
Pin脚定义可能会不一样。
    1.对于Fan_Tach信号,可以用GPIO的Interrupt来侦察,计算转速;也可以用Timer的Interrupt来侦测。
    2.对于Fan_PWM可以直接用EC的PWM模块提供;也可以像你说的采用ADC来调节,其性质和效果是一样的,都是改变占空比调节转速!
    3.对于Fan_Speed的调节和控制,可采取直接给转速或者直接丢PWM两种方式;前者对Speed的侦测要求比较高,后者则没有太大的要求。
    4.至于Thermal Table,我们需要参照CPU和GPU以及PCH的Datasheet来制定,总之确保散热,确保噪音不是太大即可
 
阅读(2925) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~