Estou trabalhando em um projeto ATMega que manterá o tempo e estou tentando fazê-lo para que você tenha uma opção de RTCs de tempo de software (baseado em millis ()), DS1307 ou DS3231 (ChronoDot).
No mais básico, o que eu gostaria de fazer é ter cabeçalhos para um ChronoDot disponíveis para solda e, de alguma forma, em software, detectar se o ChronoDot está conectado e mudar para usá-lo. Normalmente, seria fácil verificar se o DS1307 ou DS3231 está presente enquanto eles usam o mesmo registro I2C, mas após essa verificação inicial eles se desviam um pouco do outro e o último possui mais recursos. Então, eu ainda quero determinar qual está conectado. Em geral, pretendo ter um lugar diretamente a bordo para soldar no DS1307 como opção padrão e o suporte ao DS3231 seria com um ChronoDot completo apenas por meio de cabeçalhos duplos de 4 pinos. O ChronoDot caberia essencialmente sobre o local onde o DS1307 normalmente iria (não seria preenchido nesse caso). A principal razão pela qual estou focando o ChronoDot especificamente é que ele ' s popular, fácil de adquirir e não requer solda SMD para o usuário final (isso se for para um kit). Então, aqui está o que eu estou pensando ...
O DS1307 e o DS3231 têm uma linha Vbat no chip, mas não é realmente necessário para nada. No entanto, o ChronoDot possui um pino VBat real na placa de interrupção. Talvez eu pudesse conectar apenas o Vbat do cabeçalho do ChronoDot e não o DS1307 e conectá-lo a um pino de entrada digital no meu ATMega. Mas esse pino de entrada foi puxado para o chão por um resistor (não tenho muita certeza de qual valor ... talvez 4,7k?). Se minha teoria de EE estiver correta, posso ler esse pino e, se eu estiver baixo, não há cronodot, mas se eu estiver alto, sim.
Algo assim:
simular este circuito - esquemático criado usando o CircuitLab
Minha principal pergunta aqui é se isso acabará esgotando a bateria de backup no RTC? Normalmente, não há corrente extraída da bateria de reserva enquanto a alimentação principal de 5V é fornecida, mas conectá-la a uma entrada digital faria com que ela consumisse energia da bateria o tempo todo? Ou, existe um modo em que eu precisaria colocar o pino depois de ler a fim de "desconectá-lo", por assim dizer? Eu sei que poderia alterá-lo para saída, mas acredito que, se estiver definido como saída e baixo, eu estaria basicamente aterrando a bateria.
Enfim, meus cursos de EE foram há muito tempo. Qualquer ajuda sobre a teoria aqui seria apreciada.