RTC DS3231 - Discussão - Erro de projeto no módulo ?

Boa Noite a todos,

Sou novo aqui no forúm, neste espaço maravilhoso para o aprendizado e compartilhamento do conhecimento, e peço licença para vir aqui abordar um assunto que tenho observado e acompanhado em alguns fórums internacionais, a respeito do Módulo RTC, e que, até agora pelo menos, não vi nenhuma discussão a respeito por aqui em nossas terras...

Existe uma discussão a respeito da confiabilidade do Módulo RTC, no que diz respeito a sua bateria, que remete a incidentes de "explosões" ou inchaços da mesma !

Segundo as análises de diversos usuários, foi constatado que o fato ocorre devido ao processo de carregamento contínuo da bateria que o módulo executa, e sendo assim, por a maioria das baterias inclusas no mesmo serem do modelo não-recarregável CR2032 a mesma se sobrecarrega ocasionando algumas "explosões", verificadas inclusive com casos de projeção desta para longe e fora do módulo.

Sendo assim, a discussão se voltou para as baterias recarregáveis LIR2032 como a correta escolha para estes módulos, porém, em alguns casos foram verificadas a degradação e descarregamento da mesma e até alteraçoes fisicas, com deformações - inchaços - o que levou a nova discussão sobre o que ocorre com estes módulos... o que depois de mais algumas análises e medições verificou-se que o fato ocorre devido a voltagem excessiva que é direcionada do módulo para sua bateria, que chega na casa dos 4,2V - para uma bateria de 3V ou 3,6V - variando em alguns casos para mais ou para menos...apresentando assim um problema congênito de projeto...

Apresentado os fatos foi verificada uma forma de solucionar a questão, através da retirada dos componentes responsáveis de levar a carga para a bateria, deixando assim o módulo desativado em seu recurso de carregamento da bateria, possibilitando assim o uso da bateria não-recarregável CR2032 sem problemas ! 

Porém as discussões ainda percorrem os fórums e opiniões divergentes surgem, como a de que a retirada dos componentes na verdade ocasionaria o inverso, pois desativaria o uso da bateria no caso da falta de energia do RTC...E outros que dizem bastar a utilização das baterias recarregáveis LIR2032, ignorando os incidentes com estas também...


Gostaria de saber de vocês o que acham a respeito, quais suas experiências no uso do RTC DS3231 ? Quanto tempo o utilizam ? Já tiveram problemas com ele dessa ordem ? Qual o RTC mais velho em funcionamento que vocês possuem ? O que acham desse problema e de sua solução ?
Utilizam com bateria de 3V ou 3,6V ?


Anexarei aqui uma foto do módulo, com as indicações do(s) componente(s) que foram retirados do RTC como uma suposta solução para o caso...


E mais alguns links sobre a discussão...

http://forum.arduino.cc/index.php?topic=278270.0

http://woodsgood.ca/projects/2014/10/21/the-right-rtc-battery/



Obrigado pela atenção !! E vamos discutir um pouco sobre isto ?

Exibições: 2510

Anexos

Responder esta

Respostas a este tópico

Boa Noite Rui,

Sim, ele não tem controle mesmo sobre a carga que ele envia neste processo...

No momento eu só estou com os RTC que utilizo nos projetos, que estão em uso, mas irei adquiri mais outros para também tentar realizar o procedimento do zener na bateria.

Sei que ele possui um termômetro interno, apesar de achar que seria mais para medir a temperatura externa do que a interna, mas irei verificar sim essa oscilação de temperatura com o código que me disponibilizou, agradeço !

Minha preocupação em relação ao aumento da temperatura, é porque penso que pela sobrecarga da bateria ela estaria aquecendo, que por sua vez está aquecendo o "corpo" do RTC e todos os componentes, ocasionando assim o problema da maior imprecisão do relógio, já que assim ele consideraria, ou sofreria, as consequencias descritas naquele texto que você disponibilizou sobre a imprecisão, atrasos, que o cristal estaria condicionado em temperaturas extremas, e nesse caso temperatura extrema alta... assim então, isto poderia ser a causa dos atrasos, ou pelo menos a causa mais pertinente. 

Talvez ao equalizarmos essa carga da bateria com o zener 3,9, diminuindo as ocorrências de aumento da temperatura, conseguiremos a maior precisão prometida do módulo !

Vamos ver, vamos aos testes...

O post é antigo, mas os problemas com os módulos DS3231 e DS1307 permanecem.
Após 2 semanas de uso meu DS3231 começou a atrasar muito, cerca de uma hora por dia, fui verificar o que estava ocorrendo e observei que a bateria CR2032 estava estufada, medindo a tensão com o módulo alimentado ela estava com 4,7V, o correto é 3V

Isso ocorre por falha de projeto, conforme mencionado pelos colegas, há um resistor de 200ohms em série com diodo  ligado ao +5V que ficam dando "carga" na bateria, ocorre que a CR2032 não é recarregável.

Retirei o diodo  e troquei a bateria, mas não adiantou, o DS3231 estragou...
Olhando outro módulo DS1307, observei que usa o mesmo sistema de "carga".

Fica o alerta, quem for utilizar esses módulos DS3231 e DS1307 em projetos que, como o meu, fiquem constantemente alimentados por 5V (só utilizando a bateria em caso de falta de energia), devem retirar o diodo para evitar a queima do módulo e da bateria.

Bom dia Edmilson,

Conforme  meu post de 4 de outubro de 2016:

Eu já tinha lido na web que alguns módulos de RTC estavam vindo com pilha comum no lugar da pilha recarregável. O meu módulo veio com a pilha recarregável LIR2032.

Não pode usar CR2032, pois não é recarregável. 

O chip DS3231 tem relógio preciso! O DS1307 não tem precisão. Sugiro que troque para a pilha adequada. 

O primeiro DS3231 que comprei já veio com a bateria descarregada e parecia ter um curto não sei onde (isso à +/- um ano). Comprei outro, retirei o diodo de carga e esta funcionando muito bem. Porém, como esta ligado em um ESP8266 em modo Station, ele atualiza automáticamente via NTP, então não posso afirmar com 100% de certeza que não esteja atrasando. 

Mas de vez em quando meço a bateria e as vezes deixo desligado 1 ou 2 horas e verifico (em modo AP - sem NTP)  e pra min esta funcionando.

Ressuscitando o tópico... O maior problema que vejo nesses módulos RTC DS3231 é que eles consomem uma corrente absurda da bateria quando o Arduino é desconectado da energia. Medi aqui e constatei um consumo entre 620µA e 1030µA, ou seja, valores muito superiores aos informados no Datasheet e nos anúncios de venda. Isso faz com que um módulo desse que ficar umas 2 semanas sem alimentação externa, após ter sido conectado ao Arduino, terá a bateria CR2032 descarregada por completo (essas baterias são projetadas para trabalharem com no máximo 200µA de forma contínua).

Testei diversas plaquinhas desse módulo, adquiridas de diversos vendedores diferentes e em épocas diferentes (tanto do Brasil quanto da China) e todas tiveram resultado semelhante, então acho que é erro de projeto mesmo. Se alguém souber de algum RTC que realmente consuma pouca bateria quando a alimentação do Arduino cai, por favor comente aí. (não vale se basear só nos datasheets, tem que testar na prática, pois se fosse pelo datasheet, o DS3231 seria perfeito - mas na prática vemos que ele passa longe disso...).

Boa noite, 

Fiquei em dúvida. Qual tipo de pilha é usada no seu módulo? 

LIR2032 (correta) 

CR2032 (incorreta) 

CR2032, mas desde o início eu fiz o procedimento de remoção do diodo para impedir que a mesma fosse recarregada (e os meus módulos vieram sem baterias, então alguns deles nunca tentaram recarregar as baterias). Em 2 deles eu não removi o diodo e utilizei baterias recarregáveis, do tipo LIR2032, mas elas vazaram com o tempo.

O alto consumo de corrente se dá quando você liga o módulo no Arduino, faz a leitura por meio de I2C e depois desliga o Arduino da tomada, aí o RTC passa a consumir uma corrente bem alta da bateria, mesmo que você retire ele do circuito. Já, quando o Arduino está alimentado pela fonte, o consumo da bateria pelo módulo é de 0A, como o esperado. Já ouvi outros relatos parecidos sobre o DS3231 e o DS1307 (este último eu nunca utilizei).

Diante desse alto consumo, nenhum desses 2 modelos de bateria são corretos para estes módulos, acredito que foi mal projetado. Tenho 7 plaquinhas dessas e todas apresentaram um comportamento parecido.

Consumo do módulo RTC DS 3231 (plaquinha azul) desconectado do circuito do Arduino (após ter sido usado com o Arduino, com I2C) - o quanto ele drena da bateria CR2032:

Já, quando o módulo é reinserido no Arduino (com o Arduino desenergizado) ele passa a drenar mais de 1mA da bateria. Esse tipo de bateria não é feita para suportar esse nível de corrente por muito tempo.

Boa noite Rodrigo, 

Essas são as fotos e o diagrama do meu módulo DS3231:

https://www.flickr.com/photos/jgustavoam/albums/72157663264163678

1) O chip DS3231 é alimentado pelo pino 2 (VCC), quando o módulo é energizado. 

Se for alimentado com 5V, a corrente deverá ser de 150uA. 

Você já mediu essa corrente? Essa deve ser a corrente do chip quando em uso normal. 

2) O chip DS3231 detecta a queda da energia (VCC) e desse modo o chip deve entrar no modo Low power. 

No modo  de time Keeping, o consumo deverá ser de 1 uA! 

https://datasheets.maximintegrated.com/en/ds/DS3231.pdf

Se o seu consumo esta sendo de 650uA é porque você deve estar usando a função de temperature conversion! 

32kHz TCXO
The temperature sensor, oscillator, and control logic form the TCXO. The controller reads the output of the on-chip temperature sensor and uses a lookup table to determine the capacitance required, adds the aging correction in AGE register, and then sets the capacitance selection registers. New values, including changes to the AGE register, are loaded only when a change in the temperature value occurs, or when a user-initiated temperature conversion is completed. Temperature conversion occurs on initial application of VCC and once every 64 seconds afterwards.

Bit 5: Convert Temperature (CONV).

Setting this bit to 1 forces the temperature sensor to convert the temperature into digital code and execute the TCXO algorithm to update the capacitance array to the oscillator. This can only happen when a conversion is not already in progress. The user should check the status bit BSY before forcing the controller to start a new TCXO execution. A user-initiated temperature conversion does not affect the internal 64-second update cycle.

Eu utilizo a biblioteca DS3231.h, versão 1.01, baixada deste site: http://www.rinkydinkelectronics.com/library.php?id=73

No meu código eu utilizo apenas as funções para adquirir o tempo e a data da biblioteca e nada mais. Será que essa biblioteca de alguma forma setou esse bit 5, de Conversão de temperatura, sem eu saber? Eu não uso esse recurso, como faço para desabilitá-lo?

Para mim, não há necessidade em usar as funções de temperatura ou de alarme do módulo, apenas a data e horário. No meu projeto a placa ficará desligada (sem energia externa) por pelo menos 16h por dia, então o consumo da bateria desse módulo precisa ser bem baixo, senão não servirá.

________________________________________
PS: Dando uma olhada aqui no datasheet do módulo e também na documentação da biblioteca que estou usando, se eu entendi corretamente, essa função de conversão de temperatura (TCXO) na verdade é a responsável pela precisão deste módulo. Ela faz a compensação do cristal de acordo com a temperatura, então creio que se desativar ela o módulo perderá a precisão dele na contagem do tempo. Isso se eu entendi direito. Aí complica, pois preciso de um horário preciso e que consuma pouca bateria...

Boa noite Rodrigo, 

Porque está usando essa biblioteca? 

Por que não usar uma biblioteca disponível no gerenciador de bliotecas da Arduino IDE?

Sugiro que teste outras bibliotecas.

Naõ instale várias bibliotecas de DS3231 ao mesmo tempo, pois com certeza ocorrerá conflito. 

Instale e teste uma de cada vez. Remova-a após o teste. 

https://learn.adafruit.com/adafruit-ds3231-precision-rtc-breakout?v...

https://github.com/NorthernWidget/DS3231

https://github.com/Zanduino/DS3231M

https://github.com/JChristensen/DS3232RTC

Desculpe minha demora em responder. Eu estava testando, por alguns dias seguidos, o comportamento dos meus módulos quando alimentados apenas pela bateria (medi o consumo deles por vários dias seguidos, sem interrupção), após eu ter cortado a alimentação do Arduino.

Realmente, independente da biblioteca utilizada, eles consomem bem pouca corrente da bateria (entre 0,8µA a 2µA, variando de módulo para módulo). Acredito que me enganei quando eu disse que TODOS os meus módulos haviam sido testados e apresentavam esse mesmo problema de alto consumo (minha memória me traiu...)..

Na verdade eu havia feito esse "teste" há alguns anos atrás, mas creio que testei apenas os 2 módulos que eu estava usando na época. De fato esses 2 estão com defeito (consumo de quase 650µA da bateria), mas creio que não há relação com a biblioteca utilizada (usei a recomentada pelos canais 'WR Kits' e 'Brincando com Ideias' na época, e agora testei com a RTClib e o resultado foi o mesmo), mas sim com o fato de as baterias terem vazado e estourado neles, ou eu ter trocado as baterias sem que o VCC estivesse alimentando o módulo *, ou ainda por eu ter usado eles por algum tempo sem ter retirado o resistor 201 para usar o módulo com bateria CR2032 (não recarregável).

* Não me lembro a fonte, mas vi em algum lugar que este módulo pode ter sua memória interna corrompida se a tensão da bateria se tornar instável, coisa que pode ocorrer quando inserimos ou retiramos a bateria sem que o módulo esteja sendo alimentado por VCC (o ideal é só trocar a bateria quando o módulo está alimentado com os 5V ou 3,3V no seu pino VCC).

Quanto à biblioteca, agora estou usando a RTClib, que eu não conhecia, mas ainda não a implementei em meu projeto, apenas fiz testes avulsos. Espero me dar bem com ela.

____________________
PS: Em todos os meus módulos eu removi o resistor 201 (R2, de 200Ω) para poder usar os módulos com bateria CR2032. Fiz os cálculos do consumo e duração da bateria CR2032 e cheguei à conclusão de que ela duraria uns 10 anos neste módulo, caso ele fosse alimentado o tempo todo por ela. Então nem faz sentido usar bateria recarregável nele (até porque baterias de lítio necessitariam de um circuito bem mais robusto e inteligente para sua recarga de forma segura).

E quanto à questão da leitura da temperatura para a compensação do cristal (que consome bastante bateria), o datasheet diz que ela é feita apenas 1 vez a cada 64s, então nem interfere muito na duração da bateria.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço