ปัญหา Noise ใน ATMEGA32

ผมเป็นคนที่ชอบใช้ MCU หลายตระกูล มีอยู่งานนึงอยากจะลองใช้ ATMEGA32 เห็นว่าราคาไม่แพง Feature ก็ใช้ได้เลย งานนี้เริ่มทำในปริ๊นอเนกประสงค์ แล้วก็ทำ Schematic & PCB ควบคู่กันไปด้วย ก็เขียนโปรแกรมไปได้ครึ่งทางและ เริ่มสังเกตุว่าเวลาเอามือเข้าใกล้ตัว ATMEGA32 มันจะ Reset ไปเลย

ในใจคิดว่ามันไม่น่าจะอ่อนแอขนาดนั้น C 0.1uF ก็ต่อครบทุกขาของ VCC ขา Reset ก็ Pull up ไว้ ที่เคยทำมาขนาดสถาปัตยกรรมเก่าๆ อย่าง MCS-51 ยังไม่ reset เลย คราวนี้ก็ลองหาสาเหตุ ค่อยๆเอานิ้วแหย่ไปที่ IC ดูว่าขาไหนที่มัน Sensitive กับนิ้วเรา ค่อยๆไล่ไปก็เจอว่ามันมีอยู่ 3-4 ขาที่เป็นปัญหา

เลยย้อนกลับไปดู Code ขานั้น set เป็น input ไว้แถมไม่ได้ Pull up, pull down ไว้ เลยลอง pull up แทนแล้วมาเทสใหม่ อาการ reset ก็หายไป เลยเป็นข้อสรุปได้ว่า

ขาไหนไม่ได้ใช้อย่าปล่อยลอยไว้(float) มันจะเป็นอินพุตที่รับ noise เข้ามา ในหลายๆ datasheet จะบอกว่าให้ต่อขาที่ไม่ได้ใช้ลง GND เลย