已经商业化的产品有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 withTemperature Sensor and Serial Interface直接使用这个amtel控制风扇的芯片,i2c接口。乖乖,原来用通用芯片控制风扇也可以,不用上面这个专用芯片也可以。但是外围电路比较复杂。
In linux,
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针都是矩形的。W83527HG48针,简单,可惜不含i2c界面,无望。所以剩下的只有NCT5577D 这个:64针,0.40mm间距,
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了
I2C协议编程
跟普通的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 。
其他的Voltage Converter
一个典型的例子为:http://www.linear.com.cn/product/LTC3642。这家公司生产的buck converter种类很多。可选的比und2981a多多了。