已经商业化的产品有aquaero 5 LT USB fan controller,具体看这里 。
芯片都是LPC 接口,而这个好像只用在主板电路中。
从已有的设备(www.aqua-computer.de/e_content/e_aquaero.htm)看,它用USB HID接口,这样免驱动。
nuvoton的LPC芯片列表:http://www.nuvoton.com/NuvotonMOSS/Community/ProductInfo.aspx?tp_GUID=cf73485c-9e0a-4218-9bee-89dfe9a7bb87
如何用把LPC桥接到USB HID来呢?还是压根行不通?
从W83627DHG-P_W83627DHG-PT datasheet来看,只需使用其Hardware Monitor Interface就可以了,当然POWER PINS是需要接上的。
后来在amtel的网站上看到一篇文章“AVR441: Intelligent BLDC Fan Controller with Temperature Sensor and Serial Interface”,这个直接用amtel的芯片来控制风扇,i2c接口。乖乖,原来控制风扇用通用芯片也可以,不用上面这种专用的芯片也可以啊。不过外围电路比较复杂些。
run sensors-detect, beside super I/O, it also can detect I2C/smbus interface. as below:
LPC Iterface用不到,那寄存器从哪里读取呢?原来除了LPC,还有个有个I2C interface来读取内部寄存器。也即是SMBus Interface接口,通过SDA, SLC来上传和下载数据。taobao搜索”USB转I2C“有这种专门的芯片。国产的大多为这种:http://www.usb-i2c-spi.com/CN/prod_usb-i2c.htm ,优点在于外围元件简单,只需1个12M晶体和2个电容。缺点在于有点贵,单芯片就要50块。这个有linux的驱动,不错,不过当我下载deom的“大礼包”时,居然杀毒软件报有毒。不好靠谱啊。 正规芯片有FTDI的FT232H,不过这个功能太多,而且我看了datasheet,需要的外围电路还挺复杂的。不过后来我发现tiny-usb的i2c方案还要刷avr芯片,这个也很麻烦啊。
有的型号还支持SPI Interface,这个会更容易操作么?可以看看这里SPI、I2C、UART三种串行总线协议的区别 。
md,我又回来了。哈哈。
软件模拟的USB感觉不稳定,很是折腾,还是换为硬件的吧,谁叫我是菜鸟呢。
arduino老的 用ft232rl,淘宝上价格大概是15元。新的uno用atmel的Atmega16U2。我对比了下电路图,FTDI的更简单些。也有可能是新版的挖掘了atmel的更多功能。
smt焊接(或者贴片焊接)。淘宝上有,不过一般都接受只小批量的生产,我猜大多数还需要提供电路图。罢了。
128-QFP或者128-LQFP的淘宝上没有相应的转接卡卖,有144接口脚间距0.5mm的形状都为长方形,不符合要求。nuvoton 128针都为长方形。W83527HG为48针,简单,可惜不含i2c接口,无望。所以剩下的只有NCT5577D 这一款:64针,0.40mm间距,
Part | Qty | Name | 中文名 | taobao | 备注 |
D1, D2 | 2 | 3.6V zener diode | 稳压二极管,3.6v, 0.5w | 不单卖 |
|
Q1 | 1 | 12Mhz crystal, HC49U package | 晶振,12M赫兹 |
有很多 |
|
R1 | 1 | 2.2 kilo ohm resistor | 电阻 2.2k 1/4W | 不单卖 |
|
R2, R3 | 2 | 68 ohm resistor | 电阻 68欧 1/4W | ||
R4, R5 | 2 | 10 kilo ohm resistor | 电阻 10k 1/4w | ||
C1, C2 | 2 | 22pF ceramic capacitor, 2.54mm | 22pF 瓷片电容 | ||
C3 | 1 | 100nF capacitor, 5.08mm | 100nF 瓷片电容 | ||
C6 | 1 | 10μF electrolytic capacitor | 电解电容,圆柱体 | 1 , | |
-- | 1 | USB-B print connector | 可省,因为不好焊接 |
||
JP1 | 1 | 4 pin I2C connector | 单排针 | 可直接连芯片,这样就省了,对么? | |
U$1 | 1 | Attiny45 DIP 20Mhz | 单片机 | 有很多 | |
-- | 1 | socket for U$1 | 芯片座,8P | 1 , |
后来看了看Geoff's Projects ,由于加上了12v的电源调整电路,所以对输出要优化。加上470uf, 25v的电容,还有100uh, 1a or higher的电感。前者在这里 有,相当吻合。后者则不大好找,0805 package的一般都没有标注电流值。
现在差的是大4pin口的插座,要能焊接的那种。找了半天,md终于找到了,叫做“8981连接器”,这里 有。这家也有4pin的风扇接口。不过3pin的好像就没有了。
电源转换器用udn2981 ,用arduion的话,对于的anaglaWrite写入1~255的值,输出电压呈线性变化。这块芯片也有smd封装类型,就是可能argel上面没有这种类型的了。如果要贴片类型的,只能用UDN2982LW了
跟普通的PCF8574不同,NCT577D读写的时候都要加上寄存器地址,这个有和DS1621 类似,不过后者叫command,比如有读最高温度和最低温度阀值的command,这个感觉和寄存器地址差不多。在testapp/i2c_usb.c里面也有i2c_write_cmd_and_byte和i2c_write_byte这两种不同的方法,区别在于前者会发生两个字节,而后者只有一个字节。slave的芯片如何区分呢?比如如何记住前面一个是command?
重大失误:当I2C-USB做好后在连接NCT577D时,发现这个芯片是smbus master的,悲剧。虽然可以通过修改寄存器值而让其切换到slave的模式,但是还没连上去怎么修改寄存器呢?多个i2c master也是可以的通讯的,不过看这里 好像要芯片本身支持这种模式。
为什么不直接用UART?一则文档上面只是说hardware monitor只支持lpc和i2c interface,虽然芯片本身支持UART。再者,i2c好像简单点。
看chiphell这里 的推荐,使用电烙铁goot TQ-95,然后“原装日本太洋 GOOT TQ-77RT-2C 烙铁头 TQ-77 TQ-95专用 斜咀焊咀”,这个是斜口的,方便拖焊。需要焊油么?感觉不使用也行的。
风扇相关
一般风扇为12v输入电压,比如安耐美的 。
风扇自己也有单片机,牛啊,小小东西也能做成这样。我的九州风神的PWM风扇的芯片是三洋的LB11961 。
一个典型的例子为:http://www.linear.com.cn/product/LTC3642。这家公司生产的buck converter种类很多。可选的比und2981a多多了。