TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Enigma en 02 de Noviembre de 2007, 16:12:51

Título: Reloj en tiempo real
Publicado por: Enigma en 02 de Noviembre de 2007, 16:12:51
Hola que tal amigos.... Alguien sabe de algo o ha trabajado con el reloj en tiempo Real MM58167AN???... Por favor si tienen alguna información que me pueda ayudar se los agradeceria... Gracias!


Atte: Enigma... La llanerita de Guayana :)
Título: Re: Reloj en tiempo real
Publicado por: jfh900 en 02 de Noviembre de 2007, 16:16:37
En el datasheet tienes toda la información necesaria de conexionado, programación, etc.

Aqui lo puedes descargar:

http://www.futurlec.com/Others/MM58167AN.shtml

Un saludo
Título: Re: Reloj en tiempo real
Publicado por: Enigma en 02 de Noviembre de 2007, 16:35:29
Muchas gracias ya lo visite.... Otra preguntica... Este no da tiempos en microsegundos verdad???... estuve leyendo el datasheet y no vi nada de eso, no se si lei bien o traduci mal....

Sino es así, conocen algún reloj en tiempo real que trabaje con microsegundos????

Atte: Enigma... La llanerita de Guayana :P
Título: Re: Reloj en tiempo real
Publicado por: jfh900 en 02 de Noviembre de 2007, 16:43:34
Antes de nada bienvenida al foro.

Podrias explicar un poco más que es lo que quieres hacer, por que un reloj en tiempo real no es ni mas ni menos que un reloj que te da horas:minutos:segundos y es calendario.

Si lo que quieres es medir intervalo de tiempos en el orden de magnitud de los microsegundos, no te hace falta el reloj en tiempo real y con el timer del PIC podras realizarlo sin problemas.

Un saludo
Título: Re: Reloj en tiempo real
Publicado por: Enigma en 02 de Noviembre de 2007, 16:59:07
Hola que tal gracias por la bienveniida.... En realidad si se que se podría hacer con el pic, pero necesito algo muy preciso.... y bueno me dijeron que utilizará estos relojes u otros.... Es que necesito sensar algunas variables en intervalos de tiempos pequeños, como por ejemplo en microsegundos para que las medidas sean más precisas! no se si me entienden.... y Bueno para esto necesito además de los milisegundos, minutos, horas, meses, dias y años necesito registrar microsegundos... Y bueno necesitaba un reloj en tiempo real que me registro estos intervalos.... pense en el MM58167AN, pero por lo que lei en el datasheet pues no me registra los microsegundos... Tambien pense en el TC530CPJ pero de este si que no encuentro mucha información....

Atte: Enigma... La llanerita de Guayana
Título: Re: Reloj en tiempo real
Publicado por: jfh900 en 02 de Noviembre de 2007, 17:09:04
Sensar una variable en microsegundos es un tiempo, muy pero que muy pequeño. Para un pic que trabaje a 4MHz 1 microsegundo es el tiempo de ejecución de una instrucción. El PIC es capaz de medir con mucha precisión si el cristal que le hemos puesto es de precisión. Planteate si realmente es necesario medir con tanta precisión o si se puede rebajar los requisitos.

Un saludo
Título: Re: Reloj en tiempo real
Publicado por: reiniertl en 02 de Noviembre de 2007, 17:31:30
Exacto, medir una variable en ese orden de tiempos es muy difícil, no conozco muchas cosas que se puedan muestrear a tal velocidad.

Por ejemplo hay cosas como la intensidad de una fuente luminosa, o los transitorios de tensión de una fuente de alimentación puede que tengan variaciones en el orden de los us, pero no muchas más variables físicas medibles para aplicaciones industriales o prácticas. Para cosas de laboratorio de física las consideraciones son otras, así que no creo que si tienes que medir en esos órdenes un PIC sea lo más adecuado.

Te recomiendo que primero valores si realmente tienes que medir en ese orden, o si puedes hacerlo, eso implica que debe mirar primero a la variable, luego al sensor y los circuitos de acondicionamiento de señal, si existen y después buscarte el dispositivo de procesamiento adecuado.

Por ejemplo, la temperatura es una variable considerada lenta, pero en algunos casos no es así, puede variar muy rápido, pero detectar tales cambios no es simple porque casi ningún sensor industrial tiene constantes de tiempo en respuesta a la temperatura menores a 1s, así que en un caso así no tiene sentido medir cada 1 microsegundo si tu sensor se demora al menos 1 segundo para detectar un cambio de temperatura. Este es un ejemplo sencillo pero ilustrativo de la necesidad de ver un sistema de instrumentación electrónica como un todo, en un caso como el anterior si tu sistema pudiese medir cada 1us sería 1 000 000 de veces más rápido que tu sensor, y estarías midiendo a esa velocidad por gusto, con medir cada 500 milisegundos sería más que suficiente, cumplirías con el teorema del muetreo, evitarías el aliasing, etc.

Para terminar, no me parece que los RTC estén diseñados para estas cosas, ellos más bien están orientados a ser utilizados como relojes calendarios, en realidad el término RTC está, según mi criterio mal empleado, sería mejor decirles relojes calendarios.

saludos
Reinier
Título: Re: Reloj en tiempo real
Publicado por: jfh900 en 02 de Noviembre de 2007, 17:34:15
Totalmente de acuerdo con lo expuesto por reiniertl

Un saludo
Título: Re: Reloj en tiempo real
Publicado por: Enigma en 02 de Noviembre de 2007, 22:00:40
Por eso es que no puedo utilizar los pics, por eso es que estoy utilizando estos reloj de tiempo real.... Ahora, si es necesario medir en microsegundos, y no necesariamente mediré variables industriales como por ejemplo, presión, temperatura, caudal, etc.... Podría medir cambios de corrientes y voltajes... Como les dije anteriormente, requiero de un microprocesador de reloj en tiempo real para realizar está tarea.... y Bueno los integrados que les mencione anteriormente me servirian, pero necesito los microsegundos!... Porque además de eso necesito llevar un registro de ello, es decir, pasar todos esos cambios anormales a una memoria no volatil y llevar como especie de un seguimiento!

Atte: Enigma... La llanerita de Guayana :lol:
Título: Re: Reloj en tiempo real
Publicado por: Nocturno en 03 de Noviembre de 2007, 04:43:45
Enigma, dices que quieres medir en microsegundos, pero ¿cuántos microsegundos de precisión quieres?.
Título: Re: Reloj en tiempo real
Publicado por: vszener en 03 de Noviembre de 2007, 06:59:14
Solo puntualizar en la definición de tiempo real, este término consiste y se cumple si y sólo si en un intervalo de tiempo previamente definido, obtenemos respuestas válidas.

Después hay tipos de tiempo real(tres concretamente), pero bueno, sólo era por dar la definición.


Suerte!!! ;)
Título: Re: Reloj en tiempo real
Publicado por: Enigma en 03 de Noviembre de 2007, 11:45:22
Citar
Solo puntualizar en la definición de tiempo real, este término consiste y se cumple si y sólo si en un intervalo de tiempo previamente definido, obtenemos respuestas válidas.

Después hay tipos de tiempo real(tres concretamente), pero bueno, sólo era por dar la definición.


Suerte!!!

Umm!!!! no entendi, esto.... cual defenición??? :(


En cuanto a Nocturno....

Bueno la cantidad de microsegundos necesaria para que me pueda dar una precisión más exacta de la que me diera si midiera sólo en microsegundos!!

Una preguntica adicional, estuve indagando e investigue que el TC530CPJ, tiene una resolución de 17 bits.... ustedes creen que yo pueda ajustar y programar esto para que se me puedan ver los microsegundos!!!

Soy una novatisima en esto de los reloj en tiempo real!!!! :?

Atte: Enigma... La llanerita de Guayana  :)
Título: Re: Reloj en tiempo real
Publicado por: Nocturno en 03 de Noviembre de 2007, 11:53:39
Bueno la cantidad de microsegundos necesaria para que me pueda dar una precisión más exacta de la que me diera si midiera sólo en microsegundos!!
(http://smileys.sur-la-toile.com/repository/Surpris/choqu%E9-9745.gif) (http://smileys.sur-la-toile.com/repository/Surpris/choqu%E9-9745.gif) (http://smileys.sur-la-toile.com/repository/Surpris/choqu%E9-9745.gif) (http://smileys.sur-la-toile.com/repository/Surpris/choqu%E9-9745.gif) (http://smileys.sur-la-toile.com/repository/Surpris/choqu%E9-9745.gif) (http://smileys.sur-la-toile.com/repository/Surpris/choqu%E9-9745.gif)
Título: Re: Reloj en tiempo real
Publicado por: Enigma en 03 de Noviembre de 2007, 12:18:43
Citar
Bueno la cantidad de microsegundos necesaria para que me pueda dar una precisión más exacta de la que me diera si midiera sólo en microsegundos!!

Jajajajajaja Disculpa quise decir milisegundos!

Bueno la cantidad de microsegundos necesaria para que me pueda dar una precisión más exacta de la que me diera si midiera sólo en milisegundos!!!!!


Atte: Enigma... La llanerita de Guayana 
Título: Re: Reloj en tiempo real
Publicado por: PalitroqueZ en 03 de Noviembre de 2007, 14:05:59
sigo con la enigma de cuantos us quieres medir  :D :D :D

pon un ejemplo: necesito medir 4 us ó 50 us cada vez que quiero sensar X dispositivo...
Título: Re: Reloj en tiempo real
Publicado por: jfh900 en 03 de Noviembre de 2007, 14:22:02
Parece que lo que quiere es realizar medidas (sin especificar ni cuantas, ni cuales), con precisión de microsegundos.

Un saludo
Título: Re: Reloj en tiempo real
Publicado por: reiniertl en 04 de Noviembre de 2007, 20:19:58
A ver Enigma, que tienes a todos "enigmados" por aquí.

Primero define cual es tu tiempo de muestreo, es decir el Ts de tu sistema, con ello sabremos cada que tiempo debes tener una muestra, o cada que tiempo tienes que manda a tu conversor o lo que sea a tomar la muestra, eso es lo primero, o mejor: lo más primero es que investigues un poco sobre la teoría del muestreo, el teorema de Nyquist y la señal que quieres muestrear, y vengas y compartas un poco de esa información aquí porque de otro modo se nos pone difícil ayudarte.

Aparte de eso te garantizo que la tienes difícil con un RTC comercial, lo mejor será que te busques un PLD y te hagas tu propio RTC, en definitiva parace que no te interesan los días de la semana mi del mes sino solo los us, así que puedes resolver quizás con un Timer o con un registro de desplazamiento o un sintetizador con PLL que te de un pulso cada los us o ns que necesitas, o tal ves te baste un cristal y unos inversores, no hay que meterse dentro de un tareco tan complejo, pero si te hace falta un tareco que tome muestras cada ese tiempo y las meta en una memoria RAM todo ello bien rápido (no se olviden de los us), lo mejor es un PLD (CPLD o FPGA, según la envergadura del sistema) y hacer todo el proceso de adquisición y registro de los datos por hw, porque con un sistema a procesadores, me parece que vas a necesitar uno bien gordo, cosa que no es nada simple.

Si además tienes que procesar esa información rápido (supongo que guardar datos sea sólo una parte) seguro vas a necesitar filtros digitales (no te olvides que has muestreado digitalmente la señal, así que se imponen técnicas de procesamiento digital), por tanto multiplicadores digitales y DSP, procesadores de 32 bits y quien sabe que rollo de cosas más.

Por último y sin ofender, me parece que sufres del síndrome del estudiante, el que muchos de nostros hemos padecido, creemos que hacer algún sistema es simple porque así lo parece. Me parece que no tienes idea de lo complejo que puede ser adquirir y procesar muestras a esa velocidad (estamos hablando de millonésimas de segundo) en esos órdendes de tiempo hay que tener en cuenta muchas consideraciones de diseño, el ruido, los circuitos a utilizar, los retardos del canal de medición, la calidad de las componentes pasivas y activas, las alteraciones que la señal sufrirá, la estabilidad del sistema, los filtros activos o pasivos, (recuerda que tu señal es muy rápida así que tienes que tener un sistema con fuerte rechazo al modo común) y muchísimas cosas más, es por eso que muy pocos hacen diseños que trabajen en esos órdenes además que muy pocas en la naturaleza que nos interesa conocer cambian tan rápido.

En conclusión Enigma, si es una tarea de curso lo que andas haciendo te sugiero que te replantees tu trabajo, lo digo por tu propio bien, yo mismo he pasado por eso y no se lo deseo a nadie. Si por el contrario es parte de tu trabajo, me parece que debes comenzar por estudiar bien el campo en el que te metes, no es lo mismo trabajar con señales de baja frecuencia que con cosas tan rápidas, hablamos de señales que son afectadas incluso por la transmisión de radio de tu estación más cercana, por cualquier tareco inhalámbirco que haya por allí cera, etc. Todo eso además de muestrear a una frecuencia tan alta.

Los PICs son microcontrladores rápidos y como has visto a uno de ellos le toma 4 ciclos de reloj, para completar una operación, así que adquirir las muestras, meterlas en una memoria, y procesarlas, no es una tarea fácil para un PIC, ni para cualquier procesador. A los conversores les pasa parecido, los que pueden trabajar a esas frecuencias no son baratos, porque tienen que usar materiales costosos y tecnologías complejas para fabricarlos, todo tiene sentido cuando trabajas con señales analógicas a esas velocidades.

Bueno, basta ya de charla y consejos, toma lo que te parezca bien, el resto déjalo. De todos modos estamos aquí para ayudarte.

Saludos
Reinier

PD: Mario, no pude aguantarme, tú sabrás disculparme.
Título: Re: Reloj en tiempo real
Publicado por: Enigma en 07 de Noviembre de 2007, 21:16:35
Hola que tal.... haber voy a tratar de explicarme lo más que pueda.... Estoy realizando un proyecto, más bien una ambición.... quiero registrar eventos con la mayor precisión posible; este modulo que construiré con el favor de Dios me va a "medir" variables por ejemplo Una variable industrial,o vamos a ponerlo más facil, corriente por ejemplo...

Este modulo, el cual utilizará este reloj de tiempo real estará registrando esta variable, la variable tiene que mantenerse en un nivel fijo (si el sistema está normal), cuando haya un cambio por X ó Y circunstancia el modulo me registrará y guardara esta eventualidad, indicandome con una precisión mínima de microsegundos y máxima de años....:

Por ejemplo:
"Hubo una baja de corriente el dia Miercoles 8 de Noviembre del año 2007, a las 13 horas con 10 minutos 24 segundos 0,024 mili segundos :0,000024 micro segundos"... me entienden??? Y queria saber si hay un reloj de tiempo real, más actualizado que me pueda brindar esas bondades!

Pudiera utilizar los que les dije allá arriba, e investigado acerca de ellos y bueno sólo me brindan precisión en milisegundos (la mínima), se que pudiera adaptarlo a que me contara en microsegundos, pero sería magnifico si hubiera un chip que registrara los microsegundos!!!!


Atte: Enigma... La llanerita de Guayana :P


Título: Re: Reloj en tiempo real
Publicado por: PalitroqueZ en 08 de Noviembre de 2007, 17:52:12
Si es una alternativa, usar otro uC para medir los pulsos y que los eventos que necesites controlar esten en uC principal. También se me ocurre que podrias enviar una información transmitiendola a un ordenador y mediante un software podrias almacenar esas fechas con mayor precisión, pero ya no sería un equipo autónomo.



Título: Re: Reloj en tiempo real
Publicado por: vicent en 08 de Noviembre de 2007, 21:00:16
Lo que propone JCC40 me parece interesante. Yo te propongo otra cosa.

Y si utilizaras el reloj ese que has dicho con precisión de 1s. y cada segundo, resincronizaras con el reloj del pic con el reloj externo?
Me explico, supongo que el reloj externo tendrá alguna interrupción cada segundo, no? Si estoy en lo cierto, puedes poner un contador interno a contar microsegundos, y en cada interrupción, se reinicializará.
En el momento en que hagas alguna lectura, sabrás en que momento exacto te encuentras: año,día,hora,minuto,segundo y microsegundo (o incluso más si configuras el pic a mucha frecuencia, por ejemplo, 48MHz como comentaba JCC40)

Espero haberte ayudado algo.

Un saludo. Au.
Título: Re: Reloj en tiempo real
Publicado por: reiniertl en 09 de Noviembre de 2007, 14:20:35
Bueno, será por mi manía de ver las cosas en contexto, pero no veo mucha utilidad a un data logger que registre eventos con tal precisión, de todos modos las soluciones que te sugieren son interesantes.

Ahora, yo veo un problema muy serio rondando, que te va a caer encima como Espada de Democles, el almacenamiento de esa información, consumirá mucha memoria, porque si bien unavariable cualquiera puede ser bastante estable, mientras más preciso sea tu sistema tanto en el dominio del tiempo como en la tolerancia a las variaciones de la señal, vas a necesitar mucha memoria, esa es una de las causas por las que hay que meter papel y lápiz + calcualdora a cualquier aplicación que se dedique a registrar datos con el objetivo de almacenar justo con la frecuencia y precisión correcta, porque el alamacenamiento es costoso, sobre todo en sistemas autónomos, no porque cueste mucho $$$$ una memoria, sino porque puede complicar las cosas en cuanto a diseño o porque el equipo tabaje con baterías o deba pesar poco, etc.

Hay que pensar muy bien en todo esto cuando hacemos un data logger, no es algo trivial, y si mides en el orden de microsegundos tendrás muchos datos para guardar, pongamos un ejemplo simple:

Supon que quieres registrar solo las variaciones 0.5A en una línea de alimentación de directa que suministra unos 15A en condiciones normales. Has puesto un sensor que es capaz de medir esa variación, por ejemplo uno de efecto Hall, preparado adecuadamente para ello. Eso quiere decir que guardarás en memoria un registro con cambios que estén en el orden de 15 +-0.5A, o sea que si la corriente sube a 15.5 o baja mñas allás de 14.5, metes un registro en memoria.

Sabes por estudios probabilísticos que la corriente varía con niveles superiores a los susodichos 0.5A cada 20us y por ello muestreas la corriente cada 10us (aplicando teorema de Nyquist), así que tienes un promedio de 50 000 muestras que almacenar en memoria cada segundo, tomenado en cuenta que necesites 2 bytes para el dato y 4 para la fecha (si decides guardarla en formato IEEE), necesitas 6 bytes por muestra, así que un promedio de 292.96Kbytes por segundo, lo que considero una cantidad bastante grande, pero para no hacerlo muy estrico digamos que necesitas 290KByte por segundo, si haces otras cuentas tienes que para registrar una hora completa, vas a necesitar: 1026.56MByte, o lo que es lo mismo más de 1GByte por hora, solo para meter datos.

Ahora mira y piensa si eso es realmente lo que te hace falta, pero más aún, piensa si es realmente necesario almacenar tantos datos.

No porque un sistema de cómputo pueda procesar esa cantidad de información y almacenarla, significa que realmente sea necesario utilizarlo.

Saludos
Reinier
Título: Re: Reloj en tiempo real
Publicado por: Enigma en 09 de Noviembre de 2007, 17:58:21
Hola, la verdad que están muy interesantes las propuestas y en vista de que no he encontrado un RTC que mida tal precisión, pues lo haré con el 18F4550...
Ahora lo que dices reinier es un punto muy importante, por eso requiero una alta memoria.... pero si yo reescribiera todo el tiempo en la memoria....??? no serviria....????

Atte: Enigma... La llanerita de Guayana :P
Título: Re: Reloj en tiempo real
Publicado por: reiniertl en 09 de Noviembre de 2007, 18:39:43
Si, serviría por unos 10 días, si fuese flash o EEPROM, porque esas se "gastan" o mejor dicho se desgastan, ahora una RAM puedes usarla por mucho tiempo, pero si vas a reescribir, ¿que sentido tiene guardar día, mes, año siglo?

Hay que pensar bien las cosas Enigma, y sacar muchas cuentas y recuentas. Los datos son útiles cuando aportan información, si por ejemplo no vas a almacenar los datos de hoy para consultarlos el siglo que viene, no te hace falta guardar información del sigo (eso me recuerda al error del milenio, que no fue tan grave como lo pintaron), si la información que guardes ahora no tiene valor informativo dentro de dos horas, no hace falta guardar la hora, porque la teoría de la información plantea que un dato es útil cuando aporta información.

Por ejemplo la siguiente oración no tiene información alguna, al menos para la mayoría de la gente:

El sol sale todos los días, lo hace por el este y se oculta por el oeste.

No tiene información porque en todos los datos aportados no hay nada que la mayoría de la gente no conozca. Ahora si te dijera:

Mañana habrá un eclipse solar a las 12:00 que será visible en el paralelo 87.

Estoy aportando información, porque pocas personas saben cuando y donde serán visibles los eclipses solares.

Me entiendo?
Título: Re: Reloj en tiempo real
Publicado por: Enigma en 09 de Noviembre de 2007, 19:12:42
es que aparte de registrarlo el modulo debe poder recibir por puerto serial la solicitud respectiva para poder entregar toda la data almacenada.... Por eso es que si tiene sentido registrar la hora y los dias, y los años!!! ves??

Atte: Enigma... La llanerita de Guayana  :P
Título: Re: Reloj en tiempo real
Publicado por: Enigma en 09 de Noviembre de 2007, 21:49:18
No vale para nada, de verdad siento si lo han percibido así, no di más detalles al principio porque no lo crei necesario es sólo eso, la cuestión de este foro es de aprender de los demás no? y ayudarnos!

Resumiendo, lo que quiero hacer es un modulo que me registre cambios de una variable "X", los guarde en una memoria, y que tenga la opción de salida serial para que cuando yo pida la data que está guardada, pues la pueda imprimir.... aparte de medir precisión minima en Microsegundo, como le dije anteriormente!

Atte: Enigma... La llanerita de Guayana :D
Título: Re: Reloj en tiempo real
Publicado por: vicent en 09 de Noviembre de 2007, 22:31:30
Creo que he entendido lo que quiere decir.

Lo que pretende es guardar datos con mucha velocidad hasta que se llene la memoria, a partir de ahí, reescribirá el más antiguo.
Cuando le apetezca, conectar el puerto serie y poder sacar la información almacenada para poder leerla tranquilamente, o archivarla, o lo que sea.

Creo que es más un proyecto educativo, o de comprobar si se puede hacer, que un proyecto con utilidad real. ¿Me equivoco Enigma?

Es que realmente, no le veo la utilidad a guardar tanta cantidad de información para leerla cuando puedas. O dispones de una memoria muy elevada, por los cálculos que ha hecho el compañero reiniertl, o vas a sobreescribir información muy pronto como para tener que guardarla, por lo tanto, tampoco te servirá guardar lo del siglo, ni año, ni mes.

Un saludo. Au.
Título: Re: Reloj en tiempo real
Publicado por: jfh900 en 11 de Noviembre de 2007, 10:53:17
Yo tampoco acabo de ver el alcance del proyecto. Por ponerte un ejemplo, intentas medir la distancia a una estrella con una precisión de micras. Simplemente no tiene sentido.

Un saludo
Título: Re: Reloj en tiempo real
Publicado por: Enigma en 11 de Noviembre de 2007, 20:52:46
Bingo!!!! Vicent!!!! exacto y correcto.... es decir, como dices el amigo Vicent, no es un proyecto que va a tener una aplicación industrial, es más bien educativo, para que se sepa que si se puede hacer y pues así demostrar y observar el alcance que puede tener un micro.... no se si me entienden!!!!

Atte: Enigma... La llanerita de Guayana :D