ปัญหา avr เอาไวเลี้ยงมาจาก ขา I/O

Started by nai102, June 26, 2016, 02:58:03 PM

Previous topic - Next topic

nai102

ผมมีบอร์ดอยู่ 2 บอร์ด สื่อสารกันโดยขา I/O
ปัญหาคือเมื่ออีกบอร์ดปิดไฟเลี้ยงไปแล้ว แต่อีกบอร์ดยังทำงานอยู่และสั่งขา I/O ที่เชื่อมกันอยู่ให้เป็น HIGH
จะทำให้อีกบอร์ดติด แต่ไม่ทำงานนะครับ มันค้างอยู่ พอเปิดไฟให้บอร์ดที่ติดค้างอยู่นั้นก็ค้างอยู่อย่างนั้น ต้องกด reset ถึงจะทำงาน
ขอคำแนะนำ แก้ไขปัญหานี้หน่อยครับ

crywolf

ถ้าไม่อยากแก้ Hardware
1. Fuse Watch-dog Timer ให้เป็น Alway On ทั้ง 2 ตัว
2. เพิ่มคำสั่ง  wdt_reset(); ไปในลูปของโปรแกรม ทั้ง 2 โปรแกรม

หมูน้อย

Quote from: nai102 on June 26, 2016, 02:58:03 PM
ผมมีบอร์ดอยู่ 2 บอร์ด สื่อสารกันโดยขา I/O
ปัญหาคือเมื่ออีกบอร์ดปิดไฟเลี้ยงไปแล้ว แต่อีกบอร์ดยังทำงานอยู่และสั่งขา I/O ที่เชื่อมกันอยู่ให้เป็น HIGH
จะทำให้อีกบอร์ดติด แต่ไม่ทำงานนะครับ มันค้างอยู่ พอเปิดไฟให้บอร์ดที่ติดค้างอยู่นั้นก็ค้างอยู่อย่างนั้น ต้องกด reset ถึงจะทำงาน
ขอคำแนะนำ แก้ไขปัญหานี้หน่อยครับ

ต่อ R pullup ไว้หรือเปล่าครับ


p_chusak

เป็นไปได้ครับ ผมเคยเจอทั้ง pic ทั้ง avr ไฟจาก logic high จะผ่าน diode ที่ port เข้าไป ที่ vcc แล้วทำให้ cpu ตัวนั้นทำงาน เพราะ cpu กินไฟน้อยมากๆ ครับ ทางแก้ ผมทำโดย ให้ logic ที่ interface เป็น LOW และ/หรือ ตั้งค่า brown-out voltage ไว้สูงๆ เลยครับ พอเปิดมา มันก็จะ reset ให้เอง