Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Gần đây tôi đã nâng cấp cạc đồ họa của mình. Mẫu GPU mới có TDP cao hơn CPU của tôi và GPU cũ, vì vậy tôi cũng muốn lắp thêm quạt thùng máy. Thật không may, MOBO của tôi chỉ có 3 đầu nối quạt với điều khiển tốc độ và chúng chỉ có thể được liên kết với nhiệt độ CPU hoặc chipset. Tôi đã quyết định khắc phục điều này, bằng cách thiết kế bộ điều khiển quạt PC của riêng mình đọc tốc độ RPM của các quạt đã được cài đặt (cả những quạt được kết nối với MOBO và được điều khiển bởi nhiệt độ CPU và những thứ làm mát GPU) và có hai kênh đầu ra. Kênh A sử dụng tốc độ của cả quạt liên kết nhiệt độ CPU và GPU để điều khiển quạt đầu ra 3 chân với tốc độ thay đổi. Kênh B chỉ cảm nhận tốc độ của quạt GPU và mạch đầu ra của nó sử dụng bóng bán dẫn bổ sung cho phép đạt được tốc độ thấp hơn của quạt do nó điều khiển (nó hoạt động tốt với card đồ họa bán thụ động).
Đọc tốc độ của các quạt khác theo ý kiến của tôi là dễ dàng và rẻ hơn so với việc lắp đặt các đầu dò nhiệt độ bổ sung ngay bên cạnh các bộ xử lý được bao phủ trong bộ tản nhiệt (về cơ bản nó yêu cầu kết nối dây đồng hồ tốc độ của quạt trực tiếp với chân vi điều khiển).
Một số phương pháp điều khiển tốc độ quạt được mô tả ở đây. Tôi quyết định sử dụng PWM tần số thấp, nhưng với một số sửa đổi đối với phương pháp được mô tả trong bài báo. Thứ nhất, mỗi kênh có 6 điốt mắc nối tiếp, có thể được sử dụng để giảm điện áp cấp nguồn cho quạt 4-5V. Trong thiết lập này, các mức điện áp PWM là ~ 8V - 12V và 0V - ~ 8V (không khả dụng trong Kênh A) thay vì 0V - 12V. Điều này làm giảm đáng kể tiếng ồn tạo ra từ quạt. Một mẹo khác mà tôi đã sử dụng để làm cho quạt được điều khiển theo kiểu này im lặng hơn được mô tả ở đây. Thủ thuật này yêu cầu cài đặt mạch RC giữa đầu ra của bộ vi điều khiển và cổng MOSFET mà tôi đã sử dụng để chuyển đổi mức điện áp của quạt. Điều này làm giảm tốc độ quay của tín hiệu điều khiển MOSFET, do đó làm cho độ giật góc của quạt trong quá trình thay đổi mức điện áp ít nổi bật hơn, giảm rung động và tăng đột biến điện áp.
Quân nhu
Các bộ phận và vật liệu:
- ATtiny13 hoặc ATtiny13A trong trường hợp 8-PDIP
- Ổ cắm DIP 8 chân
- Bóng bán dẫn 3x IRF530
- 12x 1N4007 diode (bất kỳ diode 1A nào khác có điện áp giảm khoảng 0,7V sẽ hoạt động)
- Tụ điện hướng tâm 220uF / 25V
- Tụ điện xuyên tâm 10uF / 16V
- Tụ đĩa gốm 100nF 5x
- Điện trở 10k 0,25W
- Điện trở 4x 22k 0,25W
- Điện trở 2x 1k 0,25W
- Nút chuyển đổi xúc giác 6x6mm
- Đầu cắm pin nam thẳng 2x 2 pin 2,54mm
- 4x đầu nối quạt đực 3 chân (Molex 2510), ngoài ra, bạn có thể sử dụng đầu cắm pin thông thường nếu bạn muốn (tôi đã làm điều đó), nhưng sau đó bạn phải hết sức cẩn thận khi kết nối quạt và đầu nối cái của những quạt đó sẽ đính kèm kém an toàn
- Đầu nối Molex 4 chân, vỏ cái / chân đực (đầu nối nguồn AMP MATE-N-LOK 1-480424-0), tôi đã sử dụng một đầu nối là một phần của bộ chuyển đổi Molex đực sang 2x SATA cái đi kèm với một số MOBO cũ
- Cáp nhảy 2x với đầu nối cái 2,54mm (hoặc vỏ đầu nối + chân + dây), chúng sẽ được hàn vào dây đầu vào của máy đo tốc độ quạt (hoặc trực tiếp với đầu nối của chúng trên PCB)
- prefboard (50mm x 70mm, mảng lỗ tối thiểu 18 x 24), ngoài ra, bạn có thể tự khắc ván ốp đồng và khoan lỗ
- vài đoạn dây
- Băng cách điện
- băng lá nhôm (nếu bạn định gắn đầu nối vào tấm nền GPU, hãy xem Bước 5)
- giấy
Công cụ:
- máy cắt chéo
- cái kìm
- tuốc nơ vít cánh dẹt
- dao tiện ích
- đồng hồ vạn năng
- trạm hàn
- chất hàn
- Lập trình viên AVR (lập trình viên độc lập như USBasp hoặc bạn có thể sử dụng ArduinoISP
- breadboard và cáp jumper sẽ được sử dụng để lập trình vi điều khiển bên ngoài PCB (hoặc bất kỳ công cụ nào khác có thể đạt được mục tiêu này)
Bước 1: Tuyên bố từ chối trách nhiệm
Việc xây dựng thiết bị này yêu cầu sử dụng các công cụ nguy hiểm vừa phải và có thể gây hại hoặc hư hỏng tài sản. Một số bước bắt buộc có thể làm mất hiệu lực bảo hành phần cứng của bạn hoặc thậm chí làm hỏng phần cứng khi được thực hiện không đúng cách. Bạn tự chịu rủi ro khi xây dựng và sử dụng thiết bị được mô tả
Bước 2: Cách hoạt động của điều khiển quạt
Kênh A sử dụng hai đầu vào. Mỗi đầu vào Kênh A đó có một mức được liên kết với nó, hãy gọi các mức đó là A0 và A1. Theo mặc định, cả hai mức đó đều bằng 0. Cả hai đầu vào đều có giá trị RPM ngưỡng được liên kết với chúng (3 ngưỡng cho mỗi đầu vào). Khi đạt được ngưỡng đầu tiên, A0 hoặc A1 tăng lên 1, khi ngưỡng thứ hai tăng lên 2 và ngưỡng thứ ba đặt một trong các mức đầu vào thành 3. Sau đó A0 và A1 được kết hợp (chỉ đơn giản là được thêm vào với nhau và ngăn không đạt được giá trị cao hơn hơn 3), làm cho đầu ra chính Kênh A số cấp trong phạm vi 0-3. Con số này được sử dụng để điều khiển tốc độ quạt đầu ra, 0 có nghĩa là chúng được cung cấp bởi 7-8V (chu kỳ nhiệm vụ là 0%). Mức đầu ra cao hơn có nghĩa là quạt được cấp nguồn từ 12V đầy đủ cho 33%, 66% hoặc 100% của chu kỳ 100ms hoặc 33ms (tùy thuộc vào tần số đã chọn).
Kênh B chỉ có một đầu vào (B1, về mặt vật lý, nó được chia sẻ với Kênh A [chân PB1]). Có sáu cấp độ B1 có thể có (1-6), cấp độ mặc định là 1. Tồn tại năm giá trị ngưỡng có thể tăng B1. B1 được sử dụng làm đầu ra chính Cấp kênh B. Khi ở mức 1, quạt đầu ra 7-8V cấp nguồn cho 33% thời gian chu kỳ trong một chu kỳ, trong khi quạt còn lại là 66%, trong thời gian còn lại nguồn điện sẽ bị ngắt. Mức 2 có nghĩa là 66% của mỗi chu kỳ là 7-8V, phần còn lại 0V. Mức 3 có nghĩa là 7-8V được áp dụng liên tục. Mức 4-6 có nghĩa là quạt được cấp nguồn từ 12V đầy đủ trong 33%, 66% hoặc 100% chu kỳ, trong thời gian còn lại điện áp là 7-8V.
Tần số của điều khiển PWM này theo mặc định là 10Hz. Nó có thể được tăng lên 30Hz bằng cách đóng các chân jumper của J7.
Khi đạt đến ngưỡng cao hơn, mức A0, A1 và B1 tăng ngay lập tức. Tuy nhiên, khi RPM giảm, mức được giữ trong 200 mili giây và có thể chỉ giảm 1 mỗi 200 mili giây. Nó là để ngăn chặn sự thay đổi nhanh chóng của các mức đó khi RPM của quạt đầu vào rất gần với ngưỡng.
Bước 3: Hàn các thành phần điện tử
Hàn tất cả các thành phần điện tử vào prefboard (ngoại trừ Attiny13, sau này nó sẽ được đặt bên trong một ổ cắm). Sử dụng dây đồng (dây có đường kính 0,5 mm từ cáp UTP là hoàn hảo) để tạo kết nối điện giữa các thành phần. Nếu bạn gặp khó khăn khi đẩy các dây lớn ra khỏi đầu nối Molex (AMP MATE-N-LOK), bạn có thể khoan các lỗ lớn hơn cho chúng. Nếu không muốn sử dụng máy khoan, bạn luôn có thể vặn một vài con vít bên trong các lỗ nhỏ của tấm ván trước. Đảm bảo rằng dây dẫn không gây ra bất kỳ đoản mạch nào.
Nếu bạn thích tạo PCB của riêng mình, tôi cũng cung cấp các tệp.svg (kích thước bảng là 53.34x63.50mm) và.pdf (kích thước trang A4, bên trong kho lưu trữ.zip). Bảng đồng mạ một mặt là đủ, vì chỉ có một kết nối ở mặt trước (nó có thể được làm bằng dây), vì vậy các tệp cho mặt trước được cung cấp chính để có thể xác định kết nối này.
Tôi thực sự khuyên bạn nên che mặt sau của PCB bằng một số vật liệu cách điện để ngăn chặn bất kỳ sự cố ngắn mạch nào. Tôi đã sử dụng một vài lớp giấy thông thường được giữ vào các cạnh của PCB bằng một vài dải băng cách điện.
Bước 4: Lập trình vi điều khiển ATtiny
Chương trình đang chạy trên MCU được mã hóa cứng một số ngưỡng tốc độ RPM của quạt đầu vào. Các ngưỡng đó nằm ở đầu tệp fan_controller.c. Dòng chứa ngưỡng đầu tiên, chịu trách nhiệm tăng nhẹ mức đầu ra của Kênh A để đáp ứng với quạt input_0 vượt quá 450 RPM, trông giống như sau:
#define A0_SPEED_0 3 // 450 RPM
Nếu bạn muốn thay đổi giá trị RPM của ngưỡng, thì bạn cần thay thế số 3 bằng số khác. Tăng con số này lên 1 sẽ thay đổi ngưỡng 150 RPM.
Một điều khác mà bạn có thể muốn thay đổi là giảm độ trễ mức đầu ra. Độ trễ này ngăn chặn sự thay đổi nhanh chóng của mức đầu ra khi RPM của quạt đầu vào rất gần với ngưỡng. Có 3 dòng điều khiển điều này (vì Kênh A sử dụng 2 đầu vào và Kênh B sử dụng 1) và đầu tiên của chúng trông giống như sau:
if (channel_A0_lower_rpm_cycles> 2) {
Tăng số 2 sẽ làm tăng độ trễ này. Độ trễ được tính trong chu kỳ 100ms.
Để biên dịch mã nguồn và sau đó lập trình chip, bạn sẽ cần một số phần mềm. Trên bản phân phối Linux dựa trên Debian, nó có thể được cài đặt bằng cách thực thi lệnh sau:
sudo apt-get install avr-libc gcc-avr avrdude
Nếu bạn đang sử dụng Windows, bạn có thể thử cài đặt bộ WinAVR, bộ này cũng chứa phần mềm bắt buộc.
Để biên dịch mã nguồn, bạn cần thực hiện điều này:
avr-gcc -mmcu = attiny13 -Os -Wall fan_controller.c -o fan_controller.out -lm
Để tạo tệp.hex, bạn cần sao chép dòng này vào terminal:
avr-objcopy -O ihex -R.eeprom fan_controller.out fan_controller.hex
Lệnh này cho phép kiểm tra xem chương trình sẽ sử dụng bao nhiêu bộ nhớ (văn bản là Flash, dữ liệu là các biến sẽ được lưu trữ trong Flash và sau đó được sao chép vào RAM và bss là các biến được khởi tạo với giá trị 0 trong RAM):
avr-size fan_controller.out
Khi tệp.hex của bạn đã sẵn sàng, bạn cần chèn ATtiny13 vào breadboard và kết nối nó với bộ lập trình bằng cáp jumper. Tốt nhất là ngắt kết nối nguồn khỏi bộ lập trình khi bạn đang kết nối nó với MCU. Giữ các bit cầu chì mặc định (H: FF, L: 6A). Nếu lập trình viên của bạn là USBasp, lệnh này sẽ lập trình bộ nhớ flash của MCU:
avrdude -c usbasp -p t13 -B 8 -U flash: w: fan_controller.hex
-B 8 thay đổi tốc độ truyền giữa lập trình viên và MCU (bitclock). Bạn có thể cần phải thay đổi nó thành một giá trị cao hơn nếu bạn gặp sự cố khi kết nối với bộ vi điều khiển.
Khi MCU chúng tôi đã sẵn sàng, hãy đặt nó vào bên trong ổ cắm DIP 8. Để loại bỏ MCU khỏi breadboard, tôi thường nạy nó bằng tuốc nơ vít đầu phẳng.
Bước 5: Kết nối Quạt với thiết bị
Là một quạt Đầu vào 0 (quạt được kết nối với PB0), tôi đã chọn một trong các quạt thùng được cắm vào MOBO, tốc độ này thay đổi theo nhiệt độ CPU. Tôi đã tháo lớp cách điện khỏi phần dây của máy đo tốc độ quạt và hàn một đầu của cáp jumper vào nó. Đầu còn lại (có gắn đầu nối cái 2,54mm) sẽ được kết nối với bộ điều khiển quạt. Nếu cáp jumper quá ngắn, hãy kéo dài nó bằng cách hàn một cáp khác giữa các cáp đã đề cập trước đó. Sau đó dùng băng dính cách điện che tất cả các dây dẫn lộ ra ngoài.
Đầu vào 1 đọc tốc độ của quạt GPU (trong trường hợp của tôi thực sự có 3 trong số chúng, nhưng chỉ có một đầu nối quạt trên PCB của card đồ họa). Tôi đã hàn cáp jumper Đầu vào 1 trực tiếp vào một trong các đầu dẫn của đầu nối quạt GPU mini 4 chân nằm trên PCB. Vì dây dẫn này nằm giữa PCB và tấm nền, trước tiên tôi cách điện tấm nền bằng một mảnh giấy (đặc biệt là vì vật liệu của tấm nền khá dễ hàn) và sau đó gắn chắc chắn đầu nối nữ của cáp vào mặt kia của tấm nền bằng cách sử dụng băng nhôm. Sau đó, (các) quạt GPU có thể được kết nối với chân PB1 bằng cách sử dụng một cáp jumper (mở rộng) khác. Nếu bạn không muốn hàn bất cứ thứ gì trên PCB cạc đồ họa của mình, bạn có thể gắn cáp jumper vào dây của quạt hoặc tạo bộ chuyển đổi sẽ được đặt giữa (các) quạt và đầu nối trên PCB, quyết định là của bạn.
Quạt truyền tốc độ dòng điện của nó qua dây đo tốc độ bằng cách kết nối dây này với đất thông qua bộ thoát / cực thu hở hai lần mỗi vòng quay (cánh quạt của quạt thường có 4 cực [NSNS] được phát hiện bởi cảm biến Hall, đầu ra của quạt thấp khi trên loại cực được phát hiện). Ở phía bên kia, dây này thường được kéo đến mức điện áp 3,3V. Nếu bạn không chắc mình có đúng dây hay không, bạn có thể sử dụng máy hiện sóng hoặc xây dựng một trong các mạch phát hiện được vẽ trên hình cuối cùng trong bước này. Đầu tiên chúng cho phép bạn kiểm tra điện áp tối đa xuất hiện ở vị trí đo được, thứ hai để kiểm tra xem các xung tần số thấp có xuất hiện ở đó hay không.
3.3V nên được các chân đầu vào của ATtiny đọc là trạng thái CAO, nhưng nếu bạn gặp vấn đề với điều này, bạn có thể cố gắng giảm điện áp cấp nguồn cho MCU (nó cũng sẽ làm tăng điện trở của MOSFET!). Tôi không gặp vấn đề gì, tuy nhiên, tôi quyết định nên đưa suy nghĩ này vào đây.
Khi quạt đầu vào đã sẵn sàng, bạn có thể đặt bộ điều khiển quạt bên trong vỏ máy tính của mình, ở vị trí bạn chọn. Tôi gắn nó vào một bên của hai trong số các khoang ổ đĩa 5,25”trống của mình, bằng cách đẩy nó vào giữa các bộ phận kim loại của khoang, đặt một số giấy phía sau và khóa nó lại bằng cách sử dụng dây buộc zip đẩy qua một trong các lỗ lớn trong tấm ván trước và một số lỗ khác trong khoang 5,25”. Đảm bảo rằng không có bộ phận kim loại nào của vỏ PC có thể chạm vào bất kỳ dây dẫn nào của bộ điều khiển quạt.
Bây giờ bạn có thể kết nối quạt đầu ra 3 chân với bộ điều khiển. Quạt đầu ra được kết nối với Kênh A sẽ được liên kết với cả quạt CPU và GPU và điện áp tối thiểu cung cấp năng lượng cho chúng sẽ là khoảng 7-8V. Quạt được cắm vào các đầu nối đầu ra của Kênh B sẽ chỉ được điều khiển bởi (các) quạt làm mát GPU và điện áp của chúng có thể giảm xuống 0V (nhưng chỉ trong 66ms mỗi giây chu kỳ 100ms ở mức ổ đĩa đầu ra thấp nhất). Quạt không được vẽ nhiều hơn 1A trên mỗi kênh đầu ra.
Bước 6: Các thay đổi khác mà tôi đã thực hiện với PC của mình
Kênh A điều khiển hai người hâm mộ nằm ở phía trên cùng của hộp đựng của tôi. Chúng là cùng một kiểu máy và chúng được cung cấp bởi cùng một điện áp, điều này làm cho chúng quay với tốc độ rất giống nhau. Một số nhịp có thể nghe được (kiểu giao thoa giữa hai âm thanh có tần số hơi khác nhau) xuất hiện là kết quả của điều đó. Để khắc phục điều này, tôi đã lắp đặt 2 đi-ốt (một đi-ốt thông thường và một đi-ốt Schottky) mắc nối tiếp với một trong các quạt. Điều này làm giảm điện áp và tốc độ của quạt, khiến nhịp đập biến mất.
Một thay đổi khác, có liên quan đến một trong những thay đổi đối với những chiếc quạt mà tôi đã thực hiện, là lắp đặt một chiếc quạt trên tường bằng giấy nằm ở phía trước nhiều hơn. Mục đích của nó là ngăn chiếc quạt này hút không khí chưa đi qua bất kỳ tấm tản nhiệt nào. Tôi cũng đã thử làm các bức tường bằng giấy khác để ngăn không khí thải của GPU bị hút vào bộ làm mát CPU. Chúng thực sự làm giảm nhiệt độ CPU, nhưng với chi phí GPU nóng lên nhiều hơn, vì vậy cuối cùng tôi đã loại bỏ chúng.
Một sửa đổi bất thường khác mà tôi đã thực hiện là loại bỏ bộ lọc bụi ở ống xả của hai quạt trên cùng (hầu hết thời gian không khí được đẩy ra khỏi thùng máy và khi PC của tôi tắt, ngăn kéo nằm phía trên thùng máy PC một chút sẽ che chắn nó khỏi bụi). Tôi cũng đã lắp quạt 92mm ở phía trước của hai khoang ổ đĩa trống 5,25”(bộ điều khiển quạt nằm ngay phía sau nó). Quạt này không được giữ bởi bất kỳ ốc vít nào, chỉ vừa khít giữa quạt 120mm ở dưới nó và ổ đĩa quang ở trên (bề mặt của cả hai đều được phủ băng cách nhiệt để giảm rung).