Página 1 de 1

RTC com cristal esterno

MensagemEnviado: 26 Jun 2007 10:21
por lafourcade
Ola
Eu estou usando o RTC com o oscilador interno com a seguinte configuração:

PREINT = 0x000001C8;
PREFRAC = 0x000061C0;

HOUR = 0x00;
MIN = 0x00;
SEC = 0x00;
DOM = 0x00;
MONTH = 0x00;
YEAR = 0x00;

CCR = 0x00000002; //Reset the RTC

ILR = 0x00000002;
CIIR = 0x00000002; //Enable seconds counter interrupt
ALSEC = 0x00000008; //Set alarm register for 8 seconds
AMR = 0x000000FE; //Enable seconds Alarm

CCR = 0x00000001; //Start the RTC

Eu preciso mudar a configuração do RTC para ele funcionar com o cristal de 32.768. Eu coloquei o CCR = 0x00000011; mas agora o clock ficou bem fora. Os segundos estão bem mais rápidos. Como eu ajusto ele? Preciso mudar mais alguma coisa?

Obrigado

MensagemEnviado: 26 Jun 2007 12:04
por Fábio Pereira
Se você informar o modelo exato do chip pode ser que alguém possa ajudar.

Até +

Re: RTC com cristal esterno

MensagemEnviado: 26 Jun 2007 14:11
por Rodrigo_P_A
pelo jeito vc está usando LPC21

Eu uso ele com XT Externo configurado assim:

#define BIT(n) (1 << (n))
CCR=BIT(0) | BIT(4); // habilitado, XT externo


E está funcionando perfeitamente.

só faço isso pra inicializar ele, mais nada

MensagemEnviado: 25 Set 2007 09:40
por lrfad2
Rodrigo,
Eu já tentei de tudo, mas o meu RTC adianta cerca de 1,5s a cada 10min ou 3min e 36 seg por dia.
Já fiz a comparação com 2 cronômetros de celulares de marca diferentes, e a diferença se mantém.
Inclusive, seguindo a sua sugestão, substitui a última linha por CCR=BIT(0) | BIT(4)
Utilizo o LPC2138, com pclk a 40Mhz e cristal de 32Khz externo.
Vc ou mais alguem teria alguma sugestão para me dar?

CCR = 0x10; // RTC disable so it may be initialized
ILR = ILR | 0x03; // Clear all interrupts flags
CIIR = 0x00; // All increments interrupts are disable
AMR = 0xFF; // Values are not compared for the alarm
PREINT = 1219;
PREFRAC = 23040;
CCR = 0x11; // RTC enable

MensagemEnviado: 25 Set 2007 10:44
por eletroinf
Talvez isso ocorra porque seu cristal seja de matéria óssea, conforme sugere o título do tópico...

MensagemEnviado: 25 Set 2007 12:15
por Rodrigo_P_A
EU uso normal , com cristal de 32768 HZ e capacitores de 8.2pF e funciona muito bem, dá uma verificada no seu circuito ou na configuração.

MensagemEnviado: 25 Set 2007 12:35
por lrfad2
Eu não entendi o que vc disse eletroinf, mas acredito que seja pelo externo com "s". Mas tudo bem, um errinho de vez em quando sempre acontece.

Depois de uma indicação, fui mais a fundo no user manual, que tem os valores recomendados de capacitores para o cristal. Qdo montei a placa, não dei muita importância, pois pra mim esses capacitores eram só para estabilizar o cristal, não exerciam influencia direta. Bom...
Levei como base os cristais da HIB (opa! é uma empresa brasileira), e vi que seus cristais de 32,768Khz tinham uma capacitância de carga em torno de 11,8pF. Fazendo uma simples regra de três, chegamos a um valor de 20,94pF. Será que existe capacitor de 21pF?
Coloquei um de 22pF e agora não adianta mais e sim esta atrasando. A diferença caiu para 1s em 45min ou 3horas, 14min, 40 seg por ano (365 dias).... Dependendo da aplicação tá de bom tamanho

MensagemEnviado: 25 Set 2007 13:59
por Rodrigo_P_A
eu uso de 8.2pF e cristal que nem sei a marca, e num atraza nem adianta, já fiz comparação de uma semana por exemplo, e não deu diferença ( comparando o RTC da minha placa com o do meu PC )

MensagemEnviado: 26 Set 2007 14:00
por lrfad2
eu não tenho capacitor de 8,2... o que fiz foi adiantar por SW, 1s a cada uma hora... pelo jeito resolveu. :lol:

MensagemEnviado: 01 Jan 2008 15:46
por jeanfernandes
Estou trabalhando num circuito que irá precisar usar o RTC
Dúvida : Será que é possível usar apenas um TXCO externo (tipo o DS32 KHz da Dallas) ao invés desses cristais pé de chinelo ?

Eu tinha um problema de estabilidade e precisão usando o DS32KHz com o DS1302, mas resolvi aterrando os N/C do TXCO e mudando o layout da placa....ficou bem melhor.

Estou tentando usar um double oven, mas tá complicado conseguir amostra. Meu projeto dá margem para usar esse tipo de coisa e deixar o sistema de clock funcionando acima da temperatura ambiente evitando a ssim os erros causados pela variação de temperatura.

A idéia é usar inicialmente o RTC interno do ARM como referência até que o oven esteja na sua temperatura de trabalho e ai sim liberar o cara...
Opiniões ?

Jean.

MensagemEnviado: 04 Jan 2008 11:10
por jeanfernandes
Uma outra duvida acerca da memoria RAM dos registros que ficam presos ao RTC com bateria e a cpu em off. Ela mantem sim e tals os registros, mas e se habilitarmos a interrupcao do RTC o que acontece em off ?

E os demais registradores da CPU ? Ficam mantidos com a bateria ?

MensagemEnviado: 04 Jan 2008 11:39
por msamsoniuk
pq vc nao usa um RTC externo com bateria integrada ?

MensagemEnviado: 04 Jan 2008 18:35
por jeanfernandes
Marcelo

É uma das coisas que estou considerando mais a serio nesse momento.
Estou tentando conseguir amostra de um DOXCO da vectron para poder fazer minha base. Ele é bastante estável. Já é antiga minha necessidade de usar um double oven num modulo fechado para fazer minha base de tempo.

Estou no aguardo da resposta do fornecedor.