Filed under 电子制作

风扇硬件设计

1. 需要一个测温功能,这样芯片可以有两种模式:一个为软件模式,一个为硬件模式。当为软件模式时,使用USB传递指令,温度可以从tinyFan上取,可以从主板上取。没有USB控制时,fallback到硬件模式,也可以称为巡航模式或者默认模式,这时候温度从本身自带的测温模块上取。这样做主要是让比较懒的用户拿到就可以用。有些复杂,可以先在PCB上留出预留的针脚,软件再慢慢搞起来。

2.需要一个LED来显示PCB的工作状态。现在考虑这个LED能否显示有用的信息,否则只是通电/断电没有多大意思。另外taobao上面多色的LED还没找到。

 

风扇软件设计

准备用Open hardware mointor,代码在这里:http://code.google.com/p/open-hardware-monitor/。 Google Code就是烂,Fork没有,Clone也没有,不知道怎么check-in code,必须成为committer么?好像有把Google Code同步到GitHub上的工具,而且也可以merge。

1. 如果要添加新硬件,必须修改Hardware/Computer.cs,手工的add,比如Add(new Heatmaster.HeatmasterGroup(settings)),没有类似FakeSMC.kext插件的形式。

2. 整个代码是用c#写的,既然是操作硬件的,为啥不用c呢?可能界面是个大问题吧。不过这个项目已经支持不少的硬件包括一些新的芯片和主板,这个是关键。所以将就用吧。

3. 操作USB的方式。直接用c#应该也可以,因为操作主板LPC都可以,何况小小USB。可能是借助于WinRing0这个库。另外一种方式是使用libusb这个开源而且跨平台的库,独立出一个层来,接口有得到RPM、设置风扇duty。而且把USB的通讯报文的处理也封装在这个里面。好处是这样这个层也是跨平台的。对于其他的open hardware mointor不支持一些平台,比如Mac,可以暂时使用命令行的方式来控制风扇。

……….

电子元件选择

1. 风扇数量:暂时搞4个吧,多了在计算转速时timer中断太长,怕软件USB受不了不稳定。

2.4个风扇都要用PWM信号来控制转速,不管风扇是3pin还是4pin。所以需要有4个PWM,而一个timer最多有2个PWM,加上上面计算转速的timer,至少得3个timer。这个一来,tiny系列就全军覆没了。而atmega8才3个PWM,买了这个看来得放弃了。还是只支持3个风扇?2*3pin + 1*4pin?这样比较经济。但是没有道理。atmega48一样的价格,但是有6个pwm。

3.芯片的INT0端口是留给VUSB的,这个不能留作他用。atmega48这点是符合的。