Как мне узнать, приближается ли моя доска к концу жизни?

12

У меня есть УНО, которым я пользуюсь уже 3 года. Я буду использовать его снова в довольно критическом проекте, в котором сбой со стороны платы может быть довольно дорогим и опасным. Итак, я хотел бы быть уверен, что плата не подходит к концу или скоро выйдет из строя. Есть ли надежный способ выяснить, как долго плата будет работать без сбоев или снижения производительности?

asheeshr
источник
«сбой со стороны платы может быть довольно дорогим и опасным». Определите дорогое и определите опасное. Возможно, Arduino не совсем подходит для вашего приложения, может быть, вам нужно разработать механизм, обеспечивающий отказоустойчивость.
Джиппи
@jippie Подумайте о небольших беспилотниках и / или других маленьких и средних роботах.
asheeshr

Ответы:

8

К сожалению, нет особого способа действительно определить «износ» в контексте твердотельной электроники.

Вероятно, наиболее вероятные неисправности - это электролитические конденсаторы и разъемы.


Во-первых, если вы используете процессор ATmega для чего-то, что может кого-то травмировать, свяжитесь с банкоматом и поговорите о мерах предосторожности . Процессор ATmega, используемый в большинстве моделей Arduino, не предназначен для использования в таких ситуациях.

В КАЖДОЙ таблице данных:

Продукты Atmel не предназначены, не разрешены и не гарантированы для использования в качестве компонентов в приложениях, предназначенных для поддержки или поддержания жизни.

Теперь, на самом деле, это, вероятно, в основном репелленты адвоката, но вы все равно должны принять соответствующие меры предосторожности.

Действительно, хотя на обычной плате Arduino нет ничего, что действительно изнашивается, кроме разъемов, почему вы пытаетесь сэкономить 30 долларов при потенциально огромных затратах? Просто купите новую доску.

Я также настоятельно рекомендую вам выбрать плату с SMT ATmega328P, поскольку она удаляет контакты гнезда микросхемы из списка проблем. Если возможно, также удалите штыревые разъемы и припаяйте провода непосредственно к плате. Попробуйте свести к минимуму разъемы, так как они являются частыми точками отказа.

Коннор Вольф
источник
4

Одним из разделов Arduino, который, вероятно, со временем станет ненадежным, является его память. В микроконтроллере, используемом на платах Arduino на основе AVR, есть три пула памяти :

  • Флэш-память (пространство программы), где хранится эскиз Arduino.
  • SRAM (статическая память с произвольным доступом) - это место, где эскиз создает переменные при работе и управляет ими.
  • EEPROM - это пространство памяти, которое программисты могут использовать для хранения долгосрочной информации.

Память - это одна часть платы, которую можно проверять и проверять, и таким образом оценивать на надежность / работоспособность. Самый простой способ проверки памяти - записать определенный 8-битный шаблон (байтовый символ) по каждому адресу в памяти, а затем прочитать значение, имеющееся у каждого адреса. Если записанное значение совпадает со считываемым значением, то данный конкретный 8-битный блок в памяти работает правильно в настоящий момент.

Износ в ПЗУ обычно происходит по блочному шаблону, то есть n * 8-битные блоки со временем ухудшаются. Таким образом, для микросхемы ПЗУ объемом 2 Кбайт состояние микросхемы можно оценить путем записи и чтения каждого байта в микросхеме и вычисления процента правильно функционирующих блоков. Если процент неудачных блоков значительный (15% -20%), это означает, что память, скорее всего, скоро выйдет из строя.

Тестовый код может быть написан с использованием отдельных методов для каждого из разделов памяти.

SRAM

Любые переменные, объявленные статически или динамически, размещаются в SRAM. Таким образом, мы можем объявить большой массив символов (~ 2000) и заполнить каждый элемент 255 (все биты 1). Затем мы можем попытаться прочитать каждый из этих элементов и посмотреть, действительно ли читаемое значение 255.

EEPROM

ЭСППЗУ можно манипулировать с помощью библиотеки ЭСППЗУ . Библиотека предоставляет функции для чтения и записи из определенных мест в EEPROM. Таким образом, все адреса памяти могут быть проверены простым циклом по всему пространству памяти. Эта операция потребует 500 операций записи и чтения.

В зависимости от использования платы, EEPROM, скорее всего, потерпит неудачу первым, но это не критично для работы платы.

вспышка

Данные могут быть сохранены на флэш-памяти с помощью PROGMEMдирективы. Подобно SRAM, здесь можно объявить и инициализировать большой массив. Затем значения можно прочитать и проверить.

asheeshr
источник
Это концентрируется только на микроконтроллере, который вряд ли будет наименее надежным битом на плате. Вспышка рассчитана на 10 тыс. Циклов - это очень трудно достичь. Кроме того, тест будет только доказать, что он работает сейчас, а не когда помещен в приложение. Гораздо проще, конечно, просто проверить память программы после программирования или EEPROM?
Cybergibbons
Я бы поставил под сомнение фразу «Один из разделов Arduino, который со временем может стать ненадежным, - это его память». - вспышка может делать 10 000 циклов, EEPROM 100 000 циклов. Это много писать.
Cybergibbons
@Cybergibbons Приложения, интенсивно использующие память, могут в конечном итоге выполнять более 100 операций записи в минуту. Не часто, но возможно при использовании большого количества датчиков. Тест даст нам процент памяти, которая работает правильно. У меня нет конкретных знаний о чипах ПЗУ на Arduino, но многие ПЗУ имеют возможность распределять циклы чтения и записи по всему чипу. Результатом этого является то, что когда даже некоторые области памяти ухудшаются, это признак того, что весь чип скоро ухудшится. Даже если циклы R / W не распространяются, даже тогда, если некоторые области начинают выходить из строя, это признак того, что ..
asheeshr
по крайней мере части чипа претерпели значительный износ, что делает чип частично ненадежным. В любом случае, оценка всего диапазона доступной памяти является достаточно надежным методом для определения текущего состояния чипа, что может указывать на сбой в ближайшем будущем . Да, это не скажет мне, если чип выйдет из строя в следующем проекте, но в случае опасного или дорогого приложения, я, конечно, не стал бы использовать чип, который имеет повышенную вероятность отказа.
asheeshr
Если вы пишете в EEPROM или мигаете сотни раз в минуту, вы смотрите на время жизни менее одного дня. Это просто неуместное использование. В ATmega нет выравнивания износа.
Cybergibbons
-4

Редактировать: Люди, которые проголосовали за мой ответ, ооо, не будь слишком глупым! для этого нужно быть электроном и пройти саму схему, чтобы проверить, все в порядке или нет :)

Подключите плату к USB-порту компьютера и проверьте, светится ли зеленый светодиодный индикатор питания на плате. Стандартные платы Arduino (Uno, Duemilanove и Mega) имеют зеленый светодиодный индикатор питания, расположенный рядом с переключателем сброса.

Оранжевый светодиод рядом с центром платы (помеченный «Pin 13 LED» на изображении ниже) должен включаться и выключаться при включении питания платы (платы поставляются с завода, на котором предварительно установлено программное обеспечение, чтобы мигать светодиод как простая проверка того, что плата работает).

введите описание изображения здесь

Если индикатор питания не горит, когда плата подключена к вашему компьютеру, возможно, плата не получает питание.

Мигающий светодиод (подключенный к цифровому выходному выводу 13) управляется кодом, запущенным на плате (новые платы предварительно загружены с примером скриншота Blink). Если светодиод контакта 13 мигает, эскиз работает правильно, что означает, что микросхема на плате работает. Если горит зеленый индикатор питания, но индикатор контакта 13 не мигает, возможно, заводской код отсутствует на чипе. Если вы не используете стандартную плату, у нее может не быть встроенного светодиода на контакте 13, поэтому обратитесь к документации для получения подробной информации о вашей плате.

Онлайн-руководства по началу работы с Arduino доступны для Windows , Mac OS X и Linux .

Хардик Такер
источник
2
Вопрос в том, как проверить, приближается ли сбой к плате, а не к тому , если она уже вышла из строя .
asheeshr
@AsheeshR: Ооо, не слишком глупо! для этого нужно быть электроном и пройти через саму схему, чтобы проверить, все в порядке или нет :)
Hardik Thaker
2
@HardikThaker Почему бы тебе не указать это в ответе? Полагаю, было бы лучше. Кроме того, если вы не хотите отбрасывать свой ответ (это полезно), вы всегда можете задать правильный вопрос и ответить на него самостоятельно. Обычно это делается экспертами для решения часто задаваемых вопросов, например .
Рикардо
@Ricardo: Роджер это! Спасибо дружище ! Я буду иметь это в виду: P удачи в следующий раз для меня;) -4 и подсчет: P
Hardik Thaker