การลดสัญญาณรบกวนในไมโครคอนโทรลเลอร์

เคยมีเมลมาถามผมเกี่ยวกับการแก้ปัญหาความไม่เสถียรของไมโครคอนโทรลเลอร์ตระกูล MCS-51 ความจริงแล้วไมโครคอนโทรลเลอร์ตัวนี้ไม่ใช่รุ่นที่เสถียรที่สุด แต่ด้วยการใช้งานที่ง่าย, หาซื้อได้สะดวก อีกทั้งยังมีราคาถูก ทำให้หลายคนนิยมพัฒนาด้วยไมโครคอนโทรลเลอร์ตระกูลนี้ แท้จริงแล้วสัญญาณรบกวนจากแหล่งจ่ายไฟมีผลต่อ ต่อเสถียรภาพต่อการทำงานของไมโครคอนโทรลเลอร์เป็นอย่างมาก ถ้าเราสามารถจัดการกับสัญญาณรบกวน ก็หมายถึงระบบจะมีเสถียรภาพมากขึ้น เราสามารถจัดการกับสัญญาณรบกวนได้ดังนี้

  1. ใช้แหล่งจ่ายไฟที่มีประสิทธิภาพ จ่ายกระแสให้กับโหลดได้พอ และไม่เกิดความร้อนมาก
  2. ติดตั้งตัวเก็บประจุบายพาส ตัวเก็บประจุบาสพาสช่วยในการลดอิมพิแดนซ์ของสาย และยังช่วยลดสัญญาณรบกานจากภายในและภายนอกเข้ามารบกวน โดยเฉพาะวงจรลอจิกที่ทำงานด้วยความถี่สูงๆ การต่อตัวเก็บประจุบาสพาสสามารถทำได้ดังนี้
    - ต่อตัวเก็บประจุบาสพาสที่แหล่งจ่ายไฟ โดยทั่วไปแล้วจะใช้ตัวเก็บประจุชนิดแทนทาลัมขนาดความจุจะอยู่ทีไมโครฟารัดจนถึงหลาย10ไมโครฟารัด
    - ต่อตัวเก็บประจุบาสพาสระหว่างไอซีมักใช้ตัวเก็บประจุแบบเซรามิกขนาด 0.01uF - 0.1uF
    - ต่อตัวเก็บประจุบาสพาสที่ขาจ่ายไฟของไอซี โดยพยายามติดตั้งให้ใกล้กับขาไอซีมากที่สุดเท่าที่จะทำได้ และต้องตัดขาตัวเก็บประจุให้สั้นที่สุด เมื่อมีสัญญาณความที่สูงที่เกิดจากการทำงานของไอซีตัวเก็บประจุจะช่วยลดลูปความถี่สูงให้ไหลผ่านตัวเก็บประจุแทน แต่มีข้อแม้ว่าต้องเลือกความจุให้สอดคล้องกับช่วงความถี่ของสัญญาณรบกวนด้วย ไม่งั้นค่า Lกับ C ในวงจรจะก่อให้เกิดเรโซแนนต์ นอกจากช่วยลดสัญญาณความถี่สูงแล้ว ยังสามารถลดสัญญาณรบกวนความถี่ต่ำได้อีกด้วย

    การต่อ C Decoupling ที่ผิด เนื่องจากการวาง C ที่ไกลจาก MCU มากทำให้เกิด High Current Loop ไปยัง Power Plane และ Ground Plane ส่งผลไปยังอุปกรณ์อื่นๆ ที่อยู่บนแผงวงจร

    การต่อ C Decoupling ที่ถูกต้อง สังเกตุดูว่า High Current Loop ไม่ส่งผลไปยัง Power Plane และ Ground Plane

    การต่อวงจร decoupling ที่ดีขึ้น โดยการเพิ่ม L มาอนุกรมระหว่าง VCC และ Power Plane เพื่อลด switching noise การต่อแบบนี้ต้องมั่นใจว่าค่าของ L น้อยพอ ที่จะไม่ทำให้เกิด ไฟ(DC) คร่อม L

    Package ของ MCU ชนิด DIP จะมีขา VCC และ GND อยู่ที่มุมของ IC ซึ่งจะทำให้เกิด Loop ที่กว้างขึ้น เราสามารถเลือก Package แบบ TQFP ซึ่งจะมีขา VCC และ GND อยู่ใกล้กัน ทำให้ Loop เป็นวงแคบ
     
  3. การออกแบบแผ่นวงจร มีอยู่หลายคนที่ใช้สาย wire แทนการกัดแผ่น pcb สายสัญญาณเหล่านั้นก่อให้เกิดสัญญาณรบกวนได้บางทีบัดกรีไม่แน่ หรือใช้สายที่มีพื้นที่หน้าตัดน้อยไป หรือการออกแบบลายวงจร ให้มีลักษณะเป็นเส้นตรงขนานกัน จะทำให้เกิดค่าความจุแฝง ซึ่งล้วนก่อให้เกิดสัญญาณรบกวนได้ทั้งสิ้น
  4. แยกโซน Analog กับ Digital และ GND Analog กับ GND Digital ออกจากกัน เพื่อที่ไม่ให้สัญญาณ Analog และสัญญาณ Digital มารบกวนกัน ให้ใช้ส่งสัญญาณผ่านทาง Opto coupler แทนเช่นเบอร์ PC817
     
     
  5. Oscillator เป็นส่วนหนึ่งที่มีความสำคัญเป็นอย่างมาก เพราะ MCU ทำงานสัมพันธ์กับ Clock ถ้า Clock มีสัญญาณเพี้ยนย่อมมีผลต่อการทำงาน โดย MCU ที่ทำงานด้วย Clock ที่สูงจะเกิดสัญญาณรบกวนได้ง่ายกว่า MCU ที่ทำงานด้วย Clock ความถี่ต่ำ
     
     
    ดังนั้นขารับสัญญาณ Clock (XTAL1, XTAL2) จึงไวต่อ ESD(electrostatic discharge) มากกว่าขา I/O ทั่วไป

    -เพื่อที่จะหลีกเลี่ยงปัญหาสามารถทำได้ดังนี้

    1. ให้ Loop ของ Oscillator เล็กที่สุดเท่าที่จะทำได้ ให้วาง crystal/resonator ให้ใกล้กับขาของ MCU มากที่สุด ให้ต่อ C decoupling จากขาของ crystal ลง GND plane และ GND plane จะต้องต่อเข้ากับ ขา GND ของ MCU

    2. ในกรณีที่รับสัญญาณ Clock มาจากภายนอก ให้ระวังในกรณีที่สายสัญญาณยาวเกินไป เพราะสายที่ยาวเกินไปจะทำตัวเป็นเสาอากาศรับสัญญาณรบกวนเข้ามา (antenna for transients)

     

References:

AVR040: EMC Design Considerations

Hardware and firmware noise reduction techniques

 


Copyright © 2003 Aon micro. All rights reserved

E-mail:[email protected]

 

 

 

Hosted by www.Geocities.ws

1