Autor Tema: Muestreo de señal con 18F452 Y CCS  (Leído 9396 veces)

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

Desconectado ALE1973

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 229
Muestreo de señal con 18F452 Y CCS
« en: 30 de Mayo de 2006, 09:11:39 »
Hola, me gustaria me den su opinion a fin de saber si es realmente posible realizar esto con el 18F452, la idea es... adquirir una señal de 50Hz para poder calcular el valor TRMS (verdadero valor eficaz), la configuracion tentativa es usar un cristal + el pll del micro a fin de hacerlo correr a la maxima frecuencia.
Todo esto aparte de manejar un display grafico y una comunicacion serie.
A medida que tenga mas datos los ire subiendo, por lo pronto, tengo andando el pic con el display y quiero empezar a ver el tema del muestreo, para continuar o cambiar de micro.

Desde ya gracias.

Saludos.
Alejandro

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Muestreo de señal con 18F452 Y CCS
« Respuesta #1 en: 30 de Mayo de 2006, 09:22:00 »
Hola, me gustaria me den su opinion a fin de saber si es realmente posible realizar esto con el 18F452, la idea es... adquirir una señal de 50Hz para poder calcular el valor TRMS (verdadero valor eficaz), la configuracion tentativa es usar un cristal + el pll del micro a fin de hacerlo correr a la maxima frecuencia.
Todo esto aparte de manejar un display grafico y una comunicacion serie.
A medida que tenga mas datos los ire subiendo, por lo pronto, tengo andando el pic con el display y quiero empezar a ver el tema del muestreo, para continuar o cambiar de micro.

Desde ya gracias.

Saludos.
Alejandro

El 18F452 te puede entregar 10Mips de perfomance con un cristal externo de 10Mhz y el PLLx4.

De todas formas, desconozco de que tipo de señal consta el cálculo del valor eficaz que pretendes calcular (solo puedo asumir que es la de algun consumo por lo que mencionas de los 50Hz) y con que precisión deseas obtenerlo. 

He visto equipos que usan un simple transoformador y tomando el valor de pico calcular el valor eficaz asumiendo que la onda es una sinusoidal perfecta.  Si necesitas mayor precisión, entonces tal vez debas usar otro método para poder integrar la señal, recurriendo a teoría de señales, lo cual puede realmente complicar mucho el cálculo y tal vez debas hasta usar un microcontrolador más potente.

Si acotas mas el problema en cuanto a precisión y explicas un poco más el fenómeno a controlar tal vez te podamos echar mas luz al problema.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado ALE1973

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 229
Re: Muestreo de señal con 18F452 Y CCS
« Respuesta #2 en: 30 de Mayo de 2006, 10:54:09 »
Gracias por contestar...

El proyecto completo es mas o menos asi... El nombre le queda grande pero seria algo asi "Analizador de Red"

Deberia medir 3 tensiones y 3 corrientes, a 50 Hz, (tensiones nominales de red de un sistema trifasico), calcular P, Q y S (potencia activa, reactiva y aparente), Cos Fi, plus, si da, captura de forma de onda para enviar por puerto serie a un programa en la pc, por ahora me interesan las mediciones...
La precision, deberia ser para que cumpla con la Clase 0,5 o 1, la que mejor se llegue.
Pensaba tambien en utilizar directamente un conversor RMS, DC, de analog device, pero no se si se consigue en Argentina.

Espero haber aclarado un poco las cosas, luego ire subiendo algunos datos mas...

Saludos

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Muestreo de señal con 18F452 Y CCS
« Respuesta #3 en: 30 de Mayo de 2006, 12:45:36 »
Echale un vistazo a este post.

Tal vez te de alguna idea y puedes aclarar mas tu punto.

http://www.todopic.com.ar/foros/index.php?topic=8329.0

Si todas las señales tienen el mismo cruce por cero, creo que la cosa se simplifica bastante.

Si además usas un detector de cruce por cero que no sea por software , la cosa se mejora aún más.

Luego con los tiempos que midas a posterior del cruce por cero te determinaran el t que tienes que basado en una tabla (asi no pierdes tiempo haciendo el calculo) puedes obtener el coseno fi correspondiente.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado ALE1973

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 229
Re: Muestreo de señal con 18F452 Y CCS
« Respuesta #4 en: 30 de Mayo de 2006, 15:29:27 »
Maunix, realmente, las tensiones y las corrientes, no van a estar en fase... las tensiones entre si estaran defasadas 120 grados (sistema trifasico), la idea que me ronda es utilizar solo 2 detectores de cruce por cero, uno para la corriente y otro para la tension, con el metodo que plantean en el post que me pasaste, luego ir cambiando de par tension corriente hasta leer todos los valores...
 
Voy a seguir viendo esto y les cuento...

Para solucionar el tema del calculo del valor rms, encontre en analog device un conversor rms to dc.... hay que ver si se consigue en argentina...

Saludos.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Muestreo de señal con 18F452 Y CCS
« Respuesta #5 en: 30 de Mayo de 2006, 15:46:24 »
Muy bien, espero puedas solucionarlo y si se te puede ayudar en algo, no dudes en postear tu duda.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado ALE1973

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 229
Re: Muestreo de señal con 18F452 Y CCS
« Respuesta #6 en: 01 de Junio de 2006, 09:39:10 »
Hola de nuevo, estoy preparando para el muestreo de la señal de alterna, la capacidad que tiene el CCP module del pic de hacer un disparo del AD, asi con el Timer3 cada vez que "rebalse", dispara la conversion AD, configuro para que el AD proboque una interrupcion y asi voy tomando las muestras... Esta es mi idea, cuando la pruebe, les cuento, pero esto me genera una duda... supongamos que quiero hacer 1000 muestras en 20 ms, pensaba hacer una array de int16 para almacenar los resultados del AD, y con un puntero cargar ese array, luego a medida que se va cargando, lo voy transmitiendo por rs232 con otro puntero... como ven esto...
Ahora me encuentro con otro problema... la medicion de corriente, pensaba hacerlo con unos sensores de efecto hall, pero el precio en Argentina, es descabellado... u$s40 cada uno... alguien sabe si se consiguen transformadores de corriente comunes (bobinados), para plaqueta, o de que otra forma segura podemos medir la corriente.... he visto en un instrumento de square D, que usan unos, pero supongo que han de ser fabricados por ellos mismos.

Bueno, seguire comentando mis avances... (cuando avance....)

Saludos.
Alejandro.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Muestreo de señal con 18F452 Y CCS
« Respuesta #7 en: 01 de Junio de 2006, 12:58:41 »
Hola de nuevo, estoy preparando para el muestreo de la señal de alterna, la capacidad que tiene el CCP module del pic de hacer un disparo del AD, asi con el Timer3 cada vez que "rebalse", dispara la conversion AD, configuro para que el AD proboque una interrupcion y asi voy tomando las muestras... Esta es mi idea, cuando la pruebe, les cuento, pero esto me genera una duda... supongamos que quiero hacer 1000 muestras en 20 ms, pensaba hacer una array de int16 para almacenar los resultados del AD, y con un puntero cargar ese array, luego a medida que se va cargando, lo voy transmitiendo por rs232 con otro puntero... como ven esto...

Lo veo imposible, te paso a explicar las razones.

1) 1000 muestras en 20 mseg es como una muestra cada 20useg.  Al A/D no le da la velocidad para tanta velocidad.

2) Si haces eso, estarias todo el tiempo empleando la lectura A/D, de nada te sirve usar interrupciones porque demorarias tiempo en ir y venir del vector de interrupcion.  Eso demora algunos microsegundos que te seran utiles para guardar los datos.

3) 1000 datos de 16 bits = 2000 bytes.  Ese pic tiene 1536 bytes.

4) Transmitirlo a la PC? a que velocidad? Las mediciones seran continuas sin parar? Es para tu fase de prueba?  Tenia entendido que querias hacer un equipo autonomo sin PC, es decir que el PIC calcule el valor eficaz.

Respeto al precio de los sensores y de transformadores no te puedo ayudar pero seguro consigues quien te arme uno 'casero' mas que suficiente para las pruebas.  Ademas en 50Hz no hay exigencias del nucleo a utilizar ni nada por el estilo.

Saludos



- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado ALE1973

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 229
Re: Muestreo de señal con 18F452 Y CCS
« Respuesta #8 en: 01 de Junio de 2006, 15:32:38 »
Maunix, si, es solo fase de prueba, el equipo tendria un comando que haria una captura de la forma de onda, pero de todos modos, casi que lo estoy descartando, debido a lo que mencionas... primero por la memoria del pic aunque el array no es para todos los datos, la idea era la de un buffer circular, con un puntero para escribirlo (AD) y otro para leerlo (tx), segundo por lo que dices del tiempo que estaria haciendo esto, y suponiendo que lo logre, el micro estaria 20ms solo capturando y enviando a la pc (115200).

Respecto a los Ti, supongo que tendre que solucionarlo por ahora de esa forma...

Gracias de nuevo.
Saludos.


Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Muestreo de señal con 18F452 Y CCS
« Respuesta #9 en: 01 de Junio de 2006, 17:39:37 »
Muy bien Alejandro, no dejes de contarnos tus novedades :) 
El tema es que asi uses un buffer circular no te daria el tiempo para todo lo que pretendes en 20useg. 

Si amplias las muestras a 100useg (el cual es un tiempo mas razonable) habras obtenido unas 200 muestras en 20mseg. 

Eso equivale a 360/200 = 1.4 , es decir un punto por grado y medio (pensando en que un ciclo completo de la onda sinusoidal sean 360 grados) lo cual

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado ALE1973

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 229
Re: Muestreo de señal con 18F452 Y CCS
« Respuesta #10 en: 01 de Junio de 2006, 18:11:47 »
Maunix, estoy haciendo los calculos con 256 muestras, para ver la presicion del calculo RMS, lo que da una muestra cada 78us con el micro a 48mhz(el f4520), sobra tiempo de instruccion, lo que me falta calcular es si da el AD, que necesita 12Tads, a 1,6us minimo (sugerido por el datasheet)+ 2us de carga de capacitor, da algo asi como 21,2us por convesion, quedarian casi 57us (683 instrucciones) para hacer calculos.
Podrias corroborar si he calculado bien....(jeje  segunda opinion).

Bueno, despues sigo.

Gracias.
Saludos.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Muestreo de señal con 18F452 Y CCS
« Respuesta #11 en: 01 de Junio de 2006, 19:48:21 »
Maunix, estoy haciendo los calculos con 256 muestras, para ver la presicion del calculo RMS, lo que da una muestra cada 78us con el micro a 48mhz(el f4520), sobra tiempo de instruccion, lo que me falta calcular es si da el AD, que necesita 12Tads, a 1,6us minimo (sugerido por el datasheet)+ 2us de carga de capacitor, da algo asi como 21,2us por convesion, quedarian casi 57us (683 instrucciones) para hacer calculos.
Podrias corroborar si he calculado bien....(jeje  segunda opinion).

El Datasheet del 18F4520 dice --> Two External Clock modes, up to 40 MHz
Operating Frequency: DC-40MHz

Por lo que el cálculo que haces a 48Mhz es incorrecto.

El otro cálculo es estimativo, , es decir los 1.6useg son certeros porque lo defines con la configuración del clock del A/D pero el tiempo de carga del capacitor es dependiente de tu circuito.

Luego supongamos 25useg para estar seguros.

Además de esto, fijate lo siguiente que nos dice el datasheet:

After the A/D conversion is completed or aborted, a 2 TAD wait is required before the next acquisition can be started. After this wait, acquisition on the selected channel is automatically started.

si bien es algo que no te afecta directamente (porque puedes hacer otra cosa) sí es algo que tienes que tener en cuenta en tu software, que no DEBES disparar nuevamente el A/D hasta no haber transcurrido esos 2 TAD que serían algo así como 3.2useg.

Por último, a máxima velocidad tu ciclo de instrucción será de 100nseg (10Mips).  Si supones entre 57 a 53 useg disponibles tendrás algo mas que 500 instrucciones.  El tiempo te 'alcanza' para hacer otra cosa pero deberás emplearlo muy bien y si solo son 256 muestras (512 bytes) no tendrás ningun inconveniente.  Yo que tu 1ro haría la medición y luego tranquilo la paso a la PC.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado ALE1973

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 229
Re: Muestreo de señal con 18F452 Y CCS
« Respuesta #12 en: 02 de Junio de 2006, 08:46:03 »
Tenes razon Maunix, estaba confundido con el f4550.
La idea para el calculo no seria almacenar los 256 datos en memoria, ya que seria demasiada memoria en datos, la idea era ir calculando a medida de que se obtiene, entre muestra y muestra, para ello tengo que ver cuanto tiempo tarda las operaciones, en C, despues lo verifico...
Bueno, gracias por las respuestas.

Saludos.
Alejandro.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Muestreo de señal con 18F452 Y CCS
« Respuesta #13 en: 02 de Junio de 2006, 17:25:40 »
Tenes razon Maunix, estaba confundido con el f4550.
La idea para el calculo no seria almacenar los 256 datos en memoria, ya que seria demasiada memoria en datos, la idea era ir calculando a medida de que se obtiene, entre muestra y muestra, para ello tengo que ver cuanto tiempo tarda las operaciones, en C, despues lo verifico...

Ok, solo como un unico consejo.  No se que calculo pretendes realizar pero si te puedo aconsejar que trates de usar operaciones con enteros y evites las operaciones en coma flotante. 

El compilador puede retrasar 'algo' con respecto a hacerlo en ensamblador pero lo que mas importancia tiene a la hora de los delays es la de tener muy en cuenta que tipo de operandos uno utiliza.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado ALE1973

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 229
Re: Muestreo de señal con 18F452 Y CCS
« Respuesta #14 en: 03 de Junio de 2006, 08:00:05 »
Si Maunix, es lo que me preocupa de "C", no pude sentarme todavia a revisar los tiempos, pero los calculos que se deberian realizar son los de las areas por debajo de la curva para poder luego calcular el valor del rms, eso incluye por lo menos un calculo del seno de un angulo, y sinceramente no creo que alcance el tiempo, cada vez me gusta mas la idea de un CI externo para el calculo del RMS, a menos que salte a un DSPic, con lo cual la historia seria otra.

Saludos.