แสดงบทความที่มีป้ายกำกับ Pluse Width Modulator แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Pluse Width Modulator แสดงบทความทั้งหมด

วันเสาร์ที่ 4 กรกฎาคม พ.ศ. 2558

Simple and Efficient PWM

บทความเรื่อง PWM สำหรับทดสอบคอนเวอร์เตอร์ มีผู้สนใจเข้าไปอ่านกันมาก ผมเลยอยากนำเสนอวงจร PWM อีกตัวหนึ่งที่เคยทดสอบการทำงานเอาไว้นานแล้ว แต่ยังไม่ได้เอามาใช้ เพราะต้องเพิ่มเติมกันอีกพอสมควรถ้าจะเอามาใช้ทดสอบคอนเวอร์เตอร์อย่างจริงจัง

วงจรนี้สร้าง PWM ที่ให้ค่าความถี่เสถียรกว่าไอซีเบอร์ TL494 และปรับเปลี่ยนความถี่ของ PWM ได้ง่ายและกว้างกว่า ทั้งยังสามารถทำงานที่ความถี่สูงๆ ได้อีกด้วย เหมาะจะนำไปทดสอบวงจร "เรโซแนนซ์คอนเวอร์เตอร์" ที่ทำงานในช่วงความถี่สูงๆ

เอามาลงไว้เผื่อมีใครสนใจนำไปประยุกต์ใช้งานครับ

วงจรนี้ดัดแปลงมาจากวงจรในบทความชื่อ Simple circuit provides efficient PWM เขียนโดย Kenneth Levine ลงในคอลัมน์ design ideas ในวารสาร EDN ฉับบ February 18, 1999 

ส่วนวงจรที่ทดลองสร้างขึ้นมีแก้ไขนิดหน่อยครับและเปลี่ยนตัวอุปกรณ์ให้เป็นเท่าที่ผมหาได้ ซึ่งจะเป็นดังนี้

(ดัดแปลงจากวงจรเดิมของ Kenneth Levine)


ในบทความของ Levine  นั้นได้อธิบายการทำงานเอาไว้แล้วโดยละเอียด (มีที่พิมพ์หน่วยผิดนิดหน่อย ให้ดูหน่วยจากบทความนี้แทน) ในที่จึงจะขออธิบายการทำงานเพียงคร่าวๆ เท่าทีจำเป็นในการนำไปใช้ครับ

การทำงานของวงจรจะแบ่งออกเป็น 2 ส่วนหลักๆ ตามการทำงานของ PWM โดยทั่วไป คือ ส่วนสร้างสัญญานฟันเลื่อย (sawtooth) ที่ใช้กำหนดค่าความถึ่ของ PWM (ชุุด IC1A) และส่วนควบคุมค่าดิวตี้ไซเคิล (ชุด IC1B)

เริ่มที่ชุดสร้างสัญญานฟันเลื่อยกันก่อน 


ส่วนสร้างสัญญานฟันเลื่อย

ซึ่งจะแบ่งย่อยอีกเป็น 2 ส่วน คือส่วน "ชาร์จ" และส่วน "ดิสชาร์จ" ตัวคาปาซิเตอร์ C1 โดยค่าความถี่ของ PWM ที่ได้จะขึ้นอยู่กับช่วงเวลา dt ในการชาร์จ C1 เป็นหลัก วงจรนี้ออกแบบไว้ให้เริ่มชาร์๋จเมื่อแรงดันตกคร่อม C1 ตกลงมาจนถึงระดับ 1V และให้ดิสชาร์จประจุทิ้งไปเมื่อแรงดันตกคร่อม C1 เพิ่มขึ้นจนถึง 3V ครับ

ตัวชาร์จอยู่ที่ทรานซิสเตอร์ Q1 ซึ่งจะชาร์จประจุ C1 ด้วยกระแสคงที่ผ่านตัวมัน จากวงจรจะเห็นว่า R1 กับ R2 ต่อวงจรในลักษณะแบ่งแรงดัน โดยค่าที่กำหนดในวงจรจะทำให้แรงดันตกคร่อม R1 เท่ากับ 1V คงที่ หากประมาณแรงดัน VBE ของ Q1 เท่ากับ 0.7V แรงดันตกคร่อม R3 ก็จะมีค่าเท่ากับ 0.3V คงที่ด้วย ดังนั้นที่ค่า R3=1.5k กระแสที่จะไหลเข้าชาร์จ C1 จะมีค่าคงที่เท่ากับ 200uA (ไมโครแอมป์) และเนื่องจากแรงดันตกคร่อม C1 จะเพิ่มขึ้นจาก 1V ถึง 3V เมื่อ C1 ถูกชาร์จประจุจะมีค่าแรงดันเพิ่มขึ้น dV= 3V-1V=2V ดังนั้นจะหาช่วงเวลาในการชาร์จประจุได้จาก



นั่นคือ จากค่า R3= 1.5K ในวงจรจะได้ความถี่ PWM เท่ากับ 1/10us = 100kHz และด้วยวิธีการคำนวณแบบเดียวกัน ถ้าต้องการความถี่เท่ากับ 50kHz กับ 200kHz ก็ให้เปลี่ยนค่า R3 เป็น 3K กับ 750R ตามลำดับครับ

ส่วนดิสชาร์จ C1 อยู่ที IC1A ซึ่งจัดวงจรในลักษณะ cpmparator โดยขา 4 ของ IC1A จะคอยเช็คแรงดันที่ตกคร่อม R5 และจากค่าของ R4 กับ R5 ที่กำหนดไว้จะทำให้แรงดันตกคร่อมที่ R5 มีค่าเท่ากับ 3V ส่วนขา 5 ของIC1A จะคอยเช็คแรงดันที่ตกคร่อม C1 เพื่อเปรียบเทียบกัน และเมื่อแรงดันตกคร่อม C1 มีค่าเท่ากับ 3V comparator ก็จะทำงานโดย ขา 12 จะดึงกระแสโดยลดแรงดันที่ขาลงจน (เกือบ) เป็นศูนย์ (แรงดันกราวด์) จังหวะนี้ R6 ที่เสมือนต่อลอยอยู่จะเปลี่ยนมาขนานกับ R5 แทน และจากค่าความต้านทานของ R6 ที่กำหนดไว้ในวงจรจะทำให้แรงดันที่ขา 4 ของ IC1A ในจังหวะนี้มีค่าลดลงเหลือเพียง 1V ในขณะเดียวกันไดโอด D1 ก็จะดึงให้ C1 ดิสชาร์จประจุออกมาผ่านขา 12 ของ IC1A อย่างรวดเร็วด้วย จนเมื่อแรงดันตกคร่อม C1 ลดลงจนเหลือต่ำกว่า 1V ขา 12 ของ IC1A ก็จะเปิดวงจรอีกครั้ง D1 จะหยุดทำงาน C1 จะเริ่มชาร์จประจุใหม่ เป็นเช่นนี้เรื่อยไปก็จะได้สัญญานฟันเลื่อยมารอไว้ที่ขา 10 ของ IC1ฺB 


ส่วนควบคุมค่าดิวตี้ไซเคิล

อยู่ที่ขา 10 กับขา 9 ของ IC1B ซึ่งใช้แรงดัน VCTRL ในช่วง 1V ถึง 3V (1V<VCTRL<3V) มาควบคุมค่าความกว้างของ pluse โดย IC1B จะเปรียบเทียบแรงดันที่เพิ่มขึ้นจาก C1 ที่ขา 10 กับแรงดัน VCTRL ที่ขา 9  ถ้าแรงดัน VCTRL ยังมากกว่าค่าแรงดันของ C1 เอาต์พุต์ของ PWM (แรงดันที่ขา 7 ของ IC1B) ก็จะมีค่า High เมื่อแรงดันของ C1 เพิ่มขึ้นจนเท่ากับ VCTRL เอาต์พุต์ของ PWM ก็จะมีค่า Low ดังนั้นการปรับเปลี่ยนค่าแรงดัน VCTRL ก็คือการปรับเปลี่ยนค่าดิวตี้ไซเคิลของ PWM นั่นเอง

ตัว IC1A และ IC1B วงจรเดิมใช้เบอร์ LM319 ส่วนผมเปลี่ยนไปใช้เบอร์ LM311 แทน และแยกแรงดันไฟเลี้ยงไอซีให้เป็น 12V (เพื่อให้ได้แรงดันเอาต์พุตของ PWM ที่ 12V) ส่วนแรงดัน 5V ที่ใช้กับส่วนอื่นของวงจร ผมใช้ IC7805 ตัวเล็กมาลดแรงดันจาก 12V ลงมาเป็น 5V อีกที ทรานซิสเตอร์ Q1 วงจรเดิมใช้ 2N3906 ผมเปลี่ยนมาใช้ 2N3906 เพราะมีอยู่ ค่า R ในวงจรนั้นเปลี่ยนไปเล็กน้อยให้หาค่าได้ง่าย ใช้แบบ 1% ทั้งหมดได้ก็ดีครับ สำหรับ R3 นั้นเปลี่ยนมาใช้ VR5K (20รอบ) แทน เพื่อให้ปรับได้ครอบคลุมค่าความถี่ตั้งแต่ 50kHz ถึง 200kHz ส่วนแรงดัน VCTRL ก็ใช้ VR5K แบ่งแรงดัน 5V เอา ไดโอด D1 ถ้าหาเบอร์ 1N914 ไม่ได้ให้ใช้เบอร์ 1N4148 แทนได้เช่นกัน

ไอซี Comparator ไม่จำเป็นต้องเป็นเบอร์ LM319 หรือ LM311 แต่ขอให้มีความเร็วตอบสนองดีๆ ถ้าต้องการความถี่สูงๆ ก็ให้เลือกไอซีที่มีความเร็วมากกว่า 2 ตัวนี้มาใช้ครับ

รูปนี้เป็นวงจรที่ประกอบขึ้นทดลอง





ส่วนลักษณะรูปคลื่นที่ได้ขณะวงจรทำงานเป็นดังนี้




รูปบนได้จากการปรับค่า R3 ให้ได้สัญญานฟันเลื่อยที่ 50kHz ซึ่งจะได้สัญญานเอาต์พุตของ PWM ที่ 50kHz ด้วย เส้นแนวนอนคือค่าแรงดัน VCTRL ปรับไว้ที่ประมาณ 3V (High duty cycle) ส่วนรูปข้างล่างปรับค่าแรงดัน VCTRL ไว้ที่ประมาณ 1.4V (low duty cycle)





ต่อไปทดลองเปลี่ยนค่าความถี่เป็น 100 kHz




ถัดมาที่ 200 kHz วงจรยังคงทำงานได้ไม่มีปัญหา




วงจรนี้ผมทดลองให้ทำงานทิ้งไว้เป็นเวลานาน สังเกตความถี่ที่ได้ค่อนข้างนิ่งดีทีเดียวไม่เปลี่ยนแปลงมากเหมือนที่ได้จากไอซีเบอร์ TL494 แต่เสียอยู่อย่างหนึ่งคือ มี PWM แค่ output เดียว การนำไปใช้กับ พุชพูล ฮาล์ฟบริดจ์ และฟูลบิรดจ์คอนเวอร์เตอร์ อาจลำบากนิดหน่อย เอาไว้ผมจะเขียนถึงการนำไปใช้กับคอนเวอร์เตอร์เหล่านี้ให้ในตอนต่อๆ ไปครับ






วันอาทิตย์ที่ 7 กันยายน พ.ศ. 2557

PWM สำหรับทดสอบคอนเวอร์เตอร์

พลัส์วิดท์มอดูเลเตอร์” (Pluse Width Modulator) เป็นวงจรสำคัญอีกตัวหนึ่งที่ใช้ในการออกแบบและทดสอบคอนเวอร์เตอร์ที่ใช้ในสวิตชิ่งเพาเวอร์ซัพพลาย เพราะหัวใจสำคัญในการควบคุมค่าแรงดันขาออกของคอนเวอร์เตอร์ ก็คือการควบคุม “ช่วงเวลานำกระแส” ของเพาเวอร์ทรานซิสเตอร์ในวงจรครับ

โดยทั่วเมื่อโหลดดึงกระแสมากขึ้นแรงดันขาออกของคอนเวอร์เตอร์ก็จะลดลง ดังนั้นวงจรควบคุมจึงต้องเพิ่มช่วงเวลานำกระแสให้กับเพาเวอร์ทรานซิสเตอร์เป็นการชดเชย เพื่อคงค่าแรงดันเอาไว้ ซึ่งในทางกลับกันเมื่อโหลดดึงกระแสน้อยลงช่วงเวลานำกระแสของเพาเวอร์ทรานซิสเตอร์ก็ต้องน้อยลงตามไปด้วยเช่นกัน

วงจรควบคุมที่ใช้กับคอนเวอร์เตอร์ส่วนใหญ่จึงเป็นวงจรในลักษณะ “พลัส์วิดท์มอดูเลต” คือ เมื่อแรงดันป้อนกลับมีค่าน้อยลงความกว้างของเอาท์พุตพลัส์ (ซึ่งนำไปใช้ขับให้เพาเวอร์ทรานซิสเตอร์นำกระแส) ก็จะมากขึ้น และเมื่อแรงดันป้อนกลับมีค่ามากขึ้นความกว้างของเอาท์พุตพลัส์ก็จะน้อยลงกลับทางกัน

การทดลองเกี่ยวกับคอนเวอร์เตอร์หรือสวิตชิ่งเพาเวอร์ซัพพลายวงจร “พลัส์วิดท์มอดูเลเตอร์” หรือ PWM จึงเป็นสิ่งจำเป็นที่ขาดไม่ได้ครับ

มีวงจรพลัส์วิดท์มอดูเลตที่นำมาใช้ได้ดีอยู่หลายแบบ แต่ที่ราคาถูกและสร้างง่ายที่สุดน่าจะเป็นวงจรที่ใช้ IC ยอดนิยมสำหรับสวิตชิ่งเพาเวอร์ซัพพลายเบอร์ TL494 ครับ เบอร์นี้เป็นคอนโทลเลอร์สำหรับสวิตชิ่งเพาเวอร์ซัพพลายที่เก่ามากแล้ว (วงจรรุ่นเก่าๆ จะใช้กันมาก)  แต่ยังใช้เป็นวงจรพลัส์วิดท์มอดูเลเตอร์สำหรับการทดสอบคอนเวอร์เตอร์ได้ดีทีเดียว ที่สำคัญก็คือ เบอร์นี้หาง่ายและมีราคาถูกครับ ตัวละไม่เกิน 10 บาท

หน้าตาของวงจรจะเป็นตามนึ้ครับ

 
วงจร PWM จากไอซีเบอร์ TL494 สำหรับใช้ทดสอบคอนเวอร์เตอร์




วงจรนี้สามารถใช้ทดสอบคอนเวอร์เตอร์ได้ครบทุกแบบ  ตัววงจรผมดัดแปลงมาจากวงจรทดสอบใน datasheet ของ IC เอง หลักการทำงานของตัวไอซีผมจะขอข้ามไปเพราะมีกล่าวโดยละเอียดใน datasheet และในอินเตอร์เน็ตแล้ว

ความถี่ของวงจร f(osc) ที่ต้องการใช้เป็นความถี่การทำงานของคอนเวอร์เตอร์ จะขึ้นอยู่กับค่า RT กับ CT ซึ่งจะแตกต่างไปตามโหมดการทำงาน สำหรับโหมด Single-ended (Output1 และ Output2 ทำงานพร้อมกัน) สำหรับวงจรที่ใช้เพาเวอร์ทรานซิสเตอร์ตัวเดียวอย่าง ฟลายแบคหรือฟอร์เวิร์ดคอนเวอร์เตอร์ จะใช้สูตรนี้



สำหรับโหมด Push-pull  ( Output1 และ Output2 สลับกันทำงาน) สำหรับวงจรที่ใช้เพาเวอร์ทรานซิสเตอร์ 2 ตัวสลับกันนำกระแส เช่น พุชพูล ฮาล์ฟบริดจ์ และฟูลบริดจ์คอนเวอร์เตอร์ จะใช้สูตรนี้ครับ



หมายความว่าในโหมด Push-pull ถ้าใช้ RT กับ CT ค่าเดียวกันกับโหมด Single-ended ความถี่จะหายไปครึ่งหนึ่ง ซึ่งการจะใช้โหมด Push-pull นั้น ให้จ่ายไฟบวกเข้าที่ขา 13 ที่ใช้เป็นตัวเลือกโหมด และแรงดันไฟบวกที่ใช้ก็สามารถใช้แรงดันจากขา 14 ซึ่งมีค่าคงที่ 5V เป็นแรงดันอ้างอิงที่ให้มากับ TL494 อยู่แล้วได้เลย

แต่ถ้าจะใช้โหมด Single-ended ก็ปล่อยขา 13 ให้ลอยเอาไว้ครับ


สำหรับค่า RT และ CT ของวงจร ผมเลือกให้  CT เป็นค่าคงที่เท่ากับ 0.01uF ดังนั้นตั้งค่าความถี่จะได้จากการเปลี่ยนค่า RT เอาครับ ส่วนค่า RT ที่แสดงไว้ในวงจรนี้จะปรับความถี่ได้ตั้งแต่ 20kHz ไปจนถึง 100 kHz ซึ่งน่าจะเพียงพอสำหรับการทดลองเกี่ยวกับคอนเวอร์เตอร์ขั้นพื้นฐานแล้ว

จากวงจรจะเห็นว่าที่ขา 4 นั้นต่อลงกราวด์เอาไว้ ดังนั้นค่าเวลาเผื่อ (dead-time) ของวงจรจะอยู่ที่ประมาณ 3% คือ ความกว้างสูงสุดของพลัส์หรือค่า duty cycle จะอยู่ที่ 97%  ส่วนการตั้งค่าเวลาเผื่อให้ได้มากกว่า 3% (ซึ่งอาจจำเป็นสำหรับโหมด Push-pull เพื่อไม่ให้เพาเวอร์ทรานซิสเตอร์ 2 ตัวนำกระแสพร้อมกัน) ตามคู่มือบอกว่าให้จ่ายแรงดันให้ที่ขา 4 ตั้งแต่ 0V ถึง 3.3V แทนการต่อลงกราวด์ ซึ่งจะปรับค่าเวลาเผื่อได้จาก 3% ไปจนถึง 100% ครับ

การปรับค่าความกว้างพัลส์ (ค่า Duty cycle) ใช้วิธีปรับค่าแรงดันที่ป้อนให้ขา 3 ในวงจรนี้ใช้ค่าแรงดันอ้างอิง 5V ของไอซีที่ขา 4 ได้เลยเพราะแรงดันที่ขา 3 หรือ Feedback เริ่มจาก 0.7V (Duty cycle สูงสุด) ไปจนถึง 4.5V (Duty cycle ต่ำสุด)  R ปรับค่าได้ใช้ค่าเท่าไหร่ก็ได้ครับ ที่ไม่ต่ำเกินไป ผมใช้ค่า 1K แบบ 10รอบ แต่ใช้แบบธรรมดาก็ได้ครับ ที่ใช้แบบ 10 รอบ เพราะจะได้ปรับค่า Duty cycle ที่ต้องการได้ง่ายหน่อยเท่านั้นเองครับ 

ตัวต้านทานที่ต่อลงกราวด์ที่ Output1 กับ Output2 นั้น วงจรนี้ต่อสลับกับวงจรใน data sheet เพื่อให้มีแรงดันมากพอที่จะขับเพาเวอร์มอสเฟตได้เลย หรือจะเพิ่ม totem pole เข้าไปอีกตามรูปก็ได้ครับ


ตัวอย่างวงจร Totem Pole


ตอนนี้เราก็มีครบแล้วทั้งโหลดและพัลส์วิดท์มอดูเลเตอร์ ดังนั้นตอนต่อๆไป ก็จะสามารถทดสอบคอนเวอร์เตอร์แบบต่างๆ ที่ออกแบบเอาไว้ได้แล้วครับ



                   ทดสอบวงจร PWM ที่สร้างขึ้น ใช้แรงดันไฟเลี้ยงวงจรที่ 12V วงจรทำงานในโหมด Single-ended จะเห็นว่า Output1 และ Output2 นั้นทำงานพร้อมกัน


กลุ่มทรานซิสเตอร์ที่เห็นเป็น totem pole ที่เพิ่มเข้ามา ตัว R ปรับค่าได้สีฟ้า 10 รอบ สำหรับปรับค่า duty cycle ส่วนตัวสีดำนั้นปรับค่าความถี่ของวงจรครับ

รูปคลื่นจาก Output1 และ Output2 ในโหมด Single-ended
ปรับค่าเอาไว้ที่ความถี่ 50kHz และ 20% Duty Cycle


รูปคลื่นจาก Output1 และ Output2 ในโหมด Single-ended
ปรับค่าเอาไว้ที่ความถี่ 50kHz และ 90% Duty Cycle

ตั้งค่า RT และ CT ไว้เท่าเดิม แต่เปลี่ยนเป็นโหมด Push-pull  แทน โดยจ่ายไฟ 5V เข้าที่ขา 13  จะเห็นว่าความถี่ของแต่ละเอาท์พุตลดลงเหลือ 25kHz รูปนี้ปรับค่า Duty cycle เอาไว้ที่ 10% ครับ

ที่ค่า RT และ CT เท่าเดิมในโหมด Push-pull แต่ค่า Duty Cycle อยู่ที่ 45%