elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  PWM con salida en 4 pines de un pic desfasados entre ellos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: PWM con salida en 4 pines de un pic desfasados entre ellos  (Leído 16,521 veces)
xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
PWM con salida en 4 pines de un pic desfasados entre ellos
« en: 17 Mayo 2013, 00:53 am »

Buenas a todos,

necesito programar un pic para dar un PWM por hardware en 4 pines con los pulsos solapados entre ellos. algo asi que espero que se entienda:

salida 1: __-----_________
salida 2: ____-----_______
salida 3: ______-----_____
salida 4: ________-----___

el tema es que me han pedido que investigue si es posible hacerlo con el modulo EPWM de algun pic o sino con el modulo SMPS de algun dspic. con el EPWM he estado leyendo el datasheet y no parece que haya ningun modo de funcionamiento asi, pero nunca se sabe. por software ya me han dicho que no ya que entonces el micro no podria hacer apenas nada mas.

entonces pregunto.. alguien sabe si es posible hacerlo? y si es que si, me pueden dar alguna palabra clave o un tema especifico para buscarlo?

muchas gracias!


En línea

Firos
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.410


Enseña lo que sepas... y oculta lo peor...


Ver Perfil
Re: PWM con salida en 4 pines de un pic desfasados entre ellos
« Respuesta #1 en: 18 Mayo 2013, 17:05 pm »

No entiendo muy bien qué es lo que quieres hacer pero por software no parece muy complicado.


De hecho, si tienes 4 salidas PWM es tan facil como configurar las 4, calcular un tiempo de estado lógico uno de... por ejemplo 1 segundo cada uno, y cuando uno lleve 60ms activar el otro.


Podrias hacerlo activando uno, haciendo un retardo de 60ms y activar el segundo, hacer un retardo de 60ms y activar el tercer; y asi sucesivamente, haciendo  un bluce de 5.


Un saludo.


En línea

El final del camino no está determinado, lo determinamos nosotros mismos paso a paso, día a día, y se puede cambiar.
xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: PWM con salida en 4 pines de un pic desfasados entre ellos
« Respuesta #2 en: 18 Mayo 2013, 17:15 pm »

gracias por responder, pero como ya dije por software ya me han dicho que no lo haga, ya que con tanto retardo el micro no podria hacer nada mas.

el tema es si hay algun modo de funcionamiento por hardware que haga lo que he explicado. por ejemplo, igual que hay un modo half-bridge en el modulo EPWM, en el que tu lo configuras y te da la salida PWM por un pin y su complementaria por otro, sin necesidad de preocuparse de retardos ni nada.

me aconsejaron informarme sobre el modulo para el control de fuentes conmutadas (SMPS) de algun dspic, pero ya he estado buscando y no encontre nada, igual porque no usaba las palabras correctas. asi que a ver si alguien tiene alguna idea...

gracias igualmente!
En línea

skapunky
Electronik Engineer &
Colaborador
***
Desconectado Desconectado

Mensajes: 3.667


www.killtrojan.net


Ver Perfil WWW
Re: PWM con salida en 4 pines de un pic desfasados entre ellos
« Respuesta #3 en: 19 Mayo 2013, 01:52 am »

Por programación de software quizá gastes la capacidad de trabajo del micro haciendo retardos, pero piensa que los micros tienen temporizadores, como mínimo 2 o 3 que puedes configurar.

Mucha gente usa rutinas de tiempo mediante software..pero el úso de temporizadores es muy útil aunque claro...debes configurarlos.
En línea

Killtrojan Syslog v1.44: ENTRAR
xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: PWM con salida en 4 pines de un pic desfasados entre ellos
« Respuesta #4 en: 19 Mayo 2013, 22:40 pm »

ya bueno pero es que ya me dijeron explicitamente que no lo hiciera por software asi que esa opcion esta completamente descartada.

con los temporizadores ya lo habia pensado, estoy con el pic18f458 que tiene 4 timers disponibles, aunque preferiria (si existiera) otra solucion ya que no se si luego tendre que usar alguno. bueno ya lo preguntare el martes y a ver que me dicen...

gracias por responder!
En línea

Firos
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.410


Enseña lo que sepas... y oculta lo peor...


Ver Perfil
Re: PWM con salida en 4 pines de un pic desfasados entre ellos
« Respuesta #5 en: 21 Mayo 2013, 13:42 pm »

Podrías hacer que se activaran por interrupción externa. Seguramente te habrán dicho que hagas eso con el módulo SMPS.

Haciendo una pequeña búsqueda he encontrado este: Viper50/SP: http://www.datasheetcatalog.org/datasheet/SGSThomsonMicroelectronics/mXyywxv.pdf

¿No te pide ningún tiempo de DUTY CYCLE?


Pues no es tan difícil... si el Viper50/SP te da una señal pulsatoria pues es tan fácil como hacerlo por interrupción externa, variación de puerto o flancos externos.

- Detecta señal externa.
- Aumenta contador (indica qué PWM activar).
- Compara para detectar qué PWM es.
- contador es = a 3 o 4? (ha llegado al final?) borrar contador
- goto hasta el que tengas que activar.
- Activa PWM.
- Sleep.


Aunque vamos... yo antes que usar un SMPS usaría un AOP (amplificador operacional) o una puerta lógica NAND con un condensador, una resistencia y un potenciómetro para hacer un circuito oscilador (el mismo efecto que conseguimos con el SMPS) y haciéndo un cálculo mínimo ajustarle la frecuencia al tiempo que tu quieras y voalá, ya tendríamos señal externa pulsatoria para generar las interrupciones externas.

 :)



Un saludo!
« Última modificación: 21 Mayo 2013, 16:06 pm por Firos » En línea

El final del camino no está determinado, lo determinamos nosotros mismos paso a paso, día a día, y se puede cambiar.
xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: PWM con salida en 4 pines de un pic desfasados entre ellos
« Respuesta #6 en: 21 Mayo 2013, 15:06 pm »

Muchas gracias Firos, esto me será de gran ayuda. Me miraré bien estas dos alternativas a ver si puedo sorprender a mi jefe que ahora estoy en periodo de prueba... xD

Citar
¿No te pide ningún tiempo de DUTY CYCLE?

Bueno no me han dicho nada sobre eso. Solo me dijo que quería los pulsos solapados, así que ya intentaré hacer algo para dejarlo en función de una variable.

Citar
Haciendo una pequeña búsqueda he encontrado este: Viper50/SP

Como curiosidad, qué buscaste para dar con estos resultados? Porque estuve un rato poniendo cosas como "pwm phase shifted" ademas de "smps" y cosas así, y no encontré nada que me iluminara.

Gracias de nuevo!

edito:

Citar
Aunque vamos... yo antes que usar un SMPS usaría un AOP (amplificador operacional) o una puerta lógica NAND con un condensador, una resistencia y un potenciómetro para hacer un circuito oscilador (el mismo efecto que conseguimos con el SMPS) y haciéndo un cálculo mínimo ajustarle la frecuencia al tiempo que tu quieras y voalá, ya tendríamos señal externa pulsatoria para generar las interrupciones externas.

Pero a ver... el SMPS, no es más que un módulo ECCP mejorado no? Con más rapidez y precisión, y algunos modos de funcionamiento más. Entonces lo que tu me comentas de detectar interrupciones externas... Se haría el PWM por software o con el módulo SMPS? Quiero decir, al detectar la interrupción, tendría que ir cambiando los pines de salida para hacer los pulsos, o solo sería activarlo una vez y ya luego el módulo continuaría con el PWM?

No sé si me he explicado muy bien así que si necesitas que lo aclare un poco dímelo...

Un saludo!
« Última modificación: 21 Mayo 2013, 15:11 pm por xiruko » En línea

Firos
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.410


Enseña lo que sepas... y oculta lo peor...


Ver Perfil
Re: PWM con salida en 4 pines de un pic desfasados entre ellos
« Respuesta #7 en: 21 Mayo 2013, 15:59 pm »

Mmmm a lo mejor no te he entendido del todo.


Tu lo que necesitas hacer es que el PIC que tienes genere 4 señales escalonadas por 4 PWM's distintos, ¿no?

Pues ahora, solo te falta definir cómo tiene que trabajar el PIC, si no quieres hacerlo por software para que el PIC no tenga "tanto trabajo" (que sigo pensando que ese trabajo es mínimo, puesto que si configuras los timers con interrupción puedes seguir haciendo otras cosas) pues tendrás que hacerlo de forma externa.

Para hacerlo de forma externa la única manera que se me ocurre ahora mismo es mediante impulsos externos, ya sea por una patilla de interrupción, o por una patilla de un puerto por variación o por detección de flanco.

Yo activaría las interrupciones externas en el PIC por la patilla X y me olvidaría de configurar nada más. De tal forma que cuando se detecte una variación en esa patilla saltase a una interrupción, desactivando uno de los PWM's y activando el siguiente y saldría de la interrupción. Salta otra interrupción, desactivas el PWM's activado anteriormente y conectas el siguiente (con una diferencia de menos de 1us trabajando a 8Mhz o menos si el PIC trabaja con más frecuencia). Y así en un bucle. En este caso el microprocesador esta completamente sin hacer nada, puesto que estarías esperando a una interrupción externa.


Exactamente no se como funciona un módulo SMPS... nos explicaron las fuentes conmutadas muy por encima pero el funcionamiento creo que era básicamente un circuito que se encargaba de conmutar (que creo que era el SMPS) la tensión de salida del puente recitificador, elevando la frecuencia, con lo que se conseguía perder menos potencia por el circuito conmutador que se calentaba menos.

Por esto he llegado a la conclusión de que si lo que quieres es un SMPS para generar una serie de "impulsos" que lleguen al PIC en forma de señal cuadrada para hacer lo anteriormente descrito, podrías hacerlo mejor con un circuito oscilador que te genere una señal cuadrada. Con una puerta NAND trigger schmitt, un condensador, una resistencia y un potenciómetro lo tienes hecho. De tal forma que no tienes que incluir el SMPS y es posible que ahorres dinero, peeeeeeeero, que siempre hay peros, el circuito oscilador requiere que le configures la señal manualmente y nunca será la misma en todos los dispositivos por temas de tolerancia. Es posible que el SMPS solucione esto. Así que... tu mismo :)


Si me pones exactamente cómo lo quieres hacer exactamente podría concretar más :)



Un saludo.



AÑADO:


Se me olvidaba!! La búsqueda que he hecho en Google ha sido: "fuentes conmutadas schematic smps". ¿Por qué?... Pues porque buscando sólo fuentes conmutadas salían fabricantes, con smps podían salirme referencias a cualquier cosa y poniendo esas cuatro palabras reduzco toda la busqueda a páginas donde haya un esquema de una fuente con un SMPS, en el cual habrá un componente con una referencia  :P .

Hay veces que al realizar búsquedas tienes que hacerlo especificando un poco "quién" y "cómo" lo expondría alguien explicándolo en alguna página. Si pones el nombre de algo muy concreto es posible que te de resultados de fabricantes y cosas así.
« Última modificación: 21 Mayo 2013, 16:06 pm por Firos » En línea

El final del camino no está determinado, lo determinamos nosotros mismos paso a paso, día a día, y se puede cambiar.
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: PWM con salida en 4 pines de un pic desfasados entre ellos
« Respuesta #8 en: 22 Mayo 2013, 14:58 pm »

Hola:

Este es un ejemplo en asm y otro en C para el PIC16F886.

Código
  1. Los módulos CCPx
  2. ;PWM mejorado. Se aplica sólo al generador PWM del módulo CCP1.
  3. ;
  4. ;El modo puente en H (Full-Bridge). Genera cuatro señales de salida para controlar las cuatro
  5. ;entradas típicas de un puente en H. En el modo directo la salida RC2/P1A se mantiene activa
  6. ;mientras que por RB4/P1D se obtiene la señal PWM. RB2/P1B y RB1/P1C se mantienen inactivas.
  7. ;En el modo inverso la salida RB1/P1C se mantiene activa mientras que por RB2/P1B se obtiene
  8. ;la señal PWM. RC2/P1A y RB4/P1D se mantienen inactivas.
  9. ;
  10. ;En el ejemplo se genera una señal PWM a partir de una tensión analógica por RA0/AN0. Mediante
  11. ;la entrada digital RA2 se controla el modo: a "0" modo directo, a "1" modo inverso del puente H.
  12. ;
  13. ;Con un osciloscopio de doble trazo podemos analizar las señales de salida: en RC2/P1A y RB4/P1D
  14. ;para el modo directo y en RB1/P1C y RB2/P1B para el modo inverso. También podríamos emplear un
  15. ;analizador lógico para visualizar simultáneamente las 4 señales. Nosotros hemos empleado el
  16. ;modelo PoScope Basic 2 en el modo analizador de funcionamiento.
  17.  
  18. List p=16F886 ;Tipo de procesador
  19. include "P16F886.INC" ;Definiciones de registros internos
  20.  
  21. ;Ajusta los valores de las palabras de configuración durante el ensamblado.Los bits no empleados
  22. ;adquieren el valor por defecto.Estos y otros valores se pueden modificar según las necesidades
  23.  
  24. __config _CONFIG1, _LVP_OFF&_PWRTE_ON&_WDT_OFF&_EC_OSC&_FCMEN_OFF&_BOR_OFF ;Palabra 1 de configuración
  25. __config _CONFIG2, _WRT_OFF&_BOR40V ;Palabra 2 de configuración
  26.  
  27. Periodo equ .200 ;Valor para el periodo de 3200uS (200*Preescaler de 16)
  28.  
  29. Duty_H equ 0x20
  30. Duty_L equ 0x21 ;Variable para la anchura de pulso
  31.  
  32. org 0x00 ;Vector de RESET
  33. goto Inicio
  34. org 0x05
  35.  
  36. ;Programa principal
  37.  
  38. Inicio   bsf STATUS,RP0
  39. bsf STATUS,RP1 ;Banco 3
  40. movlw b'00000001'
  41. movwf ANSEL ;RA0/AN0/C12IN0- entrada analógica, resto digitales
  42. clrf ANSELH ;Puerta B digital
  43. bcf STATUS,RP1 ;Banco 1
  44.  
  45. ;RC2/P1A, RB2/P1B, RB1/P1C y RB4/P1D salidas PWM para el puente en H ("Full-Bridge")
  46. movlw b'11101001'
  47. movwf TRISB
  48. movlw b'11111011'
  49. movwf TRISC
  50.  
  51. ;Configuración del ADC
  52. clrf ADCON1 ;Alineación izda. Vref= VDD para el convertidor
  53. bcf STATUS,RP0 ;Banco 0
  54.  
  55. ;El periodo se determina según el valor de la constante "Periodo". Este se carga sobre el
  56. ;registro PR2.
  57. movlw Periodo-1
  58. bsf STATUS,RP0 ;Selecciona página 1
  59. movwf PR2
  60. bcf STATUS,RP0 ;Selecciona página 0
  61.  
  62. ;Trabajando con un preescaler 1:16 y a una frecuancia de 4MHz, el TMR2 evoluciona cada 16 uS.
  63. movlw b'00000111'
  64. movwf T2CON ;TMR2 en On
  65.  
  66. ;Se activa el ADC y se selecciona el canal RA0/AN0. Frecuencia de trabajo Fosc/32
  67. Loop movlw b'10000001'
  68. movwf ADCON0 ;ADC en On, seleciona canal AN0
  69. bcf PIR1,ADIF ;Restaura el flag del conversor AD
  70. bsf ADCON0,GO ;Inicia la conversión
  71.  
  72. ;Esperar el final de la conversión y leer el resultado
  73. ADC_Wait_0 btfss PIR1,ADIF ;Fin de conversión ??
  74. goto ADC_Wait_0 ;Todavía no
  75. movf ADRESH,W
  76. movwf Duty_H ;Registra valor actual para el periodo
  77. bsf STATUS,RP0 ;Selecciona página 1
  78. rrf ADRESL,F
  79. rrf ADRESL,W
  80. bcf STATUS,RP0 ;Selecciona página 0
  81. andlw b'00110000'
  82. movwf Duty_L ;Salva parte baja de la conversión
  83.  
  84. ;El módulo CCP1 se configura en modo PWM en puente en H (Full-Bridge) con salidas por RC2/P1A,
  85. ;RB2/P1B, RB1/P1C y RB4/P1D. Los bits LSB se obtienen de la variable Duty_L
  86.  
  87. movlw b'01001100'
  88. iorwf Duty_L,F
  89. movwf CCP1CON ;Modo PWM directo para el módulo CCP1
  90.  
  91. ;Si RA2=1 se selecciona el modo inverso
  92. btfsc PORTA,2
  93. bsf CCP1CON,P1M1
  94.  
  95. ;La anchura del pulso o "Duty" se determina según el valor con que se cargue el registro
  96. ;CCPR1L concatenado con los bits 4 y 5 de CCP1CON. Dichos valores se obtiene de las varia-
  97. ;bles Duty_H y Duty_L respectivamente.
  98.  
  99. movf Duty_H,W
  100. movwf CCPR1L
  101.  
  102. goto Loop
  103.  
  104. end ;Fin del programa fuente
  105.  


En C de CCS:
Código
  1. /*
  2. Los módulos CCPx
  3. PWM mejorado. Se aplica sólo al generador PWM del módulo CCP1.
  4.  
  5. El modo puente en H (Full-Bridge). Genera cuatro señales de salida para controlar las cuatro
  6. entradas típicas de un puente en H. En el modo directo la salida RC2/P1A se mantiene activa
  7. mientrás que por RB4/P1D se obtiene la señal PWM. RB2/P1B y RB1/P1C se mantienen inactivas.
  8. En el modo inverso la salida RB1/P1C se mantiene activa mientrás que por RB2/P1B se obtiene
  9. la señal PWM. RC2/P1A y RB4/P1D se mantienen inactivas.
  10.  
  11. En el ejemplo se genera una señal PWM a partir de una tensión analógica por RA0/AN0. Mediante
  12. la entrada digital RA2 se controla el modo: a "0" modo directo, a "1" modo inverso del puente H.
  13.  
  14. Con un osciloscopio de doble trazo podemos analizar las señales de salida: en RC2/P1A y RB4/P1D
  15. para el modo directo y en RB1/P1C y RB2/P1B para el modo inverso. También podríamos emplear un
  16. analizador lógico para visualizar simultáneamente las 4 señales. Nosotros hemos empleado el
  17. modelo PoScope Basic 2 en el modo analizador de funcionamiento. */
  18.  
  19. #include <16f886.h>
  20.  
  21. /* Ajusta los valores de las palabras de configuración durante el ensamblado.Los bits no empleados
  22. adquieren el valor por defecto.Estos y otros valores se pueden modificar según las necesidades */
  23.  
  24. #fuses NOLVP,PUT,NOWDT,EC_IO,NOFCMEN,NOBROWNOUT //Palabra 1 de configuración
  25. #fuses NOWRT,BORV40 //Palabra 2 de configuración
  26.  
  27. /* Con estas directivas las funciones "input" y "output_bit" no reprograman
  28. el pin de la puerta cada vez que son utilizadas. Si no se indica el
  29. modo fast_io se asume por defecto standard_io el cual reprograma el pin
  30. siempre antes de ser utilizadas estas funciones. */
  31.  
  32. #use fast_io (B)
  33. #use fast_io (C)
  34.  
  35. #define CCP_DELAY 100
  36.  
  37. int periodo=200; //Valor para el periodo de 3200uS (200*Preescaler de 16)
  38.  
  39. main()
  40. {  
  41. //RC2/P1A, RB2/P1B, RB1/P1C y RB4/P1D salidas PWM para el puente en H ("Full-Bridge")
  42. set_tris_b(0b11101001);
  43. set_tris_c(0b11111011);
  44.  
  45. //Configura el ADC
  46. setup_adc_ports(sAN0); //RA0 entrada analógica
  47. setup_adc(adc_clock_div_32); //Ajusta frecuencia de muestreo del ADC
  48.  
  49. //El TMR2 trabaja con un preescaler 1:16 por lo que con una frecuencia de 4MHz evoluciona
  50. //cada 16uS ((4*Tosc)*16)
  51.  
  52. setup_timer_2(T2_DIV_BY_16,periodo-1,1); //Carga el periodo y TMR2 en ON
  53.  
  54. while(1)
  55. {
  56. /* El módulo CCP1 se configura en modo PWM en puente en H (Full-Bridge) con salidas por RC2/P1A,
  57. RB2/P1B, RB1/P1C y RB4/P1D. El modo directo o inverso se selecciona en función del estado de RA2 */
  58.  
  59. if(input(PIN_A2)==0)
  60. setup_ccp1(CCP_PWM_FULL_BRIDGE|CCP_PWM_H_H); //RA1=0, Modo directo
  61. else
  62. setup_ccp1(CCP_PWM_FULL_BRIDGE_REV|CCP_PWM_H_H);//RA1=1, Modo inverso
  63.  
  64. //Se activa el ADC y se selecciona el canal RA0/AN0.
  65.  
  66. set_adc_channel(0); //Selección del canal 0 (RA0)
  67. CCP_1_LOW=read_adc(); //Inicia la conversión y carga la anchura del pulso
  68. }
  69. }
  70.  

Espero que te de algo de ideas.

Un saludo.
En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: PWM con salida en 4 pines de un pic desfasados entre ellos
« Respuesta #9 en: 24 Mayo 2013, 01:21 am »

@Firos

Citar
Pues ahora, solo te falta definir cómo tiene que trabajar el PIC, si no quieres hacerlo por software para que el PIC no tenga "tanto trabajo" (que sigo pensando que ese trabajo es mínimo, puesto que si configuras los timers con interrupción puedes seguir haciendo otras cosas) pues tendrás que hacerlo de forma externa.

No lo he probado, pero tratándose de que necesito una frecuencia del PWM de unos 50KHz y de que el micro trabaja a 40MHz (100 nsec/instrucción), si configurara los timers para cambiar los pines por la interrupción, el micro no pararía de entrar y salir de interrupciones. Además recuerda que dije que los pulsos deben estar solapados, por lo que en 20usec el micro debería entrar 8 veces en la rutina de interrupción para cambiar pines, y así a ojo la ISR tendrá unas 15-20 instrucciones entre contadores, cambios de pin, y otras instrucciones de control, así que los 20usec estarían casi exprimidos sin dejar al micro hacer mucho más.

Citar
Yo activaría las interrupciones externas en el PIC por la patilla X y me olvidaría de configurar nada más. De tal forma que cuando se detecte una variación en esa patilla saltase a una interrupción, desactivando uno de los PWM's y activando el siguiente y saldría de la interrupción. Salta otra interrupción, desactivas el PWM's activado anteriormente y conectas el siguiente (con una diferencia de menos de 1us trabajando a 8Mhz o menos si el PIC trabaja con más frecuencia). Y así en un bucle. En este caso el microprocesador esta completamente sin hacer nada, puesto que estarías esperando a una interrupción externa. [...]

Bueno esto sería complicado por el tema de que los pulsos deben estar solapados. Debería llevar algunos contadores para detectar cuando tengo que llevar un pin a alto y cuando debo llevarlo a bajo. Supongo que se podría hacer y es buena idea pero ya me han dicho que quieren evitar a toda costa el uso de circuitería de control externa al micro, así que... xD

En fin, ya me han dado otras tareas para hacer y me han dicho que me olvide de eso. De hecho ni ellos saben qué sistema van a implementar cuando en 1 mes y poco deben entregar el proyecto... Pero bueno, yo soy un mandado así que ellos sabrán.

Igualmente gracias por la ayuda, todo lo que pueda aprender mientras estoy de prácticas es más que bienvenido :D

@Meta

Te agradezco también la ayuda pero... No has leído el hilo verdad? xD

Si te fijas el programa que has puesto solo se parece a lo que había pedido porque salen las siglas PWM, pero por lo demás... Pero bueno gracias igualmente, supongo que a alguien le servirá.

Un saludo!
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines