[Mở nguồn] Nguồn xung flyback 24V3A (dựa trên UC3842, bao gồm quá trình tính toán mạch và thông số biến áp)

Mở nguồn một bộ nguồn chuyển mạch kiểu flyback (Flyback Power Supply) đầu vào điện áp rộng, đầu ra 24V3A, công suất 72W, hiệu suất cao nhất đạt 87,4%, dựa trên chip UC3842, chỉnh lưu đồng bộ (UCC24612-1DB), bao gồm quá trình tính toán thông số mạch và biến áp, sơ đồ nguyên lý, PCB, mô hình mô phỏng PSIM, tài liệu đặc tả chế tạo biến áp, v.v.


Lời mở đầu

:round_pushpin: Đây là lần đầu tiên tôi thiết kế bộ nguồn flyback, nếu có điểm nào cần cải thiện hay sai sót mong các tiền bối chỉ giáo.

:rocket: Nhân tiện tìm việc online, nếu các anh/chị ở Quảng Châu/Phật Sơn/Thâm Quyến đang tuyển nhân sự thì có thể xem xét ứng viên là mình. Các bạn có thể ghé trang chủ của mình trên nền tảng mở OSHWHUB để xem các dự án đã chia sẻ mã nguồn: https://oshwhub.com/zeruns/works

Video minh họa dự án: https://www.bilibili.com/video/BV1ES4GzQE19/
Liên kết chia sẻ mã nguồn trên OSHWHUB: https://oshwhub.com/zeruns/24v3a-Flyback-Power-Supply-uc384x
Nhóm trao đổi kỹ thuật điện tử/vi điều khiển trên QQ: 2169025065
Địa chỉ tải tài liệu nằm ở cuối bài viết!

Cảnh báo: Việc tự làm bộ nguồn chuyển mạch tiềm ẩn rủi ro cao, tôi không đảm bảo tính chính xác của bất kỳ mạch điện, thông số hay công thức nào trong bản thiết kế này. Việc sao chép hoặc tham khảo sản phẩm này phải do người thực hiện tự chịu mọi rủi ro có thể phát sinh.

Dự kiến chi phí trung bình cho lô nhỏ (20 bộ) khoảng 25 tệ (không bao gồm PCB và biến áp, tính theo giá linh kiện trên Lichuang Mall), cộng thêm PCB và biến áp thì tổng chi phí không vượt quá 50 tệ.


Thông số thiết kế

Thông số Giá trị
Điện áp đầu vào định mức V_{acnom} 220VAC
Điện áp đầu vào thấp nhất V_{acmin} 85VAC
Điện áp đầu vào cao nhất V_{acmax} 265VAC
Tần số lưới điện f_L 50Hz
Điện áp đầu ra V_{out} 24V
Dòng điện đầu ra I_{out} 3A
Tần số hoạt động f_s 150kHz
Hiệu suất thiết kế η 85%

Kích thước PCB: 100x55mm
Loại PCB: Hai lớp, mặt trên hàn linh kiện dạng cắm, mặt dưới hàn dán


Hình ảnh thực tế

Hình dưới là phiên bản thứ hai:

Hình dưới là phiên bản đầu tiên, có một số vấn đề, dễ bị nổ MOSFET, phiên bản thứ hai (hình trên) đã khắc phục:

Biến áp tần số cao:


Kiểm tra hoạt động và đo đạc thông số

Kiểm tra cấp điện lần đầu

Khi kiểm tra lần đầu nên nối tiếp một bóng đèn để tránh trường hợp ngắn mạch gây hỏng hàng loạt linh kiện. Thực tế kiểm tra hoạt động bình thường, điện áp đầu ra là 24,1V (trong hình dưới đang mang tải 0,9A).

Tác dụng của việc nối tiếp bóng đèn: Tận dụng tác dụng hạn dòng và bảo vệ của bóng đèn. Khi hoạt động bình thường, điện trở bóng đèn nhỏ, điện áp rơi thấp, bóng chỉ sáng mờ hoặc không sáng, không ảnh hưởng đến kiểm tra nguồn; nếu bên trong nguồn xảy ra ngắn mạch, dòng điện trong mạch tăng mạnh, bóng đèn do có điện trở cố định sẽ chịu phần lớn điện áp, hạn chế dòng quá lớn, tránh làm cháy linh kiện do dòng lớn, từ đó có tác dụng bảo vệ.

Ổ cắm bảo vệ sửa chữa nguồn chuyển mạch: https://s.click.taobao.com/OiMyz3q

Bạn cũng có thể dùng điện áp một chiều để kiểm tra. Tôi đã thử nghiệm với điện áp đầu vào một chiều 60V, thiết bị vẫn khởi động và đầu ra 24V bình thường. Tuy nhiên, điện trở khởi động 200kΩ (R24+R16) cần thay bằng 100kΩ (nối tắt một trong hai điện trở), vì điện trở ban đầu quá lớn khiến điện áp thấp không thể khởi động.


Kiểm tra hiệu suất chuyển đổi

Thiết bị sử dụng:

Dữ liệu thực tế đo được:

Điện áp vào (V) Dòng điện vào (A) Công suất biểu kiến vào (W) Công suất hữu công vào (W) Điện áp ra (V) Dòng điện ra (A) Công suất ra (W) Hiệu suất (%) Hệ số công suất
219.85 0.029 6.38 2.10 24.13 0.00 0.33
219.83 0.251 55.18 28.69 24.10 1.00 24.10 83.99 0.52
219.59 0.438 96.18 55.78 24.07 2.00 48.14 86.30 0.58
219.65 0.637 139.92 82.55 24.05 3.00 72.15 87.40 0.59
111.55 0.036 4.02 1.81 24.13 0.00 0.45
111.13 0.406 45.12 28.88 24.10 1.00 24.10 83.46 0.64
110.89 0.753 83.50 56.78 24.06 2.00 48.12 84.75 0.68
110.58 1.097 121.31 84.91 24.00 3.00 72.00 84.79 0.70

Hiệu suất chuyển đổi cao nhất đo được là 87,4%, công suất tiêu thụ không tải thấp nhất là 1,81W, mức này hơi cao một chút.

Dữ liệu trên được đo khi dùng chỉnh lưu bằng diode chứ chưa dùng chỉnh lưu đồng bộ, bởi vì MOSFET chỉnh lưu đồng bộ mà tôi chọn có điện trở trong hơi lớn, nên hiệu suất đo được lại thấp hơn. Bạn có thể tự thay MOSFET tốt hơn để thử nghiệm, yêu cầu điện áp chịu đựng phải từ 200V trở lên (nếu mắc thêm điện trở 20Ω và tụ 2,2nF vào hai đầu diode R9 và C8 thì có thể cân nhắc loại chịu 150V).


Kiểm tra gợn điện áp đầu ra

Dao động ký dùng loại RIGOL DHO914S: https://blog.zeruns.com/archives/764.html

Khi đo, đầu dò dao động ký kẹp vào dây đầu ra dài khoảng 15cm, không dùng vòng nối đất, cũng không nối trực tiếp vào tụ lọc đầu ra, do đó kết quả đo gợn điện áp có thể cao hơn thực tế.

Gợn điện áp khi không tải: Biên độ đỉnh-đỉnh khoảng 730mV, tần số gợn khoảng 138,96kHz, gần với tần số chuyển mạch.

Gợn điện áp khi mang tải 3A: Biên độ đỉnh-đỉnh khoảng 562,08mV.


Dạng sóng MOSFET

Điện áp xoay chiều đầu vào 220V, đầu ra 24V mang tải 1A, dạng sóng điện áp cực cổng-nguồn (GS) và máng-nguồn (DS) của MOSFET phía sơ cấp. Màu vàng là điện áp giữa cổng và nguồn, màu xanh là điện áp giữa máng và nguồn.

Từ hình vẽ có thể thấy điện áp đỉnh phía máng khi MOSFET ngắt khoảng 440V (do nối tiếp bóng đèn, quên chuyển công tắc sang chế độ nối thẳng, nên điện áp đầu vào thực tế chỉ khoảng hơn trăm vôn, dẫn đến điện áp đo được thấp hơn).

Phóng to dạng sóng điện áp cực cổng:


Dạng sóng diode chỉnh lưu đầu ra

Điện áp một chiều đầu vào 60V, đầu ra 24V không tải, dạng sóng điện áp hai đầu diode chỉnh lưu như hình dưới, điện áp đỉnh khoảng 56V. (Sau khi hàn thêm điện trở 20Ω và tụ 2,2nF vào hai đầu diode R9 và C8, điện áp đỉnh giảm xuống còn 42V.)

Điện áp một chiều đầu vào 60V, đầu ra 24V mang tải 1A, dạng sóng điện áp hai đầu diode chỉnh lưu như hình dưới, điện áp đỉnh khoảng 190V. (Sau khi hàn thêm điện trở 20Ω và tụ 2,2nF vào hai đầu diode R9 và C8, điện áp đỉnh giảm xuống còn 81V.)


Dạng sóng điện áp đầu ra khi khởi động không tải

Điện áp một chiều đầu vào 60V, đầu ra 24V không tải, dạng sóng điện áp đầu ra, thời gian điện áp tăng từ 0V lên 24V là 7 mili giây.


Tình trạng nhiệt độ

Ảnh nhiệt mặt dưới bộ nguồn khi không tải: Điểm nóng nhất là điện trở khởi động, nhiệt độ khoảng 60°C (nhiệt độ môi trường khoảng 25°C), MOSFET phía sơ cấp khoảng 48°C.

Ảnh nhiệt mặt dưới bộ nguồn khi mang tải 3A: Điểm nóng nhất nằm ở MOSFET phía sơ cấp hoặc điện trở trong mạch hấp thụ RCD, nhiệt độ trên 88°C (nhiệt độ môi trường khoảng 26°C), diode chỉnh lưu phía thứ cấp cũng phải trên 60°C.

Nhiệt độ đầy tải khá cao, nếu muốn hoạt động lâu dài ở tải đầy đủ thì MOSFET phía sơ cấp cần gắn tản nhiệt hoặc đổ keo dẫn nhiệt ra vỏ!


Địa chỉ mua linh kiện- Mẫu băng dán điện trở, tụ điện: https://s.click.taobao.com/ngH2RGq

Đề xuất mua linh kiện tại cửa hàng LCSC (Lichuang): https://activity.szlcsc.com/invite/D03E5B9CEAAE70A4.html

Trong liên kết mã nguồn mở của Lichuang, nhấn vào bảng BOM để đặt hàng trực tiếp trên trang web LCSC, các linh kiện cần dùng sẽ được thêm một lần vào giỏ hàng.


Sơ đồ nguyên lý


PCB

Lớp trên

Lớp dưới


Liên kết tải tài liệu

Liên kết bên dưới chứa các tài liệu sau: tệp dự án EDA của LCSC, sơ đồ nguyên lý dạng PDF, tệp Gerber sản xuất PCB, công cụ thiết kế nguồn chuyển mạch SMPSKit, sổ tính toán biến áp flyback (Mathcad), hình ảnh in silkscreen, thông số kỹ thuật chế tạo biến áp, datasheet của các chip, mô hình mô phỏng PSIM, mã Matlab vẽ biểu đồ BODE, và một số tài liệu tham khảo khác. (Một số tài liệu được thu thập từ Internet.)

Nếu bạn thấy tài liệu hữu ích, hãy truy cập vào liên kết 123 Cloud Disk ở trên để ủng hộ tôi. Nếu là bài viết trên WeChat (tài khoản công chúng: zeruns-gzh), bạn cũng có thể nhấn “Thích tác giả” ở cuối bài viết để quyên góp. Xin cảm ơn.


Gợi ý dự án mã nguồn mở


Bài viết đề xuất đọc thêm

Phiên bản tiếng Anh của bài viết: https://blog.zeruns.top/archives/74.html

2 Lượt thích

Wow, đây là một dự án mã nguồn mở khá tốt, tài liệu rất đầy đủ :+1:

Quá mạnh, phải ủng hộ!

Xin chào bạn blogger, tôi muốn hỏi phần mô phỏng bạn có thực hiện bù vòng không, và làm thế nào để suy ra phần hàm truyền đạt?

Không, tôi không biết nhiều về phần bù vòng lặp.

Chào bạn, cảm ơn bạn đã quan tâm đến dự án của mình.

Về phần mạch mà bạn khoanh vùng màu xanh (R19, R21, R17, C12), đây là mạch bù (compensation network) cho vòng phản hồi điện áp trong bộ nguồn flyback hoặc buck converter. Các giá trị này được tính toán nhằm đảm bảo hệ thống ổn định, đáp ứng động tốt và giảm thiểu dao động. Việc thiết kế mạch bù thường dựa trên việc phân tích điểm cực (poles) và điểm không (zeros) của hệ thống, đặc biệt là tần số cắt mong muốn và biên độ dự trữ pha (phase margin).

Các bước cơ bản để tính toán gồm:

  1. Xác định hàm truyền đạt vòng hở của hệ thống (open-loop transfer function).
  2. Xác định tần số cắt mục tiêu (thường chọn khoảng 1/5 đến 1/3 tần số switching).
  3. Đặt một zero của mạch bù vào tần số pole do tải RL tạo ra để bù trừ.
  4. Đặt một pole tại tần số cao hơn để lọc nhiễu.
  5. Tính toán các giá trị R và C tương ứng.

Tuy nhiên, như bạn đã nhận xét đúng, khi thay đổi điện trở cảm biến dòng (R8 – current sense resistor), sẽ ảnh hưởng đến toàn bộ đặc tính phản hồi vì nó liên quan trực tiếp đến ngưỡng bảo vệ quá dòng và độ lợi của tín hiệu dòng. Do đó, khi R8 thay đổi, cần điều chỉnh lại mạch bù (R19, R21, R17, C12) để đảm bảo hệ thống vẫn ổn định.

Về công thức bạn dùng:

1V / (Ipk × 1.2)

Là công thức phổ biến để chọn điện trở cảm biến sao cho điện áp rơi trên R8 ở dòng đỉnh (Ipk) đạt khoảng 0.833V (vì 1V / 1.2 ≈ 0.833V), nhằm tránh bão hòa IC điều khiển và có dư lượng an toàn. Với Ipk = 2.644A:

R8 = 1V / (2.644A × 1.2) ≈ 1 / 3.1728 ≈ 0.315Ω

Tuy nhiên, trong thực tế, mình có thể đã chọn R8 = 0.2Ω vì một số lý do sau:

  • Dòng đỉnh thực tế có thể thấp hơn do thiết kế dự phòng.
  • IC điều khiển có thể hoạt động tốt với ngưỡng điện áp thấp hơn (ví dụ 0.5V thay vì 1V).
  • Cần tối ưu hiệu suất: điện trở nhỏ → tổn hao công suất nhỏ (P = I²R).
  • Có thể đã hiệu chỉnh lại toàn bộ mạch bù và bảo vệ để phù hợp với R8 mới.

Do đó, việc chọn R8 = 0.2Ω có thể là kết quả của mô phỏng, thử nghiệm thực tế và cân nhắc giữa hiệu suất, độ chính xác và độ ổn định.

Tóm lại:

  • Mạch bù (R19, R21, R17, C12) được thiết kế phối hợp với toàn bộ hệ thống, bao gồm cả R8.
  • Khi thay đổi R8, cần tái tính toán hoặc tinh chỉnh lại mạch bù thông qua mô phỏng hoặc thử nghiệm.
  • Giá trị R8 cuối cùng phụ thuộc vào nhiều yếu tố: hiệu suất, ngưỡng IC, độ ổn định, và yêu cầu thiết kế cụ thể.

Bạn có thể dùng phần mềm như LTspice hoặc SIMetrix để mô phỏng vòng kín và điều chỉnh các thông số này một cách chính xác hơn.

Chúc bạn thành công! Nếu cần thêm tài liệu tham khảo, mình có thể gợi ý một số app note từ TI, ON Semi hoặc Analog Devices về thiết kế bù cho SMPS.

Cảm ơn bạn!

Xin chào! Rất vui khi thấy bạn nghiên cứu dự án mã nguồn mở kỹ lưỡng đến vậy, thậm chí đã chạy mô phỏng và quan sát rất tinh tế, trực tiếp nắm bắt được điểm khó cốt lõi của điều khiển chế độ dòng điện (Current Mode Control).

Là một kỹ sư lâu năm trong lĩnh vực nguồn, tôi sẽ lần lượt giải đáp các thắc mắc của bạn. Chúng ta hãy kết hợp lý thuyết tính toán với thực tiễn kỹ thuật:

1. Về điện trở cảm biến R8 (0.32Ω so với 0.2Ω)

Công thức tính lý thuyết của bạn R_{sense} = 1V / (I_{pk} \\times 1.2) hoàn toàn chính xác. Đây là thuật toán tiêu chuẩn được nêu trong sách giáo khoa và datasheet các IC, dành sẵn biên độ an toàn 20%. Nhưng tại sao trong thực tế tôi lại dùng 0.2Ω?

Lý do chủ yếu xuất phát từ các cân nhắc kỹ thuật sau:

  • Tổn hao công suất và nhiệt sinh ra (ưu tiên hiệu suất): R8 được nối tiếp trong mạch sơ cấp, dòng điện hiệu dụng khá lớn. Nếu dùng 0.32Ω (hoặc giá trị tiêu chuẩn gần đó là 0.33Ω), tổn hao I^2R sẽ cao gần gấp đôi so với dùng 0.2Ω. Trong các bộ chuyển đổi nhỏ gọn, tản nhiệt tự nhiên thì điều này ảnh hưởng rõ rệt đến nhiệt độ tăng.
  • Xử lý xung động quá độ và khởi động: Dòng đỉnh I_{pk} = 2.644A mà bạn tính được là giá trị ở trạng thái ổn định, tải đầy, điện áp đầu vào thấp nhất. Tuy nhiên, trong quá trình khởi động lạnh (sạc cho tụ đầu ra có dung lượng lớn) hoặc gặp tải thay đổi đột ngột, chúng ta cần nguồn có thể cung cấp dòng đỉnh lớn hơn trong thời gian ngắn. Dùng 0.2Ω nghĩa là giới hạn dòng cứng theo từng chu kỳ được nới rộng lên 1V / 0.2\\Omega = 5A. Điều kiện là: Tôi đã kiểm tra kỹ rằng biến áp của tôi không bị bão hòa từ ở dòng đỉnh 5A.
  • Chuẩn hóa linh kiện: Điện trở 0.2Ω (200mΩ) vỏ 1206 là loại rất phổ biến và chi phí thấp.
  • Tóm lại: Về mặt lý thuyết, dùng 0.32Ω bảo vệ chặt chẽ nhất, nhưng trong thực tế, miễn là biến áp không bão hòa, chúng ta thường giảm R_{sense} một cách hợp lý để đạt hiệu suất tốt hơn và dư thừa động học.

2. Tại sao mạng bù (R17/C12, v.v.) lại liên động với R8?

Phát hiện mô phỏng của bạn rất chính xác: “Thay đổi R8, các thông số phía trên cũng phải điều chỉnh theo”.

Lý do là vì UC3842 là vi mạch điều khiển chế độ dòng điện đỉnh (peak current mode). Trong điều khiển chế độ dòng, hàm truyền đạt giữa tín hiệu điều khiển và đầu ra của khối công suất (Plant) có độ lợi DC tỷ lệ nghịch với điện trở cảm biến dòng R_{sense} (chính là R8 của bạn).
Nói đơn giản, khi R8 giảm, tương đương với việc bạn đã thay đổi độ lợi vòng dòng điện, dẫn đến tần số cắt và biên độ pha của toàn hệ thống vòng kín đều thay đổi. Do đó, mạng bù vòng điện áp trước đó (R17, C12…) sẽ không còn phù hợp, buộc phải điều chỉnh lại; nếu không, nguồn có thể bị dao động (ví dụ như dao động tần số phụ hay tiếng rít âm tần).

3. Các thông số trong khung màu xanh lấy từ đâu?

Bạn hỏi về cách tính các giá trị R19, R21, R17, C12. Xin nói thật, trong thực tế làm sản phẩm, chỉ tính toán bằng tay thì rất khó đạt chính xác ngay từ đầu.

Bởi vì mạch này bao gồm sự phối hợp giữa: bù TL431 + trễ truyền dẫn và tỷ lệ truyền dòng (CTR) của optocoupler (PC817) + bù bên trong bộ khuếch đại sai số của UC3842.

Quy trình phát triển thực tế của tôi (cũng là cách làm phổ biến trong ngành) như sau:

  1. Tính giá trị ban đầu:
    • R13, R14 (điện trở phân áp) được tính theo điện áp đầu ra 24V.
    • R19 cấp dòng cho LED optocoupler, R21 cấp dòng phân cực cho TL431 (thường đảm bảo dòng “chết” khoảng 1mA cho TL431).
    • R17 và C12 ở chân UC3842 tạo thành mạng bù kiểu Type-II (tạo một điểm cực và một điểm zero). Giá trị ban đầu tôi chọn theo kinh nghiệm một cặp RC hợp lý (ví dụ R17 dùng 10k~20k, C12 dùng 1nF~10nF).
  2. Xác minh bằng mô phỏng (giống như bạn đang làm): Đưa các giá trị ban đầu vào Simplis hoặc LTspice để chạy AC Sweep (quét tần số xoay chiều), xem đồ thị Bode (đồ thị波特), mục tiêu là đặt tần số cắt vào khoảng 1/10 đến 1/5 tần số đóng ngắt, đồng thời đảm bảo biên độ pha (Phase Margin) lớn hơn 45 độ.
  3. Thử nghiệm thực tế trên mạch & tinh chỉnh (bước quan trọng nhất): Dù mô phỏng hoàn hảo đến đâu, CTR của optocoupler phân tán, điện cảm rò của biến áp, điện dung ký sinh trên PCB đều ảnh hưởng đến vòng phản hồi. Sau khi in mạch xong, tôi sẽ dùng tải điện tử tạo đáp ứng quá độ (Load Transient) (ví dụ tải thay đổi đột ngột từ 10% lên 90%), dùng oscilloscope đo dạng sóng điện áp đầu ra.
    • Nếu dạng sóng điện áp bị vượt điều chỉnh (overshoot), dao động vài lần mới ổn định, chứng tỏ biên độ pha chưa đủ, tôi sẽ điều chỉnh C12 hoặc R17.
    • Nếu điện áp phục hồi quá chậm, chứng tỏ băng thông quá hẹp, cũng cần tinh chỉnh các thông số RC.

Gợi ý dành cho bạn:
Vì bạn đã thiết lập mô phỏng rồi, hãy thử dùng tải điện tử tạo một bước nhảy dòng điện (ví dụ từ 0.5A lên 3A), quan sát dạng sóng VOUT. Sau đó thử thay đổi C12 (ví dụ từ 10nF sang 1nF hoặc 47nF), xem sự khác biệt về mức vượt điều chỉnh và thời gian phục hồi. Như vậy bạn sẽ có cảm nhận trực quan cực kỳ rõ ràng về tác dụng của các thông số này!