Autor Tema: Un problema con caída de corriente.  (Leído 8292 veces)

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

Desconectado flacoclau

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1692
    • El Micro Reactor
Re: Un problema con caída de corriente.
« Respuesta #30 en: 16 de Abril de 2008, 20:52:20 »
una duda me carcome, porqué tantos micros? que función cumple cada uno?
no se podría hacer que uno solo realice todo el trabajo?
saludos.
Las personas con buena ortografía me atraen textualmente.

El Micro Reactor

Córdoba capital - Argentina.

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: Un problema con caída de corriente.
« Respuesta #31 en: 17 de Abril de 2008, 07:56:07 »
Hola literatronic!

Con los 2 esquemas es más fácil ver lo que puede estar pasando  :mrgreen:

Te voy a comentar un par de cosas de vital importancia por orden de prioridad. Yo creo que si no cumples esas premisas es prácticamente imposible que te funcione.

Tienes que poner condensadores de desacoplo. Condensadores de 100nF entre Vcc y GND en cada integrado (lo más cerca de las patillas que puedas). No me explico como te funciona sin esos condensadores  :shock: (también recomiendo un condensador adicional de desacoplo de 10uF en paralelo con el de 100nF cuando hay relés de por medio).

Yo creo que si pones los condensadores de desacoplo reducirás enormemente el índice de cuelgues.

Otra cosa a tener muy en cuenta son los relés. En que pines están concretamente? Cual es el esquema definitivo que utilizas para las entradas digitales?

Concreta lo de los relés porfa.

También sería de utilidad que pusieras los fuses que utilizas en el programa.


Un saludo desde Alicante.

Desconectado literatronic

  • PIC12
  • **
  • Mensajes: 98
Re: Un problema con caída de corriente.
« Respuesta #32 en: 17 de Abril de 2008, 10:00:51 »

Tengo otra tarjeta auxiliar, montada en una universal, que hice siguiendo el diseño de flacoclau, con la 4 entradas digitales que vienen de los transistores de los opto acopladores al conector IN DIG y con las señales que vienen de los relés alimentando los led que los activan (con alimentación independiente).


Azicuetano gracias por tu interés y consejos  :)

Adjunto el esquema de como tengo conectadas las entradas digitales.

Lo de los condensadores de desacople no lo sabía, pero el amigo flacoclau ya me lo había recomendado y ya puse unos de 10nF, voy a cambiarlos por de 100nF. ¿En el AD595 y en el 75176 también?

Muchas gracias.

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: Un problema con caída de corriente.
« Respuesta #33 en: 17 de Abril de 2008, 10:50:35 »
Hola literatronic!

Los condensadores de desacoplo de 100nF los tienes que poner en todos los integrados que se tengan que alimentar con Vcc y GND (Microcontroladores, operacionales, etc. etc.). Que no se te olvide ponerlo lo más cerca que puedas de estas patillas.

Las entradas no tienen por que darte problemas si las tienes según el esquema que adjuntas (optoacopladas y con alimentaciones independientes). Pon todos los condensadores de desacoplo y dinos que tal te funciona. Así vamos descartando cosas.

Es importante que nos pongas la configuración de los fuses de tu programa.

Esperamos noticias  :o


Un saludo desde Alicante.

Desconectado flacoclau

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1692
    • El Micro Reactor
Re: Un problema con caída de corriente.
« Respuesta #34 en: 17 de Abril de 2008, 12:46:23 »
No se olviden de la exitación de las bobinas del relé,
ojo al piojo con esto
saludos!!
Las personas con buena ortografía me atraen textualmente.

El Micro Reactor

Córdoba capital - Argentina.

Desconectado literatronic

  • PIC12
  • **
  • Mensajes: 98
Re: Un problema con caída de corriente.
« Respuesta #35 en: 17 de Abril de 2008, 13:19:59 »
No se olviden de la exitación de las bobinas del relé,
ojo al piojo con esto
saludos!!

¿Flacoclau a qué te referís?

Azicuetano estoy utilizando dos 16F873A y dos 16F628A, uno de éstos (METROS) todavía no lo he puesto, entonces lo de los fuses se aplicaría sólo a un 16F628A, que es el que se encarga de la comunicación, y le he cargado dos fuses, pero sólo para probar.

Este es el programa:

'****************************************************************
'*  Name   : VES-TRACE.BAS                                                                     *
'*  Author  : [select VIEW...EDITOR OPTIONS]                                             *
'*  Notice   : Copyright (c) 2007 [select VIEW...EDITOR OPTIONS]                 *
'*              : All Rights Reserved                                                                 *
'*  Date     : 15/04/2008                                                                            *
'*  Version : 1.0                                                                                        *
'*  Notes    : PROGRAMA PARA EL PIC 16F628A EN DONDE ESTA LA              *
'*              : COMUNICACIÓN HACIA EL PC.                                                *
'****************************************************************

SYMBOL TXPIC = PORTB.7 'Para decirle al 16F873 que esta listo para recibir datos
SYMBOL RXPIC = PORTB.6 'Para saber que ocurrió un evento y para recibir los datos del 16F873
SYMBOL TX = PORTB.2    'Para enviar datos al PC
SYMBOL RX = PORTB.1    'Para recibir datos del PC
symbol TRANS = PORTB.5 'Para controlar la transmisión al PC por medio del 75176

UNIDAD  VAR BYTE[8]    'Donde se van a guardar los datos recibidos del PC

UNIT    VAR BYTE[16]   'Donde se van a guardar los datos recibidos del 16F873

i       VAR BYTE       'Para los ciclos for

'Definición de datos de CRC
CRCRX       var word     'registro donde se almacenara el resultado del CRCRX
CRCTX       var word     'registro donde se almacenara el resultado del CRCTX
cuenta1     var byte     'variable interna de la subrutina 1 del CRC
bit_dato1   var byte     'variable interna de la subrutina 1 del CRC
cuenta2     var byte     'variable interna de la subrutina 2 del CRC
bit_dato2   var byte     'variable interna de la subrutina 2 del CRC
CRCRX1      var CRCRX.BYTE0    'CRC1 es el primer byte del word CRCRX
CRCRX2      var CRCRX.byte1    'CRC2 es el segundo byte del word CRCRX
CRCTX1      var CRCTX.BYTE0    'CRC1 es el primer byte del word CRCTX
CRCTX2      var CRCTX.byte1    'CRC2 es el segundo byte del word CRCTX

'****************** PROGRAMA ************************************
@ DEVICE pic16f628A, MCLR_OFF 'Master Clear Externo desconectado
@ DEVICE pic16f628A, INTRC_OSC_NOCLKOUT 'Reloj interno solo

TRISB = %01011011
TRISA = %111111
PORTA = 0:PORTB = 0
UNIT[0] = 1

'RECEPCIÓN DE DATOS QUE VIENEN DEL 16F873A PRINCIPAL
SER_UNI1:
IF RXPIC = 1 THEN
GOSUB LIMP_UNIT
HIGH TXPIC
LOW TRANS
FOR i = 0 TO 15
    SERIN2 RXPIC,84,1000,SER_UNI2,[UNIT]
NEXT i
UNIT[0] = 1
LOW TXPIC
ENDIF

'RECEPCIÓN Y ENVIO DE DATOS DESDE Y HACIA EL PC
SER_UNI2:
GOSUB LIMP_UNIDAD
LOW TRANS
    SERIN2 RX,84,1000,SER_UNI1,[UNIDAD[0]]
IF UNIT[0] = UNIDAD[0] THEN         
FOR i = 1 TO 7
    SERIN2 RX,84,1000,SER_UNI1,[UNIDAD]
NEXT i
UNIT[1] = UNIDAD[1]
gosub CALC_CRC1
GOSUB CALC_CRC2
HIGH TRANS
HIGH TX
FOR i = 0 TO 15
    SEROUT2 TX,84,[UNIT
NEXT i
    SEROUT2 TX,84,[CRCTX2,CRCTX1] 
LOW TRANS
GOTO SER_UNI1
else
pause 6
goTO SER_UNI1
endif

'Subrutina de cálculo del CRC de la trama recibida desde el PC
CALC_CRC1:
CRCRX = $FFFF                        'inicio del CRCRX
FOR cuenta1 = 0 TO 5                 'bucle de análisis de byte
CRCRX = CRCRX ^ UNIDAD[cuenta1]      'or exclusiva
FOR bit_dato1 = 0 to 7               'bucle de análisis de bit de cada byte
if (crcRX&$01) = 1 then              'si el bit es uno
CRCRX = (CRCRX>>1)^ $A001            'desplaza y efectua or exclusiva
else 
crcRX = crcRX>>1                     'si el bit fué 0 sólo desplaza
ENDIF
NEXT bit_dato1
NEXT cuenta1
IF (CRCRX1 = UNIDAD[6]) AND (CRCRX2 = UNIDAD[7]) THEN RETURN 
GOTO SER_UNI1

'Subrutina de cálculo del CRC de la trama que se va a transmitir al PC
CALC_CRC2: 
CRCTX = $FFFF                        'inicio del CRCTX
FOR cuenta2 = 0 TO 15                'bucle de análisis de byte
CRCTX = CRCTX ^ unit[cuenta2]        'or exclusiva
FOR bit_dato2 = 0 to 7               'bucle de análisis de bit de cada byte
if (crcTX&$01) = 1 then              'si el bit es uno
CRCTX = (CRCTX>>1)^ $A001            'desplaza y efectua or exclusiva
else 
crcTX = crcTX>>1                     'si el bit fué 0 sólo desplaza
ENDIF
NEXT bit_dato2
NEXT cuenta2
RETURN

LIMP_UNIDAD:
FOR i = 0 TO 7
UNIDAD = 0
NEXT i
RETURN

LIMP_UNIT:
FOR i = 0 TO 15
UNIT = 0
NEXT i
RETURN

end
« Última modificación: 17 de Abril de 2008, 13:27:47 por literatronic »

Desconectado Gonzalo_BlackHawk

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 519
Re: Un problema con caída de corriente.
« Respuesta #36 en: 17 de Abril de 2008, 15:30:24 »
Hola a todos, bueno, acabo de ver el esquematico y termino de confirmar los tópicos que puse anteriormente para el PCB. Ahora viendo el programa (No se mucho de basic) creo que la cuestión pasa por el software. Veamos:

Según el fuse que haz colocado el pin MCLR no se utiliza como tal y por lo tanto se transforma en una entrada digital. Esto significa que si no le das un valor lógico a la misma este pin se transforma en una antena de AM, FM y televisión por cable  :D :D. No importa si es una resistencia a masa o a +5V porque total el MCLR se puentea interiormente a VDD. Veo que haz colocado una resistencia de pull-up de 10K, me parece perfecto, yo agregaria un capacitor de 100 nF entre esta entrada y masa porque este pin es muy susceptible al ESD (No me voy a explayar mucho sobre esto pero se que hay un post donde alguien tuvo problemas de ruido por no filtrar el pin de MCLR correctamente y la solución fue el capacitor que te estoy nombrando, si encuentro el post te paso el link).

Y tal como dice Azicuetano coloca los capacitores de desacoplo que te hemos mencionado. Utiliza 100 nF si tus PIC's trabajan a menos de 8MHz, a partir de esta frecuencia los capacitores de este valor entran en resonancia propia y dejan de comportarse como capacitores para comportarse como bobinas asi que no van a filtrar mucho del ruido digital que se induzca en la linea de alimentación si esto sucede. Por lo tanto que hayas colocado capacitores de 10 nF no me parece mal si tus PIC's trabajan a mas de esta frecuencia. Pero según estoy viendo, tienes tus 16F628A trabajando a 4 MHz por lo tanto yo colocaria capacitores de 100 nF (Salvo que los 16F873A esten clockeados por encima de los 8 MHz). Si todavia tienes dudas sobre que capacitor colocar hay una manera sencilla de sacarte del embrollo, coloca ambos valores de capacitores!.

Mira, has configurado los 16F628A para que trabajen con sus osciladores internos (de 4 MHz), asi que no necesitas ni los cristales ni los capacitores de corte de los mismos que colocaste. Deshazte de ellos y además configura tanto el OSC1/RA7 y el OSC2/RA6 como salidas digitales. Esto es importantisimo.

Debido al filtrado pobre que tienes de la alimentación yo activaría el fuse de Brownout, el PUT (Power-up timer) y el WDT (Watchdog timer) tambien, son fundamentales a la hora de reforzar un poquito las cosas. Y recuerda, no dejes ninguna entrada digital al aire, si no vas a darles un nivel lógico configuralas como salidas digitales.

Con respecto a lo de la excitación de las bobinas del rele que nombraba flacoclau, creo que teniendo una fuente separada del resto para alimentar los reles no tiene porque haber problemas de excitación, además tenemos los circuitos completamente aislados por los optoacopladores, así que no hay aparente relación entre los relés y el reset del PIC, salvo claro que los reles esten siendo activados por algun PIC de la placa en cuestión, pero no me acuerdo sinceramente como venia la cosa por ahi.

Bueno, creo que te hemos dejado bastante trabajo, jaja, luego nos cuentas como te fue. Saludos a todos.
"Siempre piensa si el jugo vale la exprimida..."

"La muerte esta tan segura de vencer que nos da toda una vida de ventaja."

Desconectado flacoclau

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1692
    • El Micro Reactor
Re: Un problema con caída de corriente.
« Respuesta #37 en: 17 de Abril de 2008, 16:28:36 »
Si me refiero a si los relés están aislados de la placa y como los has aislado,
ya que si lo haces con la misma alimentación creo que estamos en la misma, más si los relés son grandes.
saludos
Las personas con buena ortografía me atraen textualmente.

El Micro Reactor

Córdoba capital - Argentina.

Desconectado literatronic

  • PIC12
  • **
  • Mensajes: 98
Re: Un problema con caída de corriente.
« Respuesta #38 en: 17 de Abril de 2008, 17:30:51 »
Flacoclau los relés están en un gabinete que está como a 10 metros de la tarjeta con los PIC, se activan como parte del proceso industrial que estoy monitoreando, no están siendo activados por ningún PIC.

Gonzalo ya agregue los condensadores que me dijiste, en los MCLR y entre VCC y GND de todos los IC, también agregue los FUSES al programa del 16F628A;  ahora falta esperar y ver cómo se comporta.

Muchas gracias  :-/
« Última modificación: 17 de Abril de 2008, 17:43:27 por literatronic »

Desconectado flacoclau

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1692
    • El Micro Reactor
Re: Un problema con caída de corriente.
« Respuesta #39 en: 17 de Abril de 2008, 20:58:58 »
Ah okis, mejor aún
Las personas con buena ortografía me atraen textualmente.

El Micro Reactor

Córdoba capital - Argentina.

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: Un problema con caída de corriente.
« Respuesta #40 en: 18 de Abril de 2008, 03:27:36 »
Es importante lo del Brownout y el Power-up timer (por eso te preguntaba los fuses) .

Antes cuando tenías alguna inestabilidad en la alimentación cabía la posibilidad de que el micro se colgara. Ahora con el Brownout activado lo que pasa es que cuando el PIC detecta algo raro en la alimentación se resetea (no se cuelga). Es imprescindible ponerlo (junto con el PUT y el WDT) si haces una aplicación seria.

Bueno, esperamos impacientes tus noticias.


Un saludo desde Alicante.

Desconectado literatronic

  • PIC12
  • **
  • Mensajes: 98
Re: Un problema con caída de corriente.
« Respuesta #41 en: 18 de Abril de 2008, 11:36:14 »

Lo de los filtros a todo lo que entra y sale del pic todavía lo puedo hacer con las señales que vienen de los relés, con las otras ni modo, si alguien tiene algún esquema con los valores del condensador y la resistencia lo agradecería mucho.


Me falta hacer ésto para quedar más o menos listo con la PCB mal hecha que tengo  :mrgreen: 

En estos momentos el sistema está estable ya que al software en el PC, en Visual Basic, le he cambiado los tiempos, ésto es, le dí más tiempo para responder al PIC y le estoy preguntando tres veces, si ya no responde a la tercera ahí sí marco la falta de comunicación.

Un saludo a todos y muchas gracias.     


 

anything