Jak dowiedzieć się, czy moja deska zbliża się do końca życia?

12

Mam uno, którego używam od 3 lat. Będę go używał ponownie w dość krytycznym projekcie, w którym awaria po stronie płyty może być dość droga i niebezpieczna. Chciałbym więc mieć pewność, że plansza nie zbliża się do końca życia lub że w najbliższym czasie ulegnie awarii. Czy jest jakiś niezawodny sposób, aby dowiedzieć się, jak długo płyta będzie działać bez awarii lub obniżenia wydajności?

asheeshr
źródło
„awaria po stronie płyty może być dość droga i niebezpieczna”. Określ drogie i zdefiniuj niebezpieczne. Może Arduino nie jest najlepszym rozwiązaniem dla twojej aplikacji, może potrzebujesz zaprojektować w bezpieczny mechanizm.
jippie
@jippie Pomyśl o małych UAV i / lub innych małych i średnich robotach.
asheeshr

Odpowiedzi:

8

Niestety, nie ma zbyt dużego sposobu na określenie „zużycia” w kontekście elektroniki półprzewodnikowej.

Prawdopodobnie najbardziej prawdopodobne są awarie elektrolityczne i złącza.


Po pierwsze, jeśli używasz procesora ATmega do czegoś, co może zranić kogoś, SKONTAKTUJ SIĘ Z ATMELEM I ROZMÓW O ŚRODKACH BEZPIECZEŃSTWA . Procesor ATmega używany w większości modeli arduino nie jest przystosowany do użycia w takich sytuacjach.

W KAŻDEJ karcie danych:

Produkty Atmel nie są przeznaczone, autoryzowane ani gwarantowane do stosowania jako komponenty w aplikacjach przeznaczonych do podtrzymywania lub podtrzymywania życia.

Teraz, realistycznie, jest to prawdopodobnie głównie repelent prawnika, ale nadal powinieneś podjąć odpowiednie środki ostrożności.

Naprawdę, chociaż na zwykłej płycie arduino nie ma niczego, co naprawdę by się zużywało poza złączami, dlaczego próbujesz zaoszczędzić 30 USD potencjalnie ogromnym kosztem? Po prostu kup nową tablicę.

Gorąco polecam również wybranie płyty z SMT ATmega328P, ponieważ usuwa to kontakty gniazda IC z listy problemów. Jeśli to możliwe, usuń również bolce i bezpośrednio przylutuj przewody do płytki. Spróbuj zminimalizować złącza, ponieważ są one częstymi punktami awarii.

Connor Wolf
źródło
4

Jedną z części Arduino, która z czasem może stać się zawodna, jest jej pamięć. Istnieją trzy pule pamięci w mikrokontrolerze używanym na płytach Arduino opartych na AVR:

  • Pamięć flash (przestrzeń programu) to miejsce, w którym przechowywany jest szkic Arduino.
  • SRAM (statyczna pamięć o swobodnym dostępie) to miejsce, w którym szkic tworzy i manipuluje zmiennymi podczas działania.
  • EEPROM to przestrzeń pamięci, której programiści mogą używać do przechowywania informacji długoterminowych.

Pamięć jest jedną z części płyty, którą można sprawdzić i zweryfikować, a tym samym ocenić pod kątem niezawodności / zdrowia. Bardzo podstawowym sposobem sprawdzenia pamięci byłoby zapisanie określonego 8-bitowego wzorca (znaku bajtowego) nad każdym adresem w pamięci, a następnie odczytanie wartości obecnej z każdego adresu. Jeśli zapisana wartość jest zgodna z odczytaną wartością, to ten konkretny 8-bitowy blok w pamięci działa obecnie poprawnie.

Zużycie w pamięci ROM zwykle występuje w układzie blokowym, tzn. N * 8-bitowe bloki ulegają degradacji w miarę upływu czasu. Tak więc, w przypadku 2-bajtowego układu ROM, stan układu można oszacować, zapisując i odczytując każdy bajt w układzie oraz obliczając procent poprawnie działających bloków. Jeśli odsetek nieudanych bloków jest znaczący (15% -20%), oznacza to, że pamięć prawdopodobnie wkrótce ulegnie awarii.

Kod testowy można zapisać przy użyciu osobnych metod dla każdej z sekcji pamięci.

SRAM

Wszelkie zmienne zadeklarowane statycznie lub dynamicznie są przydzielane w pamięci SRAM. Możemy więc zadeklarować dużą tablicę znaków (~ 2000) i wypełnić każdy element 255 (wszystkie bity 1). Następnie możemy spróbować odczytać każdy z tych elementów i sprawdzić, czy odczytywana wartość to 255.

EEPROM

EEPROM może być obsługiwany za pomocą biblioteki EEPROM . Biblioteka udostępnia funkcje do odczytu i zapisu z określonych lokalizacji w pamięci EEPROM. Tak więc wszystkie adresy pamięci można przetestować, po prostu zapętlając całą przestrzeń pamięci. Ta operacja wymaga 500 zapisów i odczytów.

W zależności od użycia karty, pamięć EEPROM najprawdopodobniej ulegnie awarii jako pierwsza, ale nie jest krytyczna dla działania karty.

Lampa błyskowa

Dane mogą być przechowywane w pamięci flash za pomocą PROGMEMdyrektywy. Podobnie do SRAM, tutaj można zadeklarować i zainicjować dużą tablicę. Następnie wartości można odczytać i sprawdzić.

asheeshr
źródło
Koncentruje się to tylko na mikrokontrolerze, który prawdopodobnie nie jest najmniej niezawodnym bitem na płycie. Lampa błyskowa jest oceniana na 10 000 cykli - jest to bardzo trudne do osiągnięcia. Test udowodni tylko, że teraz działa, a nie po włożeniu do aplikacji. Z pewnością łatwiej jest po prostu sprawdzić pamięć programu po zaprogramowaniu lub pamięć EEPROM?
Cybergibbons
Poddałbym w wątpliwość zdanie „Jedną z części Arduino, która z czasem może stać się zawodna, jest pamięć”. - lampa błyskowa może wykonać 10 000 cykli, EEPROM 100 000 cykli. To dużo pisania.
Cybergibbons
@Cybergibbons Aplikacje intensywnie korzystające z pamięci mogą kończyć ponad 100 zapisów na minutę. Niezbyt częste, ale możliwe przy użyciu dużej liczby czujników. Test dałby nam procent pamięci, która działa poprawnie. Nie mam konkretnej wiedzy na temat układów ROM w Arduino, ale wiele ROM-ów ma zdolność rozprowadzania cykli odczytu i zapisu w całym układzie. Skutkuje to tym, że nawet jeśli niektóre miejsca pamięci ulegają degradacji, jest to znak, że cały układ wkrótce ulegnie degradacji. Nawet jeśli cykle R / W nie zostaną rozłożone, nawet wtedy, gdy pewne obszary zaczną się zawodzić, to jest znak, że ..
asheeshr
co najmniej części chipu uległy znacznemu zużyciu, co powoduje, że chip jest częściowo zawodny. W obu przypadkach ocena całego dostępnego zakresu pamięci jest dość niezawodną metodą ustalenia obecnego stanu układu, co może wskazywać na awarię w najbliższej przyszłości . Tak, to nie powie mi, czy chip zawiedzie w następnym projekcie, ale w przypadku niebezpiecznej lub kosztownej aplikacji z pewnością nie uruchomiłbym chipa, który ma zwiększone prawdopodobieństwo awarii.
asheeshr
Jeśli piszesz do EEPROM lub flashujesz setki razy na minutę, spoglądasz na życie poniżej jednego dnia. To tylko niewłaściwe użycie. ATmega nie wyrównuje zużycia.
Cybergibbons
-4

Edytuj: Ludzie, którzy głosowali na moją odpowiedź, och, pospolici, nie bądźcie zbyt głupi! do tego trzeba być elektronem i przejść przez sam obwód, aby sprawdzić, czy wszystko jest w porządku, czy nie :)

Podłącz płytkę do portu USB w komputerze i sprawdź, czy świeci zielona dioda LED na płycie. Standardowe płyty Arduino (Uno, Duemilanove i Mega) mają zielony wskaźnik zasilania LED umieszczony w pobliżu przełącznika resetowania.

Pomarańczowa dioda LED w pobliżu środka płyty (oznaczona jako „Pin 13 LED” na obrazku poniżej) powinna migać i gasnąć po włączeniu zasilania płyty (płyty pochodzą z fabrycznie załadowanego oprogramowania do flashowania diody LED - wystarczy sprawdzić, czy tablica działa).

wprowadź opis zdjęcia tutaj

Jeśli dioda LED zasilania nie świeci się, gdy płyta jest podłączona do komputera, prawdopodobnie płyta nie jest zasilana.

Migająca dioda LED (podłączona do wyjścia cyfrowego styku 13) jest kontrolowana przez kod działający na płycie (nowe płyty są wstępnie załadowane szkicem przykładowym Blink). Jeśli dioda LED styku 13 miga, szkic działa poprawnie, co oznacza, że ​​układ na płycie działa. Jeśli zielona dioda LED zasilania jest włączona, ale dioda LED styku 13 nie miga, być może kod fabryczny nie znajduje się na chipie. Jeśli nie używasz standardowej płyty, może ona nie mieć wbudowanej diody LED na pinie 13, więc sprawdź dokumentację, aby uzyskać szczegółowe informacje na temat swojej płyty.

Przewodniki online dotyczące rozpoczynania pracy z Arduino są dostępne w systemie Windows , Mac OS X i Linux .

Hardik Thaker
źródło
2
Pytanie brzmi, jak sprawdzić, czy tablica zbliża się do awarii , a nie, jeśli już się zepsuła .
asheeshr
@AsheeshR: Och, pospolite, nie bądźcie zbyt głupi! do tego trzeba być elektronem i przejść przez sam obwód, aby sprawdzić, czy wszystko jest w porządku, czy nie :)
Hardik Thaker
2
@HardikThaker Dlaczego nie podasz tego w odpowiedzi? Przypuszczam, że byłoby lepiej. Ponadto, jeśli nie chcesz odrzucić swojej odpowiedzi (jest to przydatne), zawsze możesz zadać właściwe pytanie i sam na nie odpowiedzieć. Który jest zwykle wykonywane przez ekspertów na adres najczęściej zadawane pytania, jak tak .
Ricardo
@Ricardo: Roger that! Dzięki stary ! Będę o tym pamiętać: P następnym razem powodzenia dla mnie;) -4 i liczenie: P
Hardik Thaker