Pages: [1]   Go Down
Author Topic: Discussão - RTC Nativo ou chip  (Read 639 times)
0 Members and 1 Guest are viewing this topic.
'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3103
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Viva,

Tenho estado a ver e em chips com mais de 40 pinos, a ATMEL normalmente coloca dois pinos chamados (TOSC1 e 2) que servem para ligar um cristal de 32kHz e criar um RTC no chip. Nos arduinos normais, isto também é possível, mas para funcionar o Arduino terá de funcionar com o cristal interno (8MHz) uma vez que os pinos TOSC são também os XTAL.

O que gostaria de saber era se vocês preferem usar um chip externo (a bateria é um ponto bastante forte) ou se pudessem, usariam antes um RTC interno ao arduino?
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

BHZ, MG, Brazil
Offline Offline
Sr. Member
****
Karma: 10
Posts: 346
Android developer; Arduino enthusiast
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Boa discussao, e eu tenho pensado sobre isto recentemente.

A grande questao é que o RTC do Arduino nao tem a funçao de armazenar datas e horários. Sua funçáo é apenas manter um contador interno em milisegundos. Este contador é zerado todas as vezes que o arduino é desligado.

Isto posto, e imaginando que nao existe um RTC externo (como um DS1307, 1337 ou 1672), quando o arduino precisar de data/hora, ele tem algumas opçoes:

- usando uma placa de rede (Ethernet Shield ou Wi-fi), ele usar o protocolo NTP para pegar data/hora
- em algum momento o PC passa o horário para ele, e aquele horário e guardado, bem como o relógio interno do Arduino. Daí, quando se precisar de data/hora, faz-se a matemática do horario inicial + contador instantaneo - contador do momento em que o horário inicial foi lido. Isto é pouco prático e impreciso, mas funciona quando nao se tem rede ou um RTC externo.

Já com o RTC externo, ajusta-se este apenas 1 vez e daí em diante - se sua energia nao for removida - apenas lê-se data/hora quando for preciso.

Eu acho que é muito melhor ter um RTC externo, mesmo quando se tem uma EthernetShield, e estou desenvolvendo um pequeno shield para mim que abriga 1 DS1337 + 4 24LC256 (para um total de 1 Mbit de EEPROM).

Logged

Learn to live: Live to learn.
Showing off my work: http://arduino.cc/forum/index.php/topic,126197.0.html

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3103
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hmmm, pois... um RTC externo é vital sempre que se tem faltas de tensão e não existe uma maneira simples de interligar as coisas.

O millis não é bem um RTC... apesar de ser preciso. Mas também não é uma grande opcão para manter tempo até por causa do overflow. Logo entre ter um chip externo ou ter apenas um cristal, pode ser uma boa opcão intermédia. A vantagem é que o software pode ser criado de forma a guardar data e hora independentemente (com uma struct tm, por exemplo) e assim não ter problemas de overflow.

O NTP é outro problema que reparei... a avr-libc não tem a time.h, logo converter os segundos desde 1970 para a data e hora actual é uma chatice daquelas!!! É relativamente simples de tirar a data, mas os anos, por causa do ano bissexto torna as coisas um pouco mais chatas.

Eu estou a ver se crio (aliás já tenho uma boa parte feita) uma libraria para usar com o ATmega... o problema é que para usar nas versões oficiais, tem de se trocar o cristal de 16MHz por um de 32kHz no Uno/2009 e no Mega isto é impossível de fazer já que os pinos não foram passados para fora.

Talvez arranje um seeeduino mega... ou um bobuino. LOL
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Pages: [1]   Go Up
Jump to: