Autor Tema: Reloj en tiempo real  (Leído 7106 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Reloj en tiempo real
« Respuesta #15 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
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Reloj en tiempo real
« Respuesta #16 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.
« Última modificación: 04 de Noviembre de 2007, 20:24:11 por reiniertl »

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Reloj en tiempo real
« Respuesta #17 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


No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re: Reloj en tiempo real
« Respuesta #18 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.



La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado vicent

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 144
    • Web de Vicent
Re: Reloj en tiempo real
« Respuesta #19 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.

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Reloj en tiempo real
« Respuesta #20 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

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Reloj en tiempo real
« Respuesta #21 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
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Reloj en tiempo real
« Respuesta #22 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?

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Reloj en tiempo real
« Respuesta #23 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
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Reloj en tiempo real
« Respuesta #24 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
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado vicent

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 144
    • Web de Vicent
Re: Reloj en tiempo real
« Respuesta #25 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.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Reloj en tiempo real
« Respuesta #26 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
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Reloj en tiempo real
« Respuesta #27 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
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!