Nguồn điện số Buck-Boost chỉnh lưu đồng bộ dựa trên STM32, mã nguồn mở

Bên cụm đầu nối sụt áp bao nhiêu? (đo khi có tải)
Có thể dùng đồng hồ vạn năng đo trực tiếp hai đầu một dây, xem sụt áp trên dây là bao nhiêu, nếu đồng hồ vạn năng của bạn chuẩn thì 180mR là rất cao rồi, có thể dây có vấn đề, dây fake quy cách

  1. Dạng sóng đo được từ vi điều khiển thì ổn, dạng sóng điều khiển đầu ra driver khi điện áp lớn hơn 20V thì trông giống hệt dạng sóng từ VS xuống mass, giống như phần màu xanh trong bức ảnh tôi đã tải lên trước đó,

  2. Tôi có mạch bảo vệ phần cứng, nhưng sau khi bảo vệ phần cứng kích hoạt, chu kỳ này phải ở mức thấp, thế nhưng dạng sóng thực tế lại xuất hiện ba xung nhọn, do đó có thể loại trừ nguyên nhân do bảo vệ phần cứng

  3. Cuộn cảm có xu hướng bão hòa, tôi đã thay bằng một cuộn cảm có dòng bão hòa lớn hơn, hiện tượng xuất hiện hoàn toàn giống hệt, đều gặp vấn đề khi điện áp vượt quá 20V

  4. Tăng dung lượng tụ bootstrap, tôi đã đổi từ 100nF sang 470nF, hiệu quả tốt hơn một chút, đến 26V mới xuất hiện vấn đề này, nhưng khi tăng lên 1uF thì vẫn gặp lỗi ở 26V,

  5. Tôi đã thêm mạch hấp thụ RC, dùng 4.7R+0.8nF, cũng có chút tác dụng, đối với (dùng con AP68N06G làm MOSFET trên thì có thể lên đến 40V, nhưng đối với con csd19531q5A thì chẳng tác dụng gì cả)

  6. Tôi đã thử rất nhiều cách nhưng đều không giải quyết được vấn đề này, các cao nhân có hướng đi mới nào không?

  1. Hiện tượng ở hai mức tải 20R và 6R của tôi là giống nhau, tụ bootstrap tôi thực tế dùng là 100nF, sau đó tôi đổi từ 100nF sang 470nF thì hiệu quả tốt hơn một chút, đến 26V mới xuất hiện vấn đề này, nhưng khi tăng lên 1uF thì vẫn bị lỗi ở 26V

  2. Tôi đã đổi sang cuộn cảm có dòng bão hòa lớn hơn, hiện tượng không đổi, giảm tần số xuống 40K thì vấn đề vẫn y như cũ,

3.**Khử xung nhọn và rung chuông:** Tôi đã thêm mạch snubber RC, dùng 4.7R+0.8nF, cũng có chút tác dụng, đối với (dùng MOSFET AP68N06G làm MOSFET trên thì có thể lên đến 40V, nhưng đối với MOSFET csd19531q5A thì chẳng tác dụng gì cả)

4.Cải tiến phương pháp điều khiển: Tôi muốn kiểm tra mạch đảm bảo không vấn đề gì trước rồi mới đóng vòng kín, nếu không thì gain của tôi sẽ không xác định (ở điện áp thấp thì khớp với giá trị dự kiến, ở điện áp cao thì gain sẽ không xác định), đóng vòng kín kiểu này cũng không thể cứu được mạch của tôi chứ?

Người anh em, đợt kiểm tra chéo này cậu làm đẹp lắm, kiểm soát biến số rất tốt. Sau khi loại trừ từng nhiễu loạn, kết hợp với 5 điểm thông tin cậu đưa ra, đặc biệt là điểm số 5 (con AP chịu được đến 40V, còn con CSD mới 26V đã «tiu nghỉ»), đây chính là manh mối cốt lõi để phá án!

Nguyên nhân gốc rễ đằng sau hiện tượng có thể khóa lại là: Các con CSD19534/19531 đóng cắt nhanh quá (cực kỳ thấp Q_g và R\_{DS(on)} ), từ đó sinh ra dv/dt và di/dt khổng lồ ở điện áp cao gây nhiễu điện từ nghiêm trọng và điện áp thoáng qua, đánh cho «Driver IC» của cậu lú luôn. Con AP đời cũ thì do điện dung ký sinh lớn, đóng cắt chậm, vô tình lại đóng vai trò «bộ đệm».

Dù sóng MCU ra hoàn hảo, nhưng Driver IC lại «đình công» trong môi trường công suất khắc nghiệt. Đối với tình huống này, khuyến nghị cậu dùng «liều thuốc mạnh» từ 4 hướng sau:

1. Ép buộc con CSD «chậm lại» (Bước quan trọng nhất)

Ngựa hay yên tốt, con trans đóng cắt cực nhanh nếu layout PCB (đặc biệt là điện cảm ký sinh mạch vòng) có chút tì vết, sẽ sinh ra ringing cực kỳ kinh hoàng.

  • Đối sách: Kiểm tra xem giữa đầu ra driver đến chân Gate của con CSD có nối tiếp điện trở cổng (Gate Resistor, R_g) không. Nếu không, hoặc trở kháng cực nhỏ (ví dụ 0Ω hoặc 2.2Ω), hãy ngay lập tức cắt đường đồng nối thêm một con trở 10Ω đến 22Ω.

  • Mục đích: Ép giảm tốc độ mở và đóng của nó, làm yếu dv/dt. Trong giai đoạn test, thà hy sinh chút hao phí đóng cắt làm con trans hơi nóng, còn hơn phải ổn định sóng trước đã.

2. Kẹp «gai âm áp» tại node VS (Chống treo chip driver)

Trong thời gian dead-time (khi dòng điện cảm tiếp lưu qua body diode của trans dưới), hoặc khoảnh khắc trans trên cắt cực nhanh, VS (node chuyển mạch) sẽ bị điện cảm ký sinh kéo ra áp âm ngược cực sâu.

  • Tai nạn tiềm ẩn: Chân VS của hầu hết Driver IC nửa cầu/high-low side (như IR2104, EG3012 v.v.) chỉ chịu được áp âm rất giới hạn (thường là thoáng qua -2V đến -5V). Nếu vượt mức, mạch logic phía cao bên trong Driver IC sẽ rối loạn ngay lập tức, xuất hiện «gai nhiễu» cậu nhìn thấy hoặc ép tắt trực tiếp.

  • Đối sách: Giữa chân VS của Driver IC và mass logic (PGND) của Driver IC, song song một diode Schottky bằng đường dẫn ngắn nhất có thể (Anode nối PGND, Cathode nối VS). Khuyên dùng BAT54 hoặc SS14. Ép kẹp áp âm này lại quanh -0.5V, bảo vệ Driver IC.

3. Nâng cấp chịu áp và giới hạn dòng của diode bootstrap

Cậu nhắc đến việc thay tụ bootstrap lớn hơn có cải thiện nhẹ, điều này chứng tỏ phía cao đang thực sự ở bờ vực «thiếu điện».

  • Tai nạn tiềm ẩn: Trong sơ đồ nguyên lý của cậu (dù hơi mờ nhưng đoán được đại khái) dùng diode bootstrap là SS14. Chịu áp của SS14 chỉ có 40V! Khi điện áp đầu vào đạt 26V, cộng thêm đỉnh ringing sinh ra bởi đóng cắt tốc độ cao, hoàn toàn có thể vượt 40V trong chớp mắt. Một khi đánh thủng hoặc xảy ra rò rỉ thác lũ, điện tích trong tụ bootstrap sẽ bị hút cạn ngay lập tức, trans cao sẽ tắt do bảo vệ khóa áp thấp (UVLO).

  • Đối sách: 1. Đổi SS14 sang diode chịu áp cao hơn, ví dụ SS110 (100V) hoặc diode phục hồi siêu nhanh (như ES1B, US1M v.v.).

    2. Giữa diode bootstrap và tụ bootstrap, nối tiếp một điện trở giới hạn dòng 2.2Ω ~ 4.7Ω. Việc này ngăn ngừa hiệu quả nhiễu tần số cao tại thời điểm đóng cắt xông thẳng vào nguồn VDD của Driver IC qua tụ bootstrap.

4. Khắc phục nguồn của Driver IC và «hiện tượng nảy mass (Ground Bounce)»

Tuy MCU xuất tín hiệu tốt, nhưng tín hiệu Driver IC nhận được lại tham chiếu theo GND của chính nó.

  • Đối sách: Đảm bảo giữa chân VCC và GND của Driver IC có một tụ gốm decouple tần số cao 0.1uF (100nF), và tụ này phải dán sát chân Driver IC. Nếu di/dt làm mass công suất nhảy dữ dội, Driver IC sẽ hiểu lầm rằng tín hiệu PWM đầu vào đang đảo liên tục.

Khuyến nghị bước đầu tiên cậu thử nối tiếp một con trở khoảng 15Ω vào Gate của trans trên, xem ở 26V sóng có thể ổn định không.

Những thông tin bạn bổ sung rất quan trọng, cơ bản là có thể loại trừ vấn đề DCM đơn thuần rồi — 20R và 6R chênh lệch hơn ba lần dòng điện tải, nhưng hiện tượng lại giống nhau, điều này không đúng với đặc tính của DCM (DCM thì tải càng nặng càng khó xuất hiện).

Phán đoán vấn đề cốt lõi: Không phải DCM, mà là hiện tượng dao động driver / hiệu ứng điện cảm cực nguồn do MOSFET chuyển mạch tốc độ cao

Bạn thay các MOSFET khác nhau mà biểu hiện khác nhau một trời một vực, đây là manh mối quan trọng nhất.

CSD19531Q5A dùng công nghệ NexFET của TI, tốc độ chuyển mạch cực nhanh, di/dt và dv/dt đều rất mạnh. AP68N06G thì tương đối chậm hơn, nên mạch hấp thụ RC còn kiềm chế được, còn đổi sang CSD19531 thì không kiềm chế nổi.

Cụ thể đã xảy ra chuyện gì:

Hiệu ứng điện cảm cực nguồn chung (Common Source Inductance)

  • Đường mạch ở nút VS (cực nguồn MOS) của bạn chắc chắn có điện cảm ký sinh, có thể từ vài nH đến vài chục nH
  • Ngay khoảnh khắc CSD19531 mở, di/dt cực cao, tạo ra một sụt áp trên điện cảm ký sinh cực nguồn: V = Ls × di/dt
  • Điện áp này chính là «điện thế cực nguồn bị đẩy lên», tương đương với việc Vgs bị kéo xuống
  • Khi di/dt lớn đến một mức độ nhất định, Vgs bị kéo thẳng xuống dưới điện áp ngưỡng, MOSFET vừa mới mở đã bị ngắt ngang
  • Sau khi ngắt, dòng điện giảm, di/dt đảo chiều, Vgs lại tăng lên, MOSFET lại mở…… tạo thành dao động
  • Những «xung nhọn» mà bạn thấy, thực ra chính là dạng sóng dao động của MOSFET bật rồi tắt, tắt rồi bật, chứ không phải là nền dẫn thông bình thường

Điều này cũng giải thích các hiện tượng khác:

  • Tăng tụ bootstrap có cải thiện nhưng hạn chế: Tụ bootstrap lớn hơn thì nguồn driver sẽ «cứng» hơn, Vgs khó bị kéo sập hơn. Nhưng vấn đề cốt lõi là di/dt quá cao, nên tăng đến 1uF là đã chạm giới hạn rồi
  • Giảm tần số không tác dụng: Đây là vấn đề của trạng thái chuyển mạch thoáng qua, không liên quan đến độ dài chu kỳ
  • Thay điện cảm có dòng bão hòa lớn hơn không tác dụng: Không phải do điện cảm bị bão hòa, nếu trị số điện cảm không đổi thì độ lớn ripple cũng không đổi
  • Mạch hấp thụ RC giữa D-S không hiệu quả với CSD19531: Mạch hấp thụ RC chủ yếu triệt tiêu dv/dt, còn nguyên nhân chính của vấn đề này là hiệu ứng điện cảm cực nguồn do di/dt gây ra, nên tụ D-S có tác dụng rất hạn chế

Cách giải quyết

① Trực tiếp và hiệu quả nhất: Điện trở nối tiếp vào cực cổng để giảm tốc độ (Rất khuyên bạn nên thử trước)

Nối tiếp một điện trở vào cực cổng của CSD19531, thử trong khoảng từ 10Ω~100Ω, làm chậm tốc độ chuyển mạch để kéo di/dt xuống.

Những MOSFET tốc độ cao loại NexFET này nếu không cộng thêm điện trở cổng mà drive trực tiếp thì rất dễ làm hỏng driver hoặc gây dao động. Điện trở driver R1 hiện tại của bạn là bao nhiêu? Trên sơ đồ nguyên lý R1 ghi 10R à? Nếu đã có 10Ω rồi, thì tăng lên 22Ω, 47Ω rồi thử lại, chắc chắn sẽ thấy cải thiện rõ rệt.

Đánh đổi là tổn hao chuyển mạch sẽ tăng lên một chút, nhưng với điều kiện hoạt động 100KHz, vài chục V hiện tại của bạn, thì hoàn toàn nằm trong phạm vi có thể chấp nhận được.

② Tối ưu vòng lặp driver, giảm điện cảm ký sinh

  • Đường mạch từ đầu ra của chip driver đến cực cổng MOS phải càng ngắn và càng rộng càng tốt
  • Diện tích bao quanh bởi đường hồi của driver cực cổng (Mass driver → cực nguồn → cực cổng → đầu ra driver) phải được tối thiểu hóa
  • Tụ bootstrap phải đặt sát các chân VB và VS của chip driver, không đi dây dài

③ Thêm tụ nhỏ hoặc mạch kẹp giữa cực cổng và cực nguồn

  • Song song một tụ nhỏ vài trăm pF vào giữa G-S (ví dụ 220pF~1nF), có thể triệt tiêu dao động cực cổng, nhưng sẽ làm chậm tốc độ chuyển mạch, hiệu quả tương tự như điện trở cổng
  • Hoặc song song một cặp diode Zener đấu lưng đối lưng (ví dụ 12V+15V), kẹp trực tiếp Vgs trong phạm vi an toàn, ngăn ngừa quá áp và dao động

④ Xác nhận lại trạng thái MOSFET phía Boost

Cấu trúc của bạn là Buck-Boost, MOSFET dưới phía Boost là Q2 đang ở trạng thái thường tắt hay cũng chuyển mạch đồng bộ? Nếu Q2 cũng đang mở thì di/dt của nó sẽ ghép nối qua điện cảm, làm cho vấn đề trở nên phức tạp hơn. Trong giai đoạn kiểm tra, có thể ngắt hoàn toàn MOSFET phía Boost trước, chỉ chạy chế độ Buck để loại trừ nhiễu.

Về vấn đề vòng kín

Bạn nói đúng, hãy điều chỉnh dạng sóng vòng hở về bình thường trước rồi mới chạy vòng kín.

Vòng kín giải quyết là vấn đề «điện áp đầu ra có ổn định hay không», chứ không thể cứu vãn được sự cố chuyển mạch ở cấp phần cứng. Nếu ở cấp phần cứng MOSFET vừa mở đã dao động, thậm chí dẫn thông nhầm / ngắt nhầm, thì bạn điều chỉnh độ rộng xung (duty cycle) có chính xác đến đâu cũng vô dụng, vòng phản hồi ngược lại có thể do dạng sóng bất thường này mà trở nên kém ổn định hơn.

Hãy cộng thêm điện trở cổng trước, điều chỉnh dạng sóng VS thành sóng vuông sạch, độ khuếch đại tự nhiên sẽ được xác định, lúc đó mới tính toán tham số bù cũng chưa muộn.

Bạn hãy thử cộng thêm điện trở cực cổng trước, bắt đầu từ 22Ω, nếu không được thì tăng dần lên, xem dạng sóng ở trên 26V có thể phục hồi bình thường hay không.

Chào chuyên gia, tôi có một thắc mắc. Khi làm việc ở chế độ buck, trạng thái thứ nhất là Q1 và Q3 dẫn, Q2 và Q4 ngắt; trạng thái thứ hai là Q2 và Q3 dẫn, Q1 và Q4 ngắt. Lúc này Q4 luôn ngắt, nên tụ bootstrap của Q3 không thể nạp điện xuống đất mà chỉ có thể nạp điện vào nút SW2, dẫn đến điện áp UGS của Q3 không đủ.

Bạn đã xem code chưa? Trong code thực tế không phải lúc nào cũng dẫn, mà là duty cycle hơn chín mươi phần trăm, để đảm bảo tụ bootstrap có thời gian nạp.

Cảm ơn đại cao thủ! Em cảm giác như đã hiểu được một chút nhưng vẫn chưa thật sự hiểu rõ!
Bước thứ nhất, khi thiết kế có cần đo tần số vượt 0 dB của buck dựa trên biểu đồ Bode không? Hay là dựa vào phần mềm mô phỏng? Nếu đo thực tế thì mình làm thế nào? Bên boost cũng có thắc mắc tương tự!
Bước thứ năm, trong công thức tính Kadc, Kdiv có phải là hệ số khuếch đại điện áp trong sơ đồ nguyên lý của mình, tức giá trị 0,062 đó không? KPWM chắc là 30000. Còn Kanalog ở đây em hiểu là một thông số biến đổi có thể điều chỉnh bất cứ lúc nào.
Bước thứ sáu, phần tính toán bù phần cứng, STM32G474 có tài liệu tham khảo nào không ạ? Em muốn tìm hiểu thêm trước.

Chào đại cao, tôi muốn hỏi một chút. Gần đây khi nghiên cứu mã nguồn của dự án này, tôi thấy ADC1 được cấu hình để lấy mẫu bốn kênh và lấy mẫu vượt mức bốn lần. Sau đó, tần số xung nhịp của ADC là tần số 170 MHz chia bốn, tức là 42,5 MHz. Khi tra cứu tài liệu và mã nguồn, tôi thấy có 2,5 chu kỳ xung nhịp cho thời gian lấy mẫu, 12,5 chu kỳ cho thời gian chuyển đổi và 0,5 chu kỳ độ trễ. Sau đó, GPT bảo tôi còn phải nhân thêm hai hệ số bốn, tương ứng với bốn kênh và lấy mẫu vượt mức bốn lần. Như vậy tôi tính ra một lần chuyển đổi ADC sẽ dài hơn một chu kỳ xung nhịp 181 kHz của PWM. Điều này có dẫn đến việc phải mất hai chu kỳ đóng cắt mới hoàn thành một lần chuyển đổi ADC bốn kênh không? Có phải tôi đã xem sai ở đâu đó hoặc hiểu chưa đúng không, hay là chỉ cần khoảng 2,5 chu kỳ lấy mẫu của ADC nằm ở giữa lúc công tắc bật là được?

  1. Phép tính của bạn không sai: 16 lần chuyển đổi ≈ 5,84 μs, quả thực dài hơn một chút so với chu kỳ chuyển mạch 181 kHz (5,52 μs).

  2. Nhưng “phải mất hai chu kỳ chuyển mạch mới hoàn thành một lần chuyển đổi bốn kênh” không phải là vấn đề: vòng điều khiển của nguồn số chỉ quan tâm đến việc căn chỉnh thời điểm lấy mẫu (thường là điểm giữa của PWM), chứ không yêu cầu mọi lần chuyển đổi phải hoàn tất trong một chu kỳ. Kênh vòng dòng điện được ưu tiên lấy mẫu đồng bộ, các kênh còn lại có thể quay vòng.

  3. Cách nói “2,5 chu kỳ nằm ở giữa lúc chuyển mạch bật” không chính xác: 2,5 chu kỳ là thời gian giữ mẫu (≈59 ns), không phải một cửa sổ có thể định vị. Thứ cần định vị là thời điểm kích hoạt — dùng TRGO của bộ định thời để kích hoạt ADC, giúp nó lấy mẫu tại điểm giữa.

  4. Nếu muốn quét xong trong một chu kỳ thì cũng đơn giản: giảm lấy mẫu quá mức từ 4 lần xuống 2 lần, 8 lần ≈ 2,9 μs, dễ dàng đáp ứng.

Nói ngắn gọn: chính xác về điểm lấy mẫu quan trọng hơn nhiều so với quét nhanh. Trong thiết kế thời gian ADC cho nguồn số, 90% công việc là làm cho cạnh kích hoạt đó rơi chính xác vào pha PWM thích hợp.

Dạ vâng, hóa ra là vậy. Cảm ơn đại ca đã giải đáp :pleading_face:

Bản ADC thu thập mà tôi sao chép lại cũng có hiện tượng không chính xác; một phần dữ liệu sau khi chỉnh sửa phần mềm thì sai số không còn lớn như vậy. Có thể tôi đã mắc lỗi ở khâu bố cục.

Bạn tự vẽ lại bảng à?

Xin hỏi vì sao không có đầu ra?

Kiểm tra xem phần hàn có vấn đề gì không, có hiện tượng hàn giả không; kiểm tra nguồn cấp và đầu ra của phần lấy mẫu có vấn đề gì không.

Đại ca, có thể đổi sang một model STM32 khác để giảm chi phí không? Tôi thấy phần nguồn với con 32 chủ yếu chỉ liên quan ở ADC thôi.

F103 với G474 khác nhau nhiều lắm…

Nếu bạn tự biết sửa chương trình và gỡ lỗi thì có thể dùng F334

Làm nguồn số thì nhất định phải có ngoại vi HRTIM, còn làm nguồn điều khiển số (điều khiển vòng lặp giao cho chip nguồn analog chuyên dụng) thì có thể dùng F103

Cho mình hỏi tác giả đã cân nhắc thế nào khi chọn lấy mẫu ADC, và tại sao lại đặt ở giữa cầu dưới bên trái? Mình nghĩ như vậy không thể lấy được dòng điện trung bình. Đặc biệt là với chế độ boost và mix, đặt như vậy có phù hợp không? Mong được giải đáp.

Nói luôn kết luận: Trực giác của bạn đúng một nửa và sai một nửa. Về nguyên tắc, lấy mẫu điểm giữa có thể lấy được giá trị trung bình, nhưng trong thiết kế này, “có lấy được trung bình hay không” thực ra không dựa vào điểm kích hoạt, mà dựa vào front-end lấy mẫu; còn ở chế độ boost thì điểm kích hoạt này đúng là sẽ bị thoái hóa.

1. Tại sao điểm giữa có thể bằng giá trị trung bình? Miễn là dạng sóng dòng điện trong một chu kỳ gồm hai đoạn dốc lên/xuống với một đỉnh và một đáy (CCM), diện tích đoạn tăng = t₁·(Imin+Imax)/2, diện tích đoạn giảm = t₂·(Imax+Imin)/2, tổng diện tích = T·(Imin+Imax)/2, nên trung bình chu kỳ = (Imin+Imax)/2; còn trung điểm thời gian của bất kỳ đoạn gấp khúc nào cũng có giá trị tức thời đúng bằng (Imin+Imax)/2. Đây chính là cái gọi là “lấy mẫu điểm giữa = dòng điện trung bình”, không liên quan đến việc t₁/t₂ có bằng nhau hay không. Tác giả lấy CMP3 = CMP1>>1 chính là theo cách đó.

2. Nhưng bạn cần chú ý đang lấy mẫu cái gì. Tác giả lấy mẫu bốn đại lượng ở cổng Vin/Iin/Vout/Iout, chứ không phải dòng điện cuộn cảm. R13/R14 là các điện trở 5mΩ mắc nối tiếp trên đường cổng vào/ra, tụ ở cổng đã lọc dòng điện thành gần như DC, nên về bản chất, điểm lấy mẫu không phải là “bắt trung điểm của đoạn dốc”, mà là chọn thời điểm ít nhiễu điện nhất——trong thời gian khóa dưới trái dẫn, nút SW của cầu trái bị ghim tại GND, khóa trên lẫn khóa dưới đều không chuyển mạch, tránh xa xung nhọn khi bật, phục hồi ngược và ringing; đây là cửa sổ sạch nhất trong toàn bộ chu kỳ. Vì vậy đây thiên về lựa chọn chống nhiễu hơn là lựa chọn giá trị trung bình. Nếu thực sự muốn lấy trung bình dựa vào điểm kích hoạt thì phải lấy mẫu dòng điện cuộn cảm.

3. Chế độ Boost đúng là có vấn đề. Khi khóa trên của cầu trái dẫn 100% (luôn bật), khóa dưới trái ngắt hoàn toàn → CMP1 = 0 → CMP3 = 0 → điểm kích hoạt thoái hóa về điểm bắt đầu đếm, không còn “ở giữa”, và rất có thể lại rơi đúng vào sườn chuyển mạch của Timer F (cầu Boost), tức là thời điểm bẩn nhất. Với chế độ này, nên chuyển nguồn kích hoạt sang một điểm giữa nào đó của Timer F, hoặc cố định luôn ở một vị trí mà cả hai cầu đều không hoạt động.

4. Chế độ Mix:Khi cả hai cầu đều đang chuyển mạch, nếu chúng hoạt động theo cặp (trên trái + dưới phải / dưới trái + trên phải), trung điểm của khóa dưới trái đúng là rơi vào cửa sổ “không có sườn nào”, vẫn ổn; nhưng ở chế độ hỗn hợp, độ dốc dòng điện cuộn cảm do Vin và Vout quyết định riêng, khi D1≠D2, dạng sóng sẽ có thêm một đoạn, lúc này đẳng thức “điểm giữa = trung bình chu kỳ” không còn đúng, cần gia trọng theo duty cycle hoặc lấy trung bình nhiều điểm trên toàn chu kỳ.

5. Tiện thể nêu một vấn đề ngân sách thời gian:4 kênh × lấy mẫu quá mức 4 lần × 15 chu kỳ ADC ≈ 240 chu kỳ ≈ 5.65µs, đã vượt quá chu kỳ chuyển mạch 5.51µs. Nói chặt chẽ thì chỉ kênh đầu tiên thực sự rơi vào điểm giữa bạn đặt, ba kênh sau bị đẩy lùi theo, và còn có thể xảy ra mất kích hoạt/ghi đè. Hoặc giảm hệ số lấy mẫu quá mức hoặc thời gian lấy mẫu, hoặc dùng hai ADC xen kẽ, hoặc mỗi chu kỳ chỉ lấy mẫu một kênh dòng điện quan trọng nhất.

Ngồi hóng xíu, muốn hỏi mọi người có debug chưa vậy?