TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: cucaracha en 22 de Octubre de 2003, 13:19:00

Título: Ayuda con RTC!!
Publicado por: cucaracha en 22 de Octubre de 2003, 13:19:00
Necesito ayuda urgente.
Tengo que controlar en C un reloj en tiempo real. Tengo un DS1678, pero me da igual. Con ver como se hace en uno similar (I2C) me sirve. He estado mirando el que trae el CCS para el DS1302, pero no viene nada para la alarma.
Comentenme algo sobre estos módulos, vamos los problemas que me puedo encontrar a la hora de usarlos.

Si tienen algún ejemplo, pues buenos son

Por cierto, usaron alguno con cristal y batería incluida en el chip y que sean similares en cuanto al uso de los anteriormente mencionados??

AYUDAAAA!!

Para informarles, necesito disponer de la hora cada vez que el micro la solicite y que no atrase nada, o lo mínimo posible, ya que el tiempo es de vital importancia en la aplicación. Y que me genere alarmas.

Un saludo!!
Título: RE: Ayuda con RTC!!
Publicado por: pikman en 22 de Octubre de 2003, 15:03:00
Hola Cucaracha;
                          Te puedo recomendar que uses el DS1307 de DALLAS, es de 8 pines, utiliza protocolo I2C por lo que puedes incorporarlo a un bus existente economizancdo pines y es muy preciso, ademas tiene 64 bytes  de memoria ram que podes disponer para lo que quieras, no tiene alarmas, pero si tiene una salida de onda cuadrada que la podes programar desde 1 Hz hasta 32.768 Khz, yo la he usado conectado esta al pin RB0 ( entrada de interrrupcion externa ) y asi cada segundo tengo actualizos los registro en el micro ( fecha y hora)automaticamente, asi puedo olvidarme del asunto, tambien se puede usar para alimentar al tmr0 y obtener temporizaciones largas sin ocupar recursos del micro, bueno espero que te sirva a tu disposicion.

Ariel

Título: RE: Ayuda con RTC!!
Publicado por: solid84 en 22 de Octubre de 2003, 22:36:00
que tal cucaracha yo te recomiendo usar el ds1302 tiene 32 registros de ram no volatil es reloj/calendario utiliza un cristal de 32.768khz la bateria es para mantener el oscilador trabajando por lo que su consumo es realmente bajo es muy facil de usar no presenta ningun problema en su manejo ni su operacion ya cuenta con circuito cargador por lo que con enviar el comando habilita la carga de la bateria te anexo el data sheet para que te vayas empapando y tambien el programa en c el programa  que cuenta con un display de 4 digitos de 7 segmentos y un teclado por lo que ya te servira mucho para tu proyecto
ya esta probado y funciona perfectamente saludos y espero te sirva
Título: RE: Ayuda con RTC!!
Publicado por: pocher en 22 de Octubre de 2003, 23:16:00
Hola solid84, he intentado abrir el .pdf, pero no se deja.

El programa en C ¿va incluido en el pdf?

Un saludo
Título: RE: Ayuda con RTC!!
Publicado por: solid84 en 23 de Octubre de 2003, 09:25:00
que tal pocher y cucaracha aqui esta el programa en c no lo depure bien por que estoy en el trabajo pero estan las rutinas de escritura y lectura del reloj de todos modos tienen que leer el data sheet para entender mejor el programa cualquier duda nos comunicamos el programa es para un pic 16f877 usa 4 digitos de 7 segmentos y son multiplexados tambien un tecla do de 5lineas y 3 columnas  funciona bien y sin ningun problema ahi rutinas que NO tienen que ver con el reloj asi que omitanlas
saludos
Título: RE: Ayuda con RTC!!
Publicado por: cucaracha en 23 de Octubre de 2003, 12:51:00
Pikman, creo que por el momento me inclino por el que tú comentas, el DS1307. Tienes alguna rutina en c para ver como se usan.
Dices que son precisos no?. En el anterior proyecto usaron un PCF8593 y el problema es que atrasaba mucho, debido a un condensador que hay que poner fuera o algo así escuche comentar. O al menos eso dicen. Igual lo montaron o controlaron mal, no se...

Gracias y un saludo!
Título: RE: Ayuda con RTC!!
Publicado por: J1M en 24 de Octubre de 2003, 08:13:00
te pego aki varios ejemplo q tengo:
http://webs.ono.com/jimmylou/RTC1.zip
http://webs.ono.com/jimmylou/RTC2.zip
http://webs.ono.com/jimmylou/RTC3.zip

Salu2
Título: RE: Ayuda con RTC!!
Publicado por: cucaracha en 24 de Octubre de 2003, 08:54:00
Ok Venum, las de RT2 creo que van a ser las que me estudie. Tenía las mismas que me baje de aquí del foro, pero tenían errores. Estas parecen que están correctas.
A estudiar...

Gracias y un saludo!
Título: RE: Ayuda con RTC!!
Publicado por: pikman en 29 de Octubre de 2003, 11:02:00
Hola cucaracha, pues bien el pcf8593 no lo he usado pero si he mirado el DS y es diferente al DS1307, dejame saber tu direccion de mail y te envio que tengo, como driver propiamente dicho solo tengo uno publicado por felix que arregle y funciono bien, pero como es I2C el protocolo que usa es muy sencillo usarlo, sus registros expresan valores bcd, es muy preciso con una bateria cr2032 dice el fabriante que puede andar mas de 10 años, cabe destacar que no se alimenta de la bateria mientras dispone de energia en los pines, la bateria es solo backup, ademas si en tu aplicacion tienes alguna memoria I2C puedes acoplarlo al bus y ahorras asi pines, es muy bueno, o sera que a mi me va tan bien....

saludos

Ariel
Título: RE: Ayuda con RTC!!
Publicado por: cucaracha en 29 de Octubre de 2003, 11:25:00
Ahora te lo paso en un privado. Llevas razón en lo del bus. La cosa de usar este es porque además usaré tres DS1631 y una memoria 24AA256, todos I2C.
La cosa es que el DS1307 no tiene alarma y la necesito para mi aplicación. Encontré uno, el DS1339 similar y con alarma, pero no lo venden en Amidata (que es donde compra mi facultad).

Envíame eso que tienes, ok!!

Un saludo y gracias.
Título: RE: Ayuda con RTC!!
Publicado por: pikman en 29 de Octubre de 2003, 13:26:00
MIra, lo que pasa es que a lo mejor no me explique bien mas arriba, pero si es cierto el DS1307 no tiene alarma pero puedes automatizar la lectura del ds1307 cada segundo usando la salida de onda cuadrada de este conectandola a la entrada rb0 del pic, entonces tendras cada segundo una señal que le dira al pic que lea el reloj, entonces puedes en tu main program chequear la hora y minutos hasta sean iguales a lo que lees en la rutian de interrupcion, asi lo uso, hay otros que si tienen alarmas si pero solo le veo ventaja en los casos donde hay que ahorrar energia, en tu caso lo que parece es un datalogger puedes arreglarte con este que ademas de ser barato se consigue en cualquier lado, para mas preciscion hay unso cristales de 32.768 compensados, puedes usar uno de estos.

saludos

Ariel
Título: RE: Ayuda con RTC!!
Publicado por: cucaracha en 29 de Octubre de 2003, 14:22:00
Te explicastes bien y lo pensamos. Pero la cosa es que el cto tiene una memoria I2C, el reloj, un driver por I2C para 4 led 7-seg, tres sensores de temperatura I2C si aceptan nuestra propuesta, si no la aceptan, uno I2C y dos LM135, osea que introducimos el conversor A/D, también tiene comunicación serie con el pc, controlar un motor con encoder, controlar un sistema de calefacción de la placa (para que trabaje dentro de los rangos de temp. de los integrados) y alguna cosa más que se me estará olvidando. Imagina lo que simplifica no estar mirando cada segundo una interrupción. Además del ahorro, como tu comentas. El sistema puede estar dormido mientras espera.
Imaginas ya porqué no quiero usar el DS1302 (por SPI).
Probaré un DS1678 que tengo en casa y ya os comentaré como me ha ido.

Saludos!
Título: RE: Ayuda con RTC!!
Publicado por: cucaracha en 03 de Noviembre de 2003, 16:47:00
Hola de nuevo. Sigo con el tema del reloj. Estoy haciendo pruebas con un DS1678 para ir calentando.
Necesito pasar de BCD a Binario y viceversa. Ví unas rutinas en el archivo DS1307.c que vienen en el CCS, pero la verdad es que no me funcionan bien??.
He hecho estas. No las he probado, pero aun así las pongo...

byte bcd2bin (byte valor_bcd){
    byte temp;
    temp=valor_bcd-(swap(valor_bcd&0xF0)*6);
    return(temp);
}

Creo que debe de funcionar.

La de binario a bcd la dejo para mañana.
Un saludo.
Título: RE: Ayuda con RTC!!
Publicado por: cucaracha en 04 de Noviembre de 2003, 14:14:00
Desde esta mañana tengo funcionando el reloj, que he montado en una protoboard.
La cosa es que en 5 horas me ha atrasado casi 2 segundos. Es eso normal, no verdad?. El cristal que uso es el que viene en el data, con una capacidad de 12.5pF. Pero claro, está montado en protoboard.
Hay alguien que haya usado un rtc de estos y no le atrase. Que me diga el secreto!!

Saludos y hasta el próximo post, que creo que esto va a traer cola.
Título: RE: Ayuda con RTC!!
Publicado por: lu6vg en 04 de Noviembre de 2003, 15:22:00
No tengo experiencia en el tema pero lei varios DS de los relojes y siempre dicen y remarcan que la precision depende del cristal. Por las dudas proba con varios

Saludos

Luis
Título: RE: Ayuda con RTC!!
Publicado por: cucaracha en 04 de Noviembre de 2003, 16:20:00
Eso haré. Estoy a la espera de que me traigan otro cristal. También lo voy a montar en pcb como indican en el data.
Ya os iré contando.

Saludos!
Título: RE: Ayuda con RTC!!
Publicado por: cucaracha en 06 de Noviembre de 2003, 03:44:00
Me cago en el reloj del pc y su /$=%/!=$/&!=!!!!

Ayer me trajeron otro cristal. Lo he tenido un día y resulta que sólo ha atrasado menos de 1 segundo. Claro está, midiendo el tiempo con el cronometro de un reloj y con el de windows(vamos, el del sistema). Resulta que por el de windows a atrasado 10 segundos en un día (lo mismo que con el otro cristal) y por el reloj menos de un segundo.
Por tanto, saco la conclusión que el reloj del sistema es una mierda.

Ahora lo vamos a montar sobre pcb siguiendo las especificaciones que vienen en el data.

Ya os cuento.

Saludo!
Título: RE: Ayuda con RTC!!
Publicado por: MGLSOFT en 06 de Noviembre de 2003, 05:22:00
En mi trabajo tenemos un sistema que levanta datos de equipos de campo, horodatando los mismos  con la ayuda del reloj de la PC.
Este atrasa 15 minutos por mes.
Eso muestra cuan confiables son....
Título: RE: Ayuda con RTC!!
Publicado por: marmatar en 06 de Noviembre de 2003, 06:49:00
Cuca... a ver si ésto te sirve...

http://www.la-hora.org/atomuhr.html

Es un sitio que refleja la hora y es regulado por un reloj atómico que corrije el erro cada 30seg.

Aquí hay otro que podés bajar gratuito y que conecta con un reloj atómico en USA

http://www.juegofanatico.cl/juegofan/esp/pagesp/reloj.htm

Un abrazo...
marmatar
Título: RE: Ayuda con RTC!!
Publicado por: cucaracha en 06 de Noviembre de 2003, 09:38:00
Claro que me sirvió, y mucho además. La cosa es que el que estoy usando no es exactamente igual que el 1307. tiene algunas funciones más, de las que sólo uso la alarma.
Por cierto, a tí no te atrasa nada el ds1307?? Nada de nada??

Estoy bajando el reloj atómco ese... preguntaré a los dueños si me lo prestan

Saludos!!
Título: RE: Ayuda con RTC!!
Publicado por: cucaracha en 06 de Noviembre de 2003, 10:08:00
Una cosa de la rutina de bcd a binario. intenté usarla pero no me funcionaba.
Y la verdad es que no entiendo lo que hace.

char bcd2bin(char bcd_value)
{
char temp;

temp = bcd_value;
temp << 1; // Shifting upper digit right by 1 is same as mult. by 8
temp &= 0x78; // Isolate the bits for the upper digit

// Now return: (Tens *8) + (Tens *2) + Ones

return(temp + (temp << 2) + (bcd_value & 0x0f));

}

Hago un ejemplo de lo que hace paso a paso y me corrijes si me equivoco:
recibe el número en bcd, p.ejmplo el 24BCD=00100100BIN y lo guarda en temp.
Rota temp una vez a la izq., temp=01001000
Le hace una máscara con 0x78 (11111000). temp=01001000
01001000+00100001+00000100=01101101 (=109DEC)

109???

Saludos!!
Título: RE: Ayuda con RTC!!
Publicado por: pikman en 07 de Noviembre de 2003, 08:28:00
OK, cual es el que estas usando ?, que modelo, el ds1307 me ha resultado muy presciso, como te dije creo puse un cristal que me costo 4 veces mas que uno comun pero a 25 º centigrados de temperatura en un mes tuve muy buena estabilidad con respecto al standart de motorola el mc1468xx que es el te tienen todas las PC.

saludos

Ariel
Título: RE: Ayuda con RTC!!
Publicado por: cucaracha en 07 de Noviembre de 2003, 09:23:00
Estoy usando un DS1678. Ayer hicimos dos placas para montar el módulo qe reloj y así probarlos mejor, eliminando las posibles capacidades parásitas que pudiese haber en el cristal cuando lo montamos en la protoboard.
Hemos porbado primero con un cristal de montaje superficial con una capacidad de 12.5pF.
Pues clavadito, clavadito!!!
No ha atrasado nada de nada.
Problema resuelto.
En cuanto a la rutina de bcd2bin estoy usando una que posteé en un mensaje anterior y funciona.
El módulo que tenía idea de usar es el DS1339 que es igual que el DS1307 pero con dos alarmas. La cosa es que funciona a 3.3V, por lo que habría que incluir en la placa un regulador para esto. Como todo lo que se usa va a 5V quizás me quede con el que he hecho las pruebas que funciona con 5V, y le desactivo el registrador de eventos y listo.

PD: mi monitor está en encefalograma plano. Sólo veo una linea horizontal blanca en medio de la pantalla. Sólo cuando lo meneo veo algo. Alguien tiene un manual de esos de arreglo de fallas...

Saludos!

Título: RE: Ayuda con RTC!!
Publicado por: shrek_sc en 01 de Julio de 2005, 01:30:00
podrian colgar de nuevo los archivos, quiero bajarlos pero ya no estan en linea....gracias de antemano Diego.Sonrisa Gigante
Título: RE: Ayuda con RTC!!
Publicado por: zer0007 en 12 de Julio de 2005, 07:57:00
Hola, mi pregunta es si alguien ha usado el RTC del dsPIC, segun he leido para usarlo debo ponerle un oscilador de 32 Khz., se pone como oscilador principal, o secundario, no hay otra manera de hacerlo que no baje tanto la velocidad del micro ?.

Muchas gracias
Título: RE: Ayuda con RTC!!
Publicado por: zer0007 en 12 de Julio de 2005, 08:00:00
RE: Ayuda con RTC!![/b]

<
Título: RE: Ayuda con RTC!!
Publicado por: RaDoN en 30 de Julio de 2005, 14:11:00
Yo tb voi a montar un proyecto de un reloj para la casa, ke de la temp el dia y demas.

Usare un DS1307, ¿te importaria pikman mandarme ami tb esa rutina para este RTC?

Por cierto, usare un circuito oscilador tb de maxim, con compensacion a la temperatura, creo que se llama DS32KHZ, y dice que solo varia  de 1 a 4 min al año. Aver que tal resulta Sonrisa Gigante