fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Condensador entre VDD y VSS

16 Respuestas
5 Usuarios
0 Reactions
5,998 Visitas
vcs
Respuestas: 114
 vcs
Topic starter
(@vcs)
Estimable Member
Registrado: hace 18 años

Buenos dias a todos

Tengo un 16f877 montado en una placa, o mejor dicho una placa con un 16f877, cuando doy alimentacion a la placa en muchas ocasiones no trabaja bien hasta que no hago un reset, ademas me he dado cuenta que ya puedo resetear todas las veces que quiera que no falla, sin embargo si en lugar de resetear quito y pongo alimentacion falla en muchas ocasiones, por las conclusiones a las que he llegado aislando y eliminando partes del codigo, es como si al arrancar ciertas variables que uso no se inicializaran bien incluso cuando las primera linea del programa es Puerto_a=0; de ahi que tenga toda la pinta que el problema venga de la alimentacion (vaya poder de deduccion que tengo, no me ha llevado nada más que una semana llegar a la conclusion 😛 )

La fuente que alimenta la placa es buena, de laboratorio y estabilizada, me imagino que por eso una vez arrancada ya no hay problemas y el problema es en la conmutacion al arrancarla, en el pic no he puesto el condensado entre VDD y VSS, ¿esto puede ser la causa de lo que me está pasando?, es una putada porque la placa es bastante grande, saque el circuito impreso y habia quedado bastante bien, ahora me tocará modificarla, la duda en cuanto al condensado, aparte de lo que ya preguntaba si esto que me sucede puede ser un sintoma de no haberlo puesto, es que he leido por ahi division de opiniones en cuanto a la capacidad del mismo, creo que el valor esta sobre los 100nF aunque buscando hay para todos los gustos, 47nF, 1Micro es decir 1000nF, incluso he visto algun esquema con 100micro, ¿realmente como influye la capacidad de este condensador? con una carga superior a la recomendada no deberia de haber problemas ¿no?, ¿si pones un valor mucho mayor funcionaria? otra cosa es el voltaje, en teoria el voltaje tendria que superior al que se va a conectar pero me he encontrado en alguna ocasion que si es mucho mayor puede no funcionar, cosa que me paso al montar uno de 63v en una placa que copié, ¿en que influye el voltaje?

Por ultimo, ya aprecho, ahora estoy activando las entradas del micro con un cable rigido desde el positivo de la fuente, hay una entrada que tiene bastante "castigo" porque le voy dando pulsitos para que el pic cuente, anoche (y despues de muchas operaciones) estaba dando pulsos y dejó de funcionar, acto seguido calenton del micro y a la basura, ¿como puedo proteger las entradas para que esto no vuelva a pasar? La conexion actual es, tengo una borna a tornillo que es por donde meto los pulsos, de ahí va directo a la entrada del pic y luego tambien tengo una R de 1K entre la entrada y la tierra (para ponerla a cero mientras no haya tension), supongo que el error es que tengo que meter tambien una resistencia en serie con la entrada para limitar la corriente (Joder que torpe, me acabo de dar cuenta al describir el circuito que la R que esta puesta no limita la I de entrada)

Un saludo y gracias a todos,

Responder
15 respuestas
juanjo
Respuestas: 451
(@juanjo)
Ardero
Registrado: hace 18 años

Lo que intenta contarte Beamspot si no lo pillo mal, es que la mayor parte de la ESL inductancia serie asociada al condensador viene definida por el bucle que hay entre el componente y los pines a los que los has conectado. Por tanto cuando menor sea este bucle menor será la ESL, y entonces siempre es mucho mejor colocar un ceramico SMD, que un electrólitico de inserción, ya que es obvio quien proporcionará un bucle mayor debido a sus terminales. Los SMD siempre se intentan colocar lo más junto posible al IC para minimizar la ESL.

Otro tema muy a tener en cuenta con los condensadores es la ESR, la resistencia en serie del mismo, quizás en este caso no sea tan importante, pero en otros los es y mucho. Por eso existen los condensadores de baja ESR y no es normal utilizar electrolitiocos en fuentes de alimentación conmutadas y por su puesto si de tántalo ya que las prestaciones son mucho mejores las de los últimos en este caso.

Condensadores, ESR y ESL

Responder
beamspot
Respuestas: 1132
(@beamspot)
Noble Member
Registrado: hace 17 años

Je, je. Me explico como un libro cerrado. Muy bien explicado, Juanjo. Estás totalmente en lo correcto, como siempre.

Responder
juanjo
Respuestas: 451
(@juanjo)
Ardero
Registrado: hace 18 años

No, está muy bien. Además este tiepo de cosas en pocos libros se encuentran, 🙂 y por regla general casi todos lo pasamos por alto y en muchos casos no lo tenemos en cuenta.

Responder
ranganok
Respuestas: 3875
(@ranganok)
Ardero
Registrado: hace 19 años

¿Cómo ha ido la prueba?

S2

Ranganok Schahzaman

Responder
vcs
Respuestas: 114
 vcs
Topic starter
(@vcs)
Estimable Member
Registrado: hace 18 años

Buenos días a todos.

Con bastante retraso pero he aquí la respuesta, es que esto lo hago medio por hobby y como podéis ver cuando más activo estoy es cuando hay vacas, puentes y ahora con jornada intensiva.

Pues de cara a los condensadores de la alimentación tomé nota para las próximas placas (otra más, tengo ya una pequeña lista de fallos de esta ultima que he hecho), puesto que mire de hacerlas en esta (es un pcb) pero eran bastante difíciles ya que para poder meter los condensadores tenia que meterlos con las patas sin cortar y al final, según vuestras recomendaciones entendí que posiblemente no fuera a funcionar.

Lo que si modifique fue el circuito del reset, metí en principio un montaje similar al de la wiki pero sin el diodo, un condensador de 22p pero como no parecía mejorar demasiado y no apreciaba el retraso a la "vista" tiré por la del medio y le metí uno de 47micros, con esto el retraso era bastante mayor, y aunque NO solucionó el problema, sí fue fundamental para descartar el reset y para analizar de forma correcta la raíz del problema, además también metí el fuse del retraso al arranque para ayudar, todo esto me ayudó a ver que en ocasiones incluso al hacer el reset se producían errores pero en un número más reducido de veces, quizá en uno 1 de cada 10 o 15 reset.

Finalmente el problema venia de las condiciones de arranque y del funcionamiento de las INTERRUPCIONES, o mejor dicho de mi desconocimiento del funcionamiento de estas al arranque, resulta que en determinadas condiciones al dar alimentación la placa puede arrancar con alguna de las entradas del puerto b activa (condiciones previstas), lo curioso es que la interrupción por cambio de estado del puerto B (int_rb) al activarla no se comporta como tal, o al menos no como yo la entendía, y explico esto.

Según mi interpretación una vez activada las interrupciones globales y la interrupción por cambio de estado del puerto B, en el momento que se produce un CAMBIO del estado de las entradas correspondientes (rb4 o rb5 o rb6 o rb7) se produciría la interrupción, y esto es perfectamente cierto pero falta matizar que sucede en el arranque/habilitacion de las interrupciones, resulta que por lo que he podido comprobar, si al habilitar las interrupciones alguno de los pines del puerto b ya está en alto esto se interpreta como que se ha activado la interrupción aunque el pin ya estuviera activo antes de habilitar las interrupción, así que esto es lo que me estaba dando problemas, ¿por qué cuando hago un reset esto no suele dar error? pues no lo sé, pero algo se me debe de escapar, porque mi secuencia actual básicamente es:
arranca el PIC, defino las variables, deshabilito las interrupciones, configuro los puertos, hago una parada de 2000 milisegundo (2 seg.) para asegurarme que los niveles de tensión en las entradas son estables (por si acaso hubiera sido esto), y luego habilito las interrupciones. cuando daba fallos aquí se producía el salto a la interrupción (posteriormente lo pude confirmar también con un simulador), lo que hice fue meter un pequeño código de forma que si era la primera interrupción que se producía no se ejecutara nada, y se SOLUCIONO, Lo que hace el no saber...

Por ultimo acabé quitando el C del reset por dos sencillas razónes, en primer lugar porque con la R y directo a 5v en la placa y con la fuente estabilizada funciona bastante bien, una vez aislado y resuelto el problema que he comentado, aunque para futuras placas ya vendrán con él de "serie" en lugar de montado de forma chapucera como estaba con esta modificación, y segundo y mucho más importante, porque la placa la tengo preparada con un DB9 al que conecto el programador (GTP-USB) para no tener que sacar el micro para programarlo, y al meterle el condesado al RESET se fastidia el invento ya que una de las patas usadas para programar, así que para la modificaciones futuras ya lo dejaré preparado con switch para cortar el C cuando tenga que programar.

Un saludo y gracias por la ayuda, como siempre cada vez que consulto aprendo un monton de cosas nuevas, sin las cuales no podria ir solucionando los problemillas que me salen.

Gracias

Responder
Página 2 / 4
Compartir: