Página 1 de 1
Implementação de Horímetro

Enviado:
26 Set 2018 10:14
por eliveltonpsantos
Estou com dúvida sobre a implementação de um horímetro na minha aplicação.
Estou desenvolvendo um dispositivo num microcontrolador STM32L041F6P7 que, além das demais funções, precisa salvar quanto tempo o dispositivo ficou ligado desde a fabricação do mesmo, ou seja, um horímetro. Ele possui uma fonte chaveada e o dispositivo pode ser ligada na tomada, na bateria de um veículo ou numa bateria interna. O problema que preciso de ajuda é como que vou manter esse tempo salvo, sendo que o dispositivo pode ser desligado a qualquer momento inesperadamente (não há um botão "salvar")?
Para contar o tempo, tenho um Timer incrementando uma variável a cada 1 segundo.
(i) Eu poderia salvar esse valor na EEPROM interna do microcontrolador a cada 1 segundo, mas tenho receio de que esses inúmeros ciclos de escrita estraguem a EEPROM interna após um tempo, além do que esse ciclo pode ocupar demais minha aplicação.
(ii) Pensei também em salvar em intervalos maiores, como a cada 10 ou 30 segundos; apesar de reduzir os ciclos de escrita na EEPROM, o usuário pode desligar a qualquer momento e eu perder esse tempo, o que é meio crítico nesse meu caso.
Alguém teria uma sugestão de como implementar isso?
Re: Implementação de Horímetro

Enviado:
26 Set 2018 12:35
por cfreund
Capacitor ou bateria para salvar quando faltar energia.
Salvar a cada minuto na EEPROM usando wear leveling. Salvando a cada segundo e levando em conta 100.000 ciclos PE, expectativa de vida de um ano. Se salvar a cada minuto, 60 anos.
Re: Implementação de Horímetro

Enviado:
26 Set 2018 15:28
por tcpipchip
podes usar
FRAM
TCPIPCHIP
Re: Implementação de Horímetro

Enviado:
26 Set 2018 16:24
por KrafT
Pq não usa os 20-byte backup registers?
Re: Implementação de Horímetro

Enviado:
26 Set 2018 16:56
por cfreund
KrafT escreveu:Pq não usa os 20-byte backup registers?
Mantém mesmo sem estar energizado?
Re: Implementação de Horímetro

Enviado:
26 Set 2018 19:35
por KrafT
cfreund escreveu:KrafT escreveu:Pq não usa os 20-byte backup registers?
Mantém mesmo sem estar energizado?
Vai que ele opte por manter o RTC rodando?
Re: Implementação de Horímetro

Enviado:
26 Set 2018 19:50
por cfreund
Desligado não funciona Kraft. Esses registros de backup resistem somente a RESET e Standby.
Re: Implementação de Horímetro

Enviado:
26 Set 2018 20:11
por KrafT
Como disse: Se ele quiser deixar o RTC rodando (leia-se: provendo os recursos necessários ao RTC), ele pode usar essa memória. Embora não precise necessariamente rodar o RTC, entendo que não se justificaria modificar o circuito e não aproveitar o recurso que se torna disponível.
Veja que só estou explorando uma possibilidade. Se ele não puder "de jeito maneira nenhuma" acrescentar o hardware necessário para usar essa alternativa, não tem problema, eu não fico triste. É uma sugestão sem a ambição de ser verdade inexorável.
Re: Implementação de Horímetro

Enviado:
26 Set 2018 20:59
por cfreund
KrafT escreveu:Como disse: Se ele quiser deixar o RTC rodando (leia-se: provendo os recursos necessários ao RTC), ele pode usar essa memória. Embora não precise necessariamente rodar o RTC, entendo que não se justificaria modificar o circuito e não aproveitar o recurso que se torna disponível.
Veja que só estou explorando uma possibilidade. Se ele não puder "de jeito maneira nenhuma" acrescentar o hardware necessário para usar essa alternativa, não tem problema, eu não fico triste. É uma sugestão sem a ambição de ser verdade inexorável.
Meu velho, quando te perguntei foi uma dúvida, já q o problema era falta de energia e fiquei curioso. Como vc não respondeu, fui olhar no ds e repliquei aqui o que eu encontrei. Mas ok... acredito que o rapaz tenha captado a mensagem.
Abs!
Re: Implementação de Horímetro

Enviado:
26 Set 2018 21:10
por KrafT
Off topic: Eu odeio com todas as forças do meu ser os MCUs que tem RTC, mas não tem pino dedicado para a bateria do RTC. Meu ódio aumentou ainda mais quando um ATSAM4 se autodestruia se fosse acordado logo após entrar em sleep: O LDO interno se perdia e manda 3,3 V para o core, que se bem me lembro é 1,2 V. Kabum!!! RIP SAM4

Re: Implementação de Horímetro

Enviado:
27 Set 2018 10:34
por eliveltonpsantos
Como imaginei, não tem uma resposta definitiva para isso; mas com esse "brainstorming" consegui ver melhor o que fazer...
KrafT escreveu:Pq não usa os 20-byte backup registers?
Essa seria a melhor opção, mas esse MCU não tem o pino dedicado para a bateria (VBAT).
Por enquanto, a melhor opção foi o
Wear Leveling mesmo.
Caso tenham alguma outra sugestão, fiquem à vontade...
Re: Implementação de Horímetro

Enviado:
27 Set 2018 12:45
por cfreund
eliveltonpsantos escreveu:Essa seria a melhor opção, mas esse MCU não tem o pino dedicado para a bateria (VBAT).
Nem precisa. Consumo de 230 nA/h.
Re: Implementação de Horímetro

Enviado:
27 Set 2018 15:23
por eliveltonpsantos
Encontrei no próprio site do MCU o Application Notes
AN4718: How to design a VBAT system based on STM32L0/L1 series (with external components) e achei bem interessante. Vou repensar o impacto disso no meu circuito e preço, mas é uma ideia que eu não tinha pensado.
Re: Implementação de Horímetro

Enviado:
29 Set 2018 03:00
por rafael
Amigo o "tcpchip" te deu a solução logo no início... Usa fram e Tah resolvido... Tem uns modelos de baixa capacidade que são baratos.
Fram eh o mais indicado para esse tipo de situação... Não depende de bateria, capacitor nem nada do gênero...
Enviado do meu iPhone usando Tapatalk