ฉันจะรู้ได้อย่างไรว่าบอร์ดของฉันใกล้จะถึงจุดจบของชีวิต?


12

ฉันมี uno ที่ฉันใช้มา 3 ปีแล้ว ฉันจะใช้มันอีกครั้งในโครงการที่ค่อนข้างสำคัญซึ่งความล้มเหลวในส่วนของบอร์ดอาจค่อนข้างแพงและอันตราย ดังนั้นฉันต้องการให้แน่ใจว่ากระดานไม่ใกล้จะถึงจุดจบของชีวิตหรือจะล้มเหลวทุกเวลาในไม่ช้า มีวิธีใดที่เชื่อถือได้ในการพิจารณาว่าบอร์ดจะใช้งานได้นานเท่าใดโดยไม่ทำให้ประสิทธิภาพลดลงหรือไม่


"ความล้มเหลวในส่วนของคณะกรรมการอาจค่อนข้างแพงและอันตราย" กำหนดราคาแพงและกำหนดอันตราย บางที Arduino อาจไม่เหมาะที่สุดสำหรับแอปพลิเคชันของคุณบางทีคุณอาจต้องออกแบบในกลไกที่ไม่ปลอดภัย
jippie

@jippie คิดว่า UAV ขนาดเล็กและ / หรือหุ่นยนต์ขนาดเล็กถึงขนาดกลางอื่น ๆ
asheeshr

คำตอบ:


8

น่าเสียดายที่ไม่มีวิธีการกำหนด "การสึกหรอ" ในบริบทของอุปกรณ์อิเล็กทรอนิกส์โซลิดสเตต

สิ่งที่น่าจะเป็นไปได้มากที่สุดคือตัวเก็บประจุด้วยไฟฟ้าและตัวเชื่อมต่อ


ขั้นแรกหากคุณใช้ ATMEGA CPU สำหรับบางสิ่งบางอย่างที่อาจจะทำร้ายคนติดต่อ ATMEL และพูดคุยเกี่ยวระมัดระวังความปลอดภัย ซีพียู ATmega ที่ใช้ในรุ่น arduino ส่วนใหญ่นั้นไม่ได้รับการจัดระดับให้ใช้ในสถานการณ์เช่นนี้

ในทุกแผ่นข้อมูล:

ผลิตภัณฑ์ของ Atmel ไม่ได้มีวัตถุประสงค์มีอำนาจหรือรับประกันสำหรับใช้เป็นส่วนประกอบในแอปพลิเคชันที่มีวัตถุประสงค์เพื่อสนับสนุนหรือค้ำจุนชีวิต

ตอนนี้แนบเนียนนี้อาจเป็นส่วนใหญ่ทนายความขับไล่ แต่คุณยังคงต้องใช้ความระมัดระวังที่เหมาะสม

จริงๆแล้วในขณะที่ไม่มีอะไรในบอร์ด Arduino ทั่วไปที่เสื่อมสภาพจริงๆยกเว้นคอนเน็กเตอร์ทำไมคุณถึงพยายามประหยัดเงิน 30 เหรียญด้วยค่าใช้จ่ายมหาศาล เพียงซื้อบอร์ดใหม่

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


4

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

  • หน่วยความจำแฟลช (พื้นที่โปรแกรม) เป็นที่เก็บร่าง Arduino
  • SRAM (หน่วยความจำเข้าถึงโดยสุ่มแบบคงที่) เป็นที่ซึ่งร่างสร้างและปรับเปลี่ยนตัวแปรเมื่อมันทำงาน
  • EEPROM เป็นพื้นที่หน่วยความจำที่โปรแกรมเมอร์สามารถใช้เพื่อเก็บข้อมูลระยะยาว

หน่วยความจำเป็นส่วนหนึ่งของบอร์ดที่สามารถตรวจสอบและตรวจสอบและประเมินความน่าเชื่อถือ / สุขภาพ วิธีพื้นฐานในการตรวจสอบหน่วยความจำคือการเขียนรูปแบบ 8 บิต (อักขระไบต์) บนทุกแอดเดรสในหน่วยความจำแล้วอ่านค่าปัจจุบันจากทุกแอดเดรส หากค่าที่ถูกเขียนตรงกับค่าที่อ่านดังนั้นบล็อก 8 บิตเฉพาะในหน่วยความจำจะทำงานอย่างถูกต้องในขณะนี้

การสึกหรอในหน่วยความจำ ROM มักจะเกิดขึ้นในรูปแบบบล็อคพอยต์นั่นคือบล็อก n * 8- บิตจะลดลงตามเวลา ดังนั้นสำหรับชิป ROM 2K ไบต์ความแข็งแรงของชิปสามารถประเมินได้ด้วยการเขียนและอ่านจากทุก ๆ ไบต์บนชิปและคำนวณเปอร์เซ็นต์ของบล็อกการทำงานที่ถูกต้อง หากเปอร์เซ็นต์ของบล็อกที่ล้มเหลวมีความสำคัญ (15% -20%) นั่นหมายความว่าหน่วยความจำมีแนวโน้มที่จะล้มเหลวในไม่ช้า

รหัสทดสอบสามารถเขียนได้โดยใช้วิธีการแยกต่างหากสำหรับแต่ละส่วนหน่วยความจำ

SRAM

ตัวแปรใด ๆ ที่ประกาศแบบคงที่หรือแบบไดนามิกจะถูกจัดสรรบน SRAM ดังนั้นเราสามารถประกาศอาร์เรย์อักขระขนาดใหญ่ (~ 2000) และเติมทุกองค์ประกอบด้วย 255 (บิตทั้งหมด 1) จากนั้นเราสามารถลองอ่านองค์ประกอบเหล่านั้นแต่ละรายการและดูว่าค่าที่อ่านเป็น 255 จริงหรือไม่

EEPROM

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

ขึ้นอยู่กับการใช้งานบอร์ด EEPROM มักจะล้มเหลวเป็นอันดับแรก แต่ไม่สำคัญต่อการทำงานของบอร์ด

แฟลช

ข้อมูลสามารถเก็บไว้ในหน่วยความจำแฟลชโดยใช้PROGMEMคำสั่ง เช่นเดียวกับ SRAM อาร์เรย์ขนาดใหญ่สามารถประกาศและเริ่มต้นได้ที่นี่ จากนั้นค่าสามารถอ่านและตรวจสอบได้


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

ฉันถามวลี "หนึ่งในส่วนของ Arduino ที่มีแนวโน้มว่าจะไม่น่าเชื่อถือในช่วงเวลาหนึ่งคือความทรงจำ" - แฟลชสามารถหมุนได้ 10k รอบ, EEPROM 100k รอบ นั่นเป็นงานเขียนมากมาย
Cybergibbons

@Cybergibbons แอปพลิเคชันที่ใช้หน่วยความจำมากสามารถจบลงด้วยการเขียนมากกว่า 100 ครั้งต่อนาที ไม่ธรรมดา แต่เป็นไปได้เมื่อใช้เซ็นเซอร์จำนวนมาก การทดสอบจะให้เปอร์เซ็นต์ของหน่วยความจำที่ทำงานอย่างถูกต้อง ฉันไม่มีความรู้เฉพาะเกี่ยวกับชิป ROM ใน Arduino แต่ ROM หลายตัวมีความสามารถในการแพร่กระจายการอ่านและเขียนรอบชิป ผลของสิ่งนี้คือเมื่อแม้บางตำแหน่งหน่วยความจำลดลงก็เป็นสัญญาณว่าชิปทั้งหมดจะลดลงเร็ว ๆ นี้ แม้ว่ารอบการ R / W จะไม่กระจายแม้ว่านั้นบางพื้นที่เริ่มล้มเหลวก็เป็นสัญญาณว่า ..
asheeshr

ชิ้นส่วน atleast ของชิปได้ผ่านการสึกหรอที่สำคัญทำให้ชิปไม่น่าเชื่อถือบางส่วน ในทั้งสองกรณีการประเมินทั้งช่วงของหน่วยความจำที่ค่อนข้างเป็นวิธีการที่เชื่อถือที่จะคิดออกสถานะปัจจุบันของชิปที่สามารถให้ข้อบ่งชี้ของความล้มเหลวในอนาคตอันใกล้ ใช่นี่จะไม่บอกฉันว่าชิปจะล้มเหลวในโครงการต่อไป แต่ในกรณีของแอปพลิเคชันที่อันตรายหรือมีราคาแพง
asheeshr

หากคุณกำลังเขียนถึง EEPROM หรือแฟลชหลายร้อยครั้งต่อนาทีคุณกำลังมองหาที่อายุน้อยกว่าหนึ่งวัน นั่นเป็นเพียงการใช้ที่ไม่เหมาะสม ไม่มีการปรับระดับการสึกหรอใน ATmega
Cybergibbons

-4

แก้ไข:คนที่ลงคะแนนให้คำตอบของฉัน, Ohh ทั่วไปไม่โง่มากเกินไป! เพราะคุณจะต้องเป็นอิเล็กตรอนและผ่านวงจรตัวเองเพื่อตรวจสอบทุกอย่างก็โอเคหรือไม่ :)

เสียบบอร์ดเข้ากับพอร์ต USB บนคอมพิวเตอร์ของคุณและตรวจสอบว่าไฟแสดงสถานะ LED สีเขียวบนบอร์ดสว่างขึ้น บอร์ด Arduino มาตรฐาน (Uno, Duemilanove และ Mega) มีไฟแสดงสถานะ LED สีเขียวอยู่ใกล้กับสวิตช์รีเซ็ต

ไฟ LED สีส้มใกล้กับกึ่งกลางของบอร์ด (มีข้อความว่า“ Pin 13 LED” ในภาพด้านล่าง) ควรเปิดและปิดเมื่อเปิดบอร์ดขึ้นมา (บอร์ดมาจากโรงงานที่ติดตั้งซอฟต์แวร์มาพร้อมแฟลช LED เป็นตัวตรวจสอบง่ายๆว่า บอร์ดทำงาน)

ป้อนคำอธิบายรูปภาพที่นี่

หากไฟ LED แสดงการทำงานไม่ติดเมื่อเชื่อมต่อบอร์ดกับคอมพิวเตอร์ของคุณแสดงว่าบอร์ดไม่ได้รับพลังงาน

LED กระพริบ (เชื่อมต่อกับขาออกดิจิตอล 13) จะถูกควบคุมโดยรหัสที่ทำงานบนบอร์ด (บอร์ดใหม่จะโหลดไว้ล่วงหน้าด้วยร่างตัวอย่าง Blink) หากไฟ LED 13 ดวงกะพริบแสดงว่าร่างทำงานอย่างถูกต้องซึ่งหมายความว่าชิปบนบอร์ดกำลังทำงาน หากไฟ LED สีเขียวติดสว่าง แต่ไฟ LED แสดงสถานะ pin 13 ไม่กะพริบแสดงว่ารหัสโรงงานไม่ได้อยู่บนชิป หากคุณไม่ได้ใช้บอร์ดมาตรฐานอาจไม่มี LED ในตัวที่ขา 13 ดังนั้นให้ตรวจสอบรายละเอียดเกี่ยวกับบอร์ดของคุณจากเอกสารประกอบ

คู่มือออนไลน์สำหรับการเริ่มต้นกับ Arduino มีที่สำหรับของ WindowsสำหรับMac OS XและLinux


2
คำถามคือวิธีการตรวจสอบว่าคณะกรรมการจะใกล้ความล้มเหลวไม่ได้ถ้ามันล้มเหลวแล้ว
asheeshr

@SheeshR: Ohh ทั่วไปไม่โง่มากเกินไป! การที่คุณจะต้องมีอิเล็กตรอนและไปผ่านวงจรของตัวเองในการตรวจสอบทุกอย่าง ok หรือไม่ :)
Hardik Thaker

2
@ HardikThaker ทำไมคุณไม่ลองตอบคำถามแทนล่ะ? มันคงจะดีกว่านี้ฉันคิดว่า นอกจากนี้หากคุณไม่ต้องการทิ้งคำตอบ (มีประโยชน์) คุณสามารถถามคำถามที่ถูกต้องและตอบคำถามด้วยตัวเองได้ตลอดเวลา ที่มักจะทำโดยผู้เชี่ยวชาญไปยังที่อยู่คำถามที่พบบ่อยเช่นดังนั้น
Ricardo

@ Ricardo: roger ที่! ขอบคุณเพื่อน ! ฉันจะเก็บเรื่องนี้ไว้ในใจ: P ขอให้โชคดีในครั้งต่อไปสำหรับฉัน;) -4 และการนับ: P
Hardik Thaker
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.