Como faço para descobrir se minha diretoria está chegando ao fim da vida?

12

Eu tenho uma uno que uso há 3 anos. Vou usá-lo novamente em um projeto bastante crítico, no qual falhas por parte do conselho podem ser bastante caras e perigosas. Então, eu gostaria de ter certeza de que o conselho não está chegando ao fim da vida ou falhará tão cedo. Existe alguma maneira confiável de descobrir por quanto tempo a placa funcionará sem falhar ou reduzir o desempenho?

asheeshr
fonte
"falha por parte do conselho poderia ser bastante cara e perigosa". Definir caro e definir perigoso. Talvez um Arduino não seja o mais adequado para sua aplicação, talvez você precise projetar em um mecanismo à prova de falhas.
jippie
@jippie Pense em pequenos UAVs e / ou outros robôs de pequeno a médio porte.
asheeshr

Respostas:

8

Infelizmente, não há muita maneira de realmente determinar o "desgaste" no contexto da eletrônica de estado sólido.

Provavelmente, as coisas com maior probabilidade de falhar são os capacitores eletrolíticos e os conectores.


Primeiro, se você estiver usando uma CPU ATmega para algo que possa ferir alguém, entre em contato com o ATMEL e fale sobre as precauções de segurança . A CPU ATmega usada na maioria dos modelos de arduino não é classificada para uso em tais situações.

Na CADA folha de dados:

Os produtos Atmel não são destinados, autorizados ou garantidos para uso como componentes em aplicativos destinados a suportar ou manter a vida útil.

Agora, realisticamente, esta é provavelmente a maioria repelente advogado, mas você ainda deve tomar as precauções adequadas.

Realmente, embora não exista nada em uma placa comum do arduino que se desgaste, exceto os conectores, por que você está tentando economizar US $ 30 a um custo potencial enorme? Basta comprar uma nova placa.

Eu também recomendo fortemente que você escolha uma placa com um SMT ATmega328P, pois isso remove os contatos do soquete IC da lista de preocupações. Se possível, remova também os conectores de pinos e os fios de solda diretamente na placa. Tente minimizar os conectores, pois eles são pontos freqüentes de falha.

Connor Wolf
fonte
4

Uma das seções do Arduino que provavelmente não se tornará confiável ao longo do tempo é a sua memória. Existem três conjuntos de memória no microcontrolador usado nas placas Arduino baseadas em avr:

  • Memória flash (espaço do programa), é onde o esboço do Arduino é armazenado.
  • SRAM (memória estática de acesso aleatório) é onde o esboço cria e manipula variáveis ​​quando é executado.
  • EEPROM é um espaço de memória que os programadores podem usar para armazenar informações de longo prazo.

A memória é uma parte do quadro que pode ser verificada e verificada e, portanto, avaliada quanto à confiabilidade / integridade. Uma maneira muito básica de verificar a memória seria escrever um determinado padrão de 8 bits (caractere de byte) em todos os endereços da memória e, em seguida, ler o valor presente de cada endereço. Se o valor gravado corresponder ao valor lido, esse bloco específico de 8 bits na memória estará funcionando corretamente no momento.

O desgaste na memória ROM geralmente ocorre em um padrão de bloco, ou seja, blocos de n * 8 bits se degradam com o tempo. Portanto, para um chip ROM de 2K bytes, a integridade do chip pode ser estimada escrevendo e lendo todos os bytes no chip e calculando a porcentagem de blocos que funcionam corretamente. Se a porcentagem de blocos com falha for significativa (15% a 20%), isso significa que a memória provavelmente falhará em breve.

O código de teste pode ser escrito usando métodos separados para cada uma das seções da memória.

SRAM

Quaisquer variáveis ​​declaradas estática ou dinamicamente são alocadas na SRAM. Portanto, poderíamos declarar uma grande matriz de caracteres (~ 2000) e preencher todos os elementos com 255 (todos os bits 1). Em seguida, poderíamos tentar ler cada um desses elementos e verificar se o valor que está sendo lido é de fato 255.

EEPROM

A EEPROM pode ser manipulada usando a biblioteca EEPROM . A biblioteca fornece funções para ler e gravar em locais específicos na EEPROM. Portanto, todos os endereços de memória podem ser testados simplesmente fazendo um loop em todo o espaço da memória. Esta operação exigirá 500 gravações e leituras.

Dependendo do uso da placa, é mais provável que a EEPROM falhe primeiro, mas não é crítica para a operação da placa.

Instantâneo

Os dados podem ser armazenados na memória flash usando a PROGMEMdiretiva. Semelhante à SRAM, uma grande matriz pode ser declarada e inicializada aqui. Em seguida, os valores podem ser lidos e verificados.

asheeshr
fonte
Isso se concentra apenas no microcontrolador, que é altamente improvável que seja o bit menos confiável na placa. O flash é classificado para 10k ciclos - isso é muito difícil de alcançar. Além disso, o teste provaria apenas que está funcionando agora, não quando colocado no aplicativo. É muito mais fácil certamente validar a memória do programa depois de programada, ou a EEPROM?
Cybergibbons
Eu questionaria a frase "Uma das seções do Arduino que provavelmente não se tornará confiável ao longo do tempo é a sua memória". - o flash pode realizar 10k ciclos, a EEPROM 100k ciclos. Isso é muita escrita.
Cybergibbons
@Cybergibbons Os aplicativos intensivos em memória podem acabar fazendo mais de 100 gravações por minuto. Não é comum, mas é possível ao usar um grande número de sensores. O teste nos daria uma porcentagem da memória que está funcionando corretamente. Eu não tenho conhecimento específico dos chips de ROM no Arduino, mas muitas ROMs têm a capacidade de espalhar ciclos de leitura e gravação no chip. O efeito disso é que, quando mesmo alguns locais de memória se degradam, é um sinal de que todo o chip se degradará em breve. Mesmo que os ciclos R / W não sejam dispersos, mesmo assim, se certas áreas começarem a falhar, é um sinal de que .. #
asheeshr
pelo menos partes do chip sofreram desgaste significativo, tornando o chip parcialmente não confiável. Em qualquer um dos casos, avaliar todo o intervalo de memória disponível é um método bastante confiável para descobrir o estado atual do chip, o que pode fornecer uma indicação de falha no futuro próximo . Sim, isso não vai me dizer se o chip falhará no próximo projeto, mas no caso de uma aplicação perigosa ou cara, eu certamente não colocaria um chip em funcionamento com maior probabilidade de falha.
asheeshr
Se você está escrevendo para a EEPROM ou pisca centenas de vezes por minuto, está vendo uma vida útil inferior a um dia. Isso é apenas uso inadequado. Não há nivelamento de desgaste em um ATmega.
Cybergibbons
-4

Edit: Pessoas que votaram na minha resposta, Ohh comum, não seja muito tolo! para isso você precisa ser um elétron e passar pelo próprio circuito para verificar se está tudo bem ou não :)

Conecte a placa a uma porta USB do computador e verifique se o LED verde de alimentação acende. As placas Arduino padrão (Uno, Duemilanove e Mega) possuem um indicador de energia LED verde localizado próximo ao interruptor de redefinição.

Um LED laranja próximo ao centro da placa (identificado como “Pin 13 LED” na imagem abaixo) deve piscar quando a placa é ligada (as placas vêm de fábrica pré-carregadas com o software para piscar o LED como uma simples verificação). o conselho está funcionando).

insira a descrição da imagem aqui

Se o LED de energia não acender quando a placa estiver conectada ao seu computador, provavelmente a placa não está recebendo energia.

O LED piscando (conectado ao pino de saída digital 13) está sendo controlado pelo código em execução na placa (novas placas são pré-carregadas com o esboço de exemplo Blink). Se o LED do pino 13 estiver piscando, o esboço está sendo executado corretamente, o que significa que o chip na placa está funcionando. Se o LED verde de energia estiver aceso, mas o LED do pino 13 não estiver piscando, pode ser que o código de fábrica não esteja no chip. Se você não estiver usando uma placa padrão, ele pode não ter um LED embutido no pino 13, portanto, verifique a documentação para obter detalhes da sua placa.

Os guias on-line para começar a usar o Arduino estão disponíveis em Windows , Mac OS X e Linux .

Hardik Thaker
fonte
2
A questão é como verificar se o painel está próximo da falha , e não se ele já falhou .
asheeshr
@AsheeshR: Ohh comum, não seja muito tolo! para que você precisa ser um elétron e percorrer o circuito em si para verificar tudo é ok ou não :)
Hardik Thaker
2
@HardikThaker Por que você não responde isso? Teria sido melhor, suponho. Além disso, se você não quiser descartar sua resposta (ela é útil), sempre poderá fazer a pergunta certa e responder você mesmo. Isso geralmente é feito pelos especialistas para abordar perguntas freqüentes, assim .
Ricardo
@ Ricardo: Roger isso! obrigado parceiro ! Vou ter isso em mente: P melhor sorte na próxima vez para mim;) -4 e contando: P
Hardik Thaker