Autor Tema: ICSP : aislar Vdd , ayuda  (Leído 7930 veces)

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

Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
ICSP : aislar Vdd , ayuda
« en: 18 de Diciembre de 2006, 14:22:14 »
Buenas a todos,

terminado un proyecto con PICs (16F648A) que estaba llevando a cabo, me he propuesto hacerlo "actualizable", vamos, que mediante un programador ICSP pueda grabar un nuevo firmware en el pic una vez esté montado en su PCB con el resto del circuito. De los 5 pines que necesita el ICSP, el único con el que tengo alguna duda es Vdd. Tenemos inicialmente esto :


Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: ICSP : aislar Vdd , ayuda
« Respuesta #1 en: 18 de Diciembre de 2006, 14:27:11 »
¿Y cuál es tu duda?

De todas formas te diré que la Vdd del micro puede seguir conectada a tu circuito, y tenerlo encendido cuando quieras programar el micro.

No obstante, te recomiendo echar un vistazo a este documento del maestro Sisco:
http://www.winpic800.com/descargas/REV2/Pic_dsPIC_ICSP.pdf

Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
Re: ICSP : aislar Vdd , ayuda
« Respuesta #2 en: 18 de Diciembre de 2006, 14:31:43 »
buf, disculpame... se me ha "posteado" el mensaje antes de acabarlo ! asi que el resto del texto y dos imagenes más se me han quedado en el tintero... a ver si puedo mandarlo entero ahora, un segundo....


Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
Re: ICSP : aislar Vdd , ayuda
« Respuesta #3 en: 18 de Diciembre de 2006, 14:40:58 »
veamos si soy capaz de adjuntar las dos imagenes restantes ahora....


bien, mi duda es, precisamente, con Vdd del PIC. respecto a MCLR ningun problema (ya habia supuesto lo del diodo, y en efecto, funciona perfectamente ), asi como RA6 y RA7, sendos diodos arreglan cualquier problema con estos pines y permiten simultanear el programador con el circuito final.

Aqui, el problema fundamental que tengo, es con Vdd. El rail de Vdd alimenta a otros integrados en mi PCB a parte del PIC, y no quiero "inyectarle" el Vdd del ICSP , ya que si le meto ese "Vdd" al rail, no solo estaré programando el PIC, sino que estare alimentando los otros ICs que estan conectados al rail Vdd en la PCB.
Sumale a eso que algunos de esos ICs no admiten tensiones superiores a 4v, asi que no me interesa en absoluto meterle 5v a ese rail. (de esto, ya podeis deducir que mi PIC trabaja a 4v).

la primera cosa que se me ocurrio fue usar un diodo tambien en el rail Vdd (a ver si puedo adjuntar esta vez la imagen correctamente.... )
el problema, como sabeis, es que el diodo, incluso los schottky, te meten una caida de potencial minimo de 0,5volts, y usualmente de 0,8 e incluso de 1 voltio para I(f)>=100ma .... el pic ya trabaja bajito , a 4 volts, y no me puedo permitir una caida de Vdd a 3 volts  ( ni siquiera a 3,5) , asi que tuve que descartar el tema del diodo.

Lo unico que se me ocurre, y que no se siquiera si podria funcionar, es lo que voy a intentar adjuntar en la segunda imagen: controlar el corte del rail Vdd comun con un transistor, de forma que si Vdd_ICSP esta activa, el PNP corta y el PIC se alimenta de Vdd_ICSP. Si Vdd_ICSP esta flotante, tenemos el pull-down ( Rpd = 10Mohm ) que pone a tierra la base del PNP, con lo cual conduce, con lo cual el pic se alimenta del rail de Vdd comun.

Por supuesto, todo esto me lo acabo de inventar, y considerando que no tengo ni pajorela idea, desde luego no aspiro a que funcione de la manera en que yo lo he dicho  :?  pero si algo asi se pudiera hacer, y pudierais corregir mi idea (o incluso darme otra para arreglar mi problema), desde luego os estaria profundamente agradecido.

gracias y saludos!


Desconectado electrotacto

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 560
Re: ICSP : aislar Vdd , ayuda
« Respuesta #4 en: 18 de Diciembre de 2006, 15:11:03 »
hola que tal, porque no usas dipswitch, o jumper como los que usan los discos duros, donde para un estado funcione como maestro y entro como esclavo cuando quiera regrabar tu pic.

es mi opinion personal pero para que gastar en algo que se va a utilizar ocacionalmente? bueno alli se los dejos

saludos
No es lo mismo un metro de encage negro a que un negro te encage un metro

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: ICSP : aislar Vdd , ayuda
« Respuesta #5 en: 18 de Diciembre de 2006, 15:54:40 »
Bueno amigo que tal?? yo en un principio tuve el mismo problema que tu con el ICSP y lo solucione de la siguiente manera. Ahi te muestro un dibujito para que realices tus pruebas. Te aseguro que esta probado 100%. De las resistencias de 1K van al resto del circuito para que este no se ponga en conficto cuando programes con el ICSP.

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: ICSP : aislar Vdd , ayuda
« Respuesta #6 en: 18 de Diciembre de 2006, 16:13:10 »
Como lo muestra samshield, no es necesario el VCC para la programacion ISP, ya el PIC puede tomar los 5V del circuito en el que esta trabajando.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: ICSP : aislar Vdd , ayuda
« Respuesta #7 en: 18 de Diciembre de 2006, 16:15:31 »
Que tal pollastre:

Efectivamente como te lo mencionan samshield_pic y nocturno, esa es la solucion a tu problema, es decir no necesitas enviar el VDD del programador ICSP el VDD lo puedes tomar de tu circuito, asi solo necesitaras las lineas de RB6, RB7 (o pines de dato o de clock segun corresponda), VPP y GND. Yo lo he usado de esta manera para programar los pics 18F6720, que tienen un encapsulado superficial y usando el picstart plus.

Saludos y suerte

Elreypic.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: ICSP : aislar Vdd , ayuda
« Respuesta #8 en: 18 de Diciembre de 2006, 18:32:48 »
Por compatibilidad con harwares anteriores he diseñado mis plaquitas RRBOARD2 o KBDEMUL con un conector ICSP de solo 4 señales : Vpp, PGC, PGD y GND. Y la alimentación del PIC (Vcc y GND) tengo que ponerla aparte. Programa perfectamente pero ...

Si empezase de nuevo incluiría el Vcc desde el programador para poder programar una placa con solo poner un conector (de 5 señales) y no dos, el ICSP (de 4 señales) y la alimentación externa (2 señales)


Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
Re: ICSP : aislar Vdd , ayuda
« Respuesta #9 en: 18 de Diciembre de 2006, 19:21:10 »
Hola,

gracias por vuestra ayuda... entiendo la solución que proponéis, pero ésta asume - claro - que el cacharro está alimentado y funcionando *en el momento* de la reprogramación... despues, en un momento dado, el ICSP mete Vpp en MCLR y en ese momento el pic resetea y pasa a modo programar/verificar.... la secuencia es así, supongo ?

si esto funciona de la manera que digo, lo que no me queda claro es, cómo (o cuando ), una vez terminada la programación, vuelve el pic a resetear de nuevo para reanudar su funcionamiento normal... quizás cuando el ICSP deja de inyectar Vpp en MCLR?

gracias !




Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
Re: ICSP : aislar Vdd , ayuda
« Respuesta #10 en: 18 de Diciembre de 2006, 19:27:57 »
samshiel,

ya por curiosidad, te comento... precisamente en rb6 y rb7 yo tengo los data_in y data_out de una eeprom serie, asi que (por si las moscas) en vez de las resistencias de 1k yo le metí 2 diodos con el cátodo contra el pic para que no me dejase fluir nada de intensidad en direccion a la eeprom... no creo que le hubiera pasado nada sin los diodos, la verdad, pero uno nunca sabe con estas cosas!

saludos,

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: ICSP : aislar Vdd , ayuda
« Respuesta #11 en: 18 de Diciembre de 2006, 22:19:58 »
Aparte de no necesitar que el ICSP aliemte al PIC es bastante peligroso juntar los +5 voltios del ICSP y los +5 voltios del circuito, lo mas probable es que el fuerte le gane al debil, osea que la fuente del circuito queme la de tu programador.

Lo que en alguna oportunida hice fue un ICSP con Vcc incluido, pero que podia desconectarlo en cualquier momento. A parte en el circuito puse un conector que cuando lo quitaba  aislaba al PIC de la fuente del circuito, con esto podia usar la fuente (Vcc) del ICSP.

Actualmente no lo uso pues termine aburriendome de tanto conectar y desconectar. Al pic no le importa de donde obtenga los +5 voltios, siempre que los tenga.

Saludos.
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: ICSP : aislar Vdd , ayuda
« Respuesta #12 en: 19 de Diciembre de 2006, 02:44:22 »
Estamos suponiendo en todo momento que el PIC no requiere control de Vdd por parte del programador.
Digo esto porque hay algunos PIC que necesitan que la alimentación les llegue justo en un determinado momento para iniciar el proceso de programación, con Vdd fijas suelen dar problemas y requieren muchos intentos de programación hasta que se consigue.
En estos casos, lo mejor es que la Vdd la proporcione el programador. Para evitar lo que dice Veguepic, supongo que se podrá poner un diodo que evite que pase corriente al programador.

Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
Re: ICSP : aislar Vdd , ayuda
« Respuesta #13 en: 19 de Diciembre de 2006, 05:51:47 »
Nocturno,

yo pienso como tú (me quedo más tranquilo si la Vdd la controla el programador). El inconveniente es que, como tú bien dices, hay que usar un diodo para que Vdd del programador no se propague por el raíl Vdd del circuito.  Ese diodo te va a meter 0,8-1volt de caida de potencial en Vdd del pic cuando conduzca normalmente, y si, como es mi caso, el pic ya está recibiendo una alimentación "justita" (4 volts), hacerle caer 1 voltio hasta 3 volts es un riesgo alto  (piensa que en los pines de salida, por ejemplo, VOHmin = 0,7*Vdd , es decir, una salida en alta podría valer tan poco como 2,1volts, y otros ICs podrían no reconocer ese valor como "1" lógico).

Además, hay un motivo mucho más poderoso para no pensar siquiera en el diodo: de acuerdo a los gráficos de microchip, para Fosc = 16mhz, una Vdd de 4 volts ya cae justita, justita (incluso yo diría que ligeramente por debajo del mínimo, pues ellos recomiendan un mínimo de 4,2-4,3volts para 16Mhz según la gráfica). Por lo tanto, si le quito aunque solo sea 0,5 volts a Vdd, podría inmediatamente dejar de funcionar el pic.

Supongo que alguno dirá "pues bájalo de frecuencia!".... el tema es que antes el pic lo tenía a 4Mhz, pero para hacer una comunicación a 115200bauds, un reloj de 4Mhz me sacaba un error muy grande en el generador de baudios de la EUSART... por eso lo debo tener a 16Mhz, porque con ese valor me sale una tasa de error en SPBRG muy baja, y la comunicación se hace sin problemas  (oh, y sí, estoy obligado a comunicarme a 115k2... no puedo decirle al otro IC que "hable" más lento  :mrgreen:  )

Como veis tengo una situación curiosa... a parte de bastante problemática... a mí me gustaría que a estos cacharros se les pudiera actualizar el firmware simplemente con que el tecnico fuera con una PDA, el ICSP conectado por USB a la pda, y un pequeño conector de 5 pines desde el icsp hacia el aparato. A ver cómo consigo que la programación pueda hacerse de manera limpia....

saludos,

Desconectado Marioguillote

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1926
    • Servisystem
Re: ICSP : aislar Vdd , ayuda
« Respuesta #14 en: 19 de Diciembre de 2006, 08:58:24 »
Hola gente !

........Ese diodo te va a meter 0,8-1volt de caida de potencial en Vdd del pic cuando conduzca normalmente.....

Un diodo nunca provoca tanta caída de tensión y menos en ese lugar, a ese régimen de trabajo.
Me arriesgaría a decirte, que no llegaría a restarte más de 0,3 / 0,4V un diodo ahí.
Y si querés asegurarte más metéle uno de Germanio, que tiene menos barrera de potencial que el silicio, pero te repito, con un 1N4148, ó un 1N4004 como te puso Diego, vá a funcionar perfecto y no vas a tener significativos cambios de tensión.

Compruébalo tú mismo. Es sólo una pista, una conexión, no te será gran trabajo hacer la prueba. No es peligrosa, es un diodo común en serie al MCLR, tampoco es tanto trabajo, es más fácil que escribir tantas líneas.  :)

Ahora una pregunta:

...... y si, como es mi caso, el pic ya está recibiendo una alimentación "justita" (4 volts) .....

Porqué debes alimentar con 4V el PIC ? Por curiosidad te pregunto esto.

Espero puedas solucionar tu problema.

Saludos.
Mario