笔记本 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来制定,总之确保散热,确保噪音不是太大即可
阅读(6045) | 评论(0) | 转发(1) |