Electoday 2025

ไมโครคอนโทรลเลอร์ => AVR and Arduino => Topic started by: nai102 on June 26, 2016, 02:58:03 PM

Title: ปัญหา avr เอาไวเลี้ยงมาจาก ขา I/O
Post by: nai102 on June 26, 2016, 02:58:03 PM
ผมมีบอร์ดอยู่ 2 บอร์ด สื่อสารกันโดยขา I/O
ปัญหาคือเมื่ออีกบอร์ดปิดไฟเลี้ยงไปแล้ว แต่อีกบอร์ดยังทำงานอยู่และสั่งขา I/O ที่เชื่อมกันอยู่ให้เป็น HIGH
จะทำให้อีกบอร์ดติด แต่ไม่ทำงานนะครับ มันค้างอยู่ พอเปิดไฟให้บอร์ดที่ติดค้างอยู่นั้นก็ค้างอยู่อย่างนั้น ต้องกด reset ถึงจะทำงาน
ขอคำแนะนำ แก้ไขปัญหานี้หน่อยครับ
Title: Re: ปัญหา avr เอาไวเลี้ยงมาจาก ขา I/O
Post by: crywolf on June 28, 2016, 11:32:21 AM
ถ้าไม่อยากแก้ Hardware
1. Fuse Watch-dog Timer ให้เป็น Alway On ทั้ง 2 ตัว
2. เพิ่มคำสั่ง  wdt_reset(); ไปในลูปของโปรแกรม ทั้ง 2 โปรแกรม
Title: Re: ปัญหา avr เอาไวเลี้ยงมาจาก ขา I/O
Post by: หมูน้อย on June 28, 2016, 11:55:28 AM
Quote from: nai102 on June 26, 2016, 02:58:03 PM
ผมมีบอร์ดอยู่ 2 บอร์ด สื่อสารกันโดยขา I/O
ปัญหาคือเมื่ออีกบอร์ดปิดไฟเลี้ยงไปแล้ว แต่อีกบอร์ดยังทำงานอยู่และสั่งขา I/O ที่เชื่อมกันอยู่ให้เป็น HIGH
จะทำให้อีกบอร์ดติด แต่ไม่ทำงานนะครับ มันค้างอยู่ พอเปิดไฟให้บอร์ดที่ติดค้างอยู่นั้นก็ค้างอยู่อย่างนั้น ต้องกด reset ถึงจะทำงาน
ขอคำแนะนำ แก้ไขปัญหานี้หน่อยครับ

ต่อ R pullup ไว้หรือเปล่าครับ
Title: Re: ปัญหา avr เอาไวเลี้ยงมาจาก ขา I/O
Post by: p_chusak on July 03, 2016, 11:29:12 AM
เป็นไปได้ครับ ผมเคยเจอทั้ง pic ทั้ง avr ไฟจาก logic high จะผ่าน diode ที่ port เข้าไป ที่ vcc แล้วทำให้ cpu ตัวนั้นทำงาน เพราะ cpu กินไฟน้อยมากๆ ครับ ทางแก้ ผมทำโดย ให้ logic ที่ interface เป็น LOW และ/หรือ ตั้งค่า brown-out voltage ไว้สูงๆ เลยครับ พอเปิดมา มันก็จะ reset ให้เอง