TODOPIC

FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: gera en 22 de Noviembre de 2012, 17:46:10

Título: [SOLUCIONADO] Imposible programar PIC18F4550 TQFP
Publicado por: gera en 22 de Noviembre de 2012, 17:46:10
Hola amigos! Qué tal? Yo la verdad me siento un poco estúpido en este momento jeje. Resulta que acabo de terminar de fabricar un circuito, y me acabo de dar cuenta que el puerto USB quedo al revés. Esto es porque hice una versión SMD del circuito y en algún momento utilicé la herramienta "mirror" del eagle.
La cuestión es que los pines D+ y D- del pic, quedaron a GND y +5V respectivamente, y la masa y alimentación del circuito, quedaron en los pines D+ y D- del USB de la PC.
Ahora no puedo programar el PIC, solo leerlo. Estoy usando un pic18f4550 en formato TQFP. Puede ser que lo haya quemado por este error?
Saludos y gracias!
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: MerLiNz en 22 de Noviembre de 2012, 17:59:33
seguramente este quemado xD
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: MGLSOFT en 22 de Noviembre de 2012, 19:32:51
En mi caso hice eso mismo con un chip FTDI FT232RL, y cuando me di cuenta lo cambie, y aun funciona correctamente.
Casi quemo 10 dolares!!!
Ojala que tu pic ande también!!
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: gera en 22 de Noviembre de 2012, 23:55:44
Pregunto porque en una de esas las entradas son de alta impedancia, pero por lo que lei, cambian su estado segun transmitan o reciban. Es un bus diferencial similar a rs485.
Por las dudas voy a probar con otro micro, ya vere que hago con este.. no creo q pueda desoldarlo de la placa jeje.
Gracias por sus comentarios!
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: Nocturno en 23 de Noviembre de 2012, 01:42:40
Búscate una pistola de aire caliente y lo podrás quitar en un momento.
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: willynovi en 23 de Noviembre de 2012, 07:58:52
Ten en cuenta que no solo conectaste las señales de datos alreves (D+ y D-) también lo alimentaste alreves y eso es lo que mas debe haber afectado al PIC.

Creo que conectar el D+ y D- invertidos lo unico que hace es no funcionar la comunicacion, pero llegar a quemar alguna entrada no.
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: gera en 23 de Noviembre de 2012, 09:32:00
Ten en cuenta que no solo conectaste las señales de datos alreves (D+ y D-) también lo alimentaste alreves y eso es lo que mas debe haber afectado al PIC.

Creo que conectar el D+ y D- invertidos lo unico que hace es no funcionar la comunicacion, pero llegar a quemar alguna entrada no.

Willy, en realidad el cruce no fue así, sino que conecté las señales D+ y D- a la alimentación. Por eso me preocupa que se haya quemado el puerto USB. El PIC creo que todavía funciona. Voy a cortar las pistas del USB a ver si el pic todavía ejecuta. El problema es que no le puedo cambiar el programa de la EEPROM :S

Búscate una pistola de aire caliente y lo podrás quitar en un momento.

Manolo, tengo una que usa mi padre para aeromodelismo. Me preocupa que sea demasiado calor porque ha llegado a derretir plastico. Por las dudas voy a probar distancias progresivas para evitar exceso de calor. Muchas gracias por tu consejo! :)
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: Nocturno en 23 de Noviembre de 2012, 10:26:23
Sí, ponla lejos al principio y ve acercándote poco a poco. No te preocupes porque el plástico funde mucho antes que los chips  :D
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: flacoclau en 23 de Noviembre de 2012, 11:21:03
Hola Gera: puede que aún esté vivo, yo una vez conecté un 18F452 con la alimentación al revés, hasta que me dí cuenta que había diseñado mal la placa, luego corté las pistas con un cutter y con un poco de cable lo solucioné, todo esto sin sacar el micro del zócalo por creer que estaba quemado, luego hice un prueba y el amigo salió funcionando de una!!
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: gera en 23 de Noviembre de 2012, 11:40:20
Al parecer el PIC ejecuta y puedo leer el programa que tiene quemado. El problema es que no puedo grabarle otro programa, asique voy a tener que cambiar el micro igualmente :(
Gracias por sus respuestas!!
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: Nocturno en 23 de Noviembre de 2012, 11:55:04
Asegúrate que al alimentarlo tienes bien los 5V de alimentación y los 13V en MClr.
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: gera en 25 de Noviembre de 2012, 13:34:55
Hola!! Tengo buenas y malas noticias. La buena es que el PIC aún vive, y ya pude programarlo. Igualmente hice otra placa con otro PIC por las dudas que haya quemado el USB del PIC.
La mala noticia es que no se por qué motivo el programa ejecuta muy lento. Me di cuenta porque hice un programa que haga parpadear un led cada medio segundo, y el led parpadea cada varios segundos.
El mismo programa funciona a la perfección en un 18F4550 en formato DIP. El problema ocurre con el 18F4550 en formato TQFP. Lo tengo con un oscilador de 20MHz, y el programa en CCS es el siguiente:

Código: C
  1. #include <18F4550.h>
  2. #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
  3. #use delay(clock=48000000)
  4.  
  5. #define LED_RED PIN_D4
  6. #define LED_GREEN PIN_D5
  7.  
  8. void main(){
  9.    set_tris_d(0b11000000); //RD4-LED_RED, RD5-LED_GREEN
  10.    
  11.    disable_interrupts(GLOBAL);
  12.    
  13.    while(TRUE)
  14.    {
  15.       output_high(LED_GREEN);
  16.       output_low(LED_RED);
  17.       delay_ms(10);
  18.       output_low(LED_GREEN);
  19.       output_high(LED_RED);
  20.       delay_ms(10);
  21.    }
  22. }
  23.  

Alguna idea??
Gracias y saludos!!
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: BrunoF en 25 de Noviembre de 2012, 15:06:53
Gera:

Ese síntoma bajo las condiciones dadas sucede cuando hay un problema con el cristal externo y el uC tiene activo el fuse FCMEN, que al detectar el error cambia al oscilador interno(que es más lento y no corre a 48Mhz), por eso se nota en los tiempos de ejecución.

Revisá la parte del cristal externo. El problema tiene que estar ahí.

Ya le conozco todas las mañas al 18F4550...

Si el problema es el que te menciono, podés primero probar desactivando el fuse FCMEN. El LED ni debería parpadear porque el uC no cambiaría a oscilador interno tampoco.

Saludos.
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: gera en 25 de Noviembre de 2012, 15:49:41
Bruno,
Muchas gracias por tu respuesta! Ahi probe desactivar el FCMEN, y ocurre algo extraño. El programa se queda tildado, y al segundo comienza a ejecutar a la velocidad que debería :shock:
Supongo que podria dejarlo asi, pero no me convence, porque puede fallar en cualquier momento.. Que me recomendas que haga? Por lo pronto voy a ir cambiando el cristal y repasando las soldaduras.
Gracias y saludos!!

EDIT:
Ya le cambie el cristal por uno de 12MHz y el fuse PLL3. Al parecer ahora funciona. Voy a probar la comunicacion USB a ver que tal.
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: MGLSOFT en 25 de Noviembre de 2012, 16:20:05
Tendrías que dejar activado el bit de Power Up Timer  (PUT) para ver si el cristal se normaliza antes de arrancar.
Así como esta configurado tenes colocado un cristal externo de 20 Mhz, no es así??
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: BrunoF en 26 de Noviembre de 2012, 01:13:57
EDIT:
Ya le cambie el cristal por uno de 12MHz y el fuse PLL3. Al parecer ahora funciona. Voy a probar la comunicacion USB a ver que tal.

Sí señor. Cuando a veces el oscilador se empecina con no arrancar, es bueno probar con un cristal de otra frecuencia y acomodar el PLL. Muchas veces se soluciona así. Yo siempre alterno entre cristales de 4,8,12 y 20 Mhz.

Saludos.
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: gera en 26 de Noviembre de 2012, 21:19:43
Tendrías que dejar activado el bit de Power Up Timer  (PUT) para ver si el cristal se normaliza antes de arrancar.
Así como esta configurado tenes colocado un cristal externo de 20 Mhz, no es así??
Al principio tenia un cristal de 20MHz, pero lo cambie por uno de 12MHz y mejoró.

Muchas gracias por sus valiosisimos consejos! Ahora soy un poquito menos burro jaja.
Sin embargo creo que voy a terminar usando el formato DIP de este PIC, porque no me quiero arriesgar a que el dia de la muestra falle (es para mi trabajo de fin de carrera). Estoy casi seguro que el circuito falla por defectos en la fabricación de la PCB. El primer prototipo hacia chispas cerca de los pines de alimentacion :S

Nuevamente, mil gracias!! :D
Título: Re: Conecté el USB al revés.. arruiné el PIC??
Publicado por: gera en 03 de Diciembre de 2012, 23:47:21
Amigos, acudo desesperadamente a ustedes porque ya no se qué más hacer..
Decidí insistir con el formato SMD. Hice otra placa, y esta vez tuve mucho cuidado a la hora de fabricarla y soldarla. Luego le grabé un programa que hace titilar un led (aclaro que utilicé un PIC18F4550 nuevo). El problema es q desde entonces no le puedo borrar la memoria de programa ni grabar otro programa. Intenté con el GTP USB+ y el pickit2, pero ninguno me dio resultado. Puedo leer el programa que tiene grabado (sigue sin ejecutar, pero eso es lo de menos creo).

Les adjunto la versión del circuito que fabriqué. Si quieren puedo subir fotos de la placa terminada también.

(http://s7.postimage.org/3trw7cnxz/esquema.jpg) (http://postimage.org/image/3trw7cnxz/)

(http://s7.postimage.org/kvkq9g2t3/placa.jpg) (http://postimage.org/image/kvkq9g2t3/)

Espero que puedan darme una mano porque se acerca el día de presentación de mi trabajo y sigo rabiando con esto.
Muchas gracias por su tiempo!!

EDIT:
Buscando en google, di con esta pagina: http://www.neoteo.com/foro/f29/error-0x000000-pickit2-1072-page-2/
Donde recomiendan bajar la tensión de alimentación para revivir el PIC. Entonces lo que hice fue bypassear el regulador de la placa y meterle directamente 5V de una fuente. Para mi sorpresa, pude borrar la memoria del PIC.
Supongo que el problema era que el regulador de la placa me daba un poco mas de 5V (unos 5.23V), pero no se que tendra que ver con el borrado de la EEPROM, ya que eso lo controla Vpp.
Ahora estoy tratando de resolver el problema con el clock.

Espero que esto sea de ayuda para los que tengan el mismo problema que yo.
Saludos!!
Título: Re: Imposible programar PIC18F4550 TQFP
Publicado por: Nocturno en 04 de Diciembre de 2012, 01:51:43
¿No te falta un electrolítico de 100uF detrás del regulador?. De hecho, yo le pondría uno delante y otro detrás a cada regulador.
Sospecho que el problema no es la tensión, sino el ruido en la alimentación. Con los condensadores debería mejorar.
Título: Re: Imposible programar PIC18F4550 TQFP
Publicado por: gera en 04 de Diciembre de 2012, 09:06:13
Si, yo tambien creo que es ruido. Esta tarde voy a chequear con el osciloscopio, y de ser asi, pondre un par de condensadores como me lo indicas Manolo. En principio no los puse porque pensaba alimentar el circuito con una bateria, y no crei que fueran necesarios.

Gracias!
Título: Re: Imposible programar PIC18F4550 TQFP
Publicado por: willynovi en 04 de Diciembre de 2012, 12:30:17
hola Gera, no soy un amante de los montajes superficiales, espero algún día animarme a armar una plaquita como esta  ((:-))

Yo por lo general cuando me pongo con un circuito nuevo sobre un uC especifico, lo que hago como no tengo formación en el tema, es buscar una Demo Board similar y copiar de la documentación de Microchip la parte del esquematico principal, al menos el circuito de alimentación y comunicación teniendo como ejemplo de los componentes mínimos que son necesarios.

Tengo entendido que los condensadores de 0.1 uf entre VDD y GND lo mas cerca del uC deben estar siempre, incluso uno por cada pin VDD del uC en cuestión.

Por el tema del electrolitico, si tu circuito no tiene mucho consumo con uno de 10uf tendria que andar bien.
Título: Re: Imposible programar PIC18F4550 TQFP
Publicado por: willynovi en 04 de Diciembre de 2012, 12:36:39
Estuve re leyendo todo el hilo, y me surgió la duda eso de reprogramar el PIC, no estas usando un bootloader?
Con un bootloader tendrias que poder evitarte muchos problemas.
Título: Re: Imposible programar PIC18F4550 TQFP
Publicado por: flacoclau en 04 de Diciembre de 2012, 14:54:19
Gera ponele un cerámico y un electrolítico a la entrada y salida de cada regulador (principalmente a la entrada), a la entrada el electrolítico de filtrado de la fuente y un cerámico de .1 o .01 uF, a la salida otro y un electrolítico de bajo valor. también puede ser algún capacitor plástico, tantalio etc.

Me ha pasado una vez que medía a la salida de un 7805 y me daba 4,8V, pensé que estaba fallado y lo cambié, pero seguía el problema, puse la punta del osciloscopio y tenía una hermosa señal como de 3MHz, puse uno cerámico a la entrada (como reza el datasheet) y se solucionó, 5V clavados!
Título: Re: Imposible programar PIC18F4550 TQFP
Publicado por: gera en 04 de Diciembre de 2012, 19:52:05
Acabo de hacer las pruebas con el osciloscopio, y esto es lo que vi en la salida del regulador:

(http://s11.postimage.org/4xxngzu7z/Foto0308.jpg) (http://postimage.org/image/4xxngzu7z/)

La escala esta en 1V por division. Eso lo explica todo, no?? jaja. Acabo de soldar un capacitor de 100uF a la entrada y uno de 10uF a la salida (arriba a la izquierda pueden verse ambos):

(http://s17.postimage.org/6sotylm9n/Foto0310.jpg) (http://postimage.org/image/6sotylm9n/)

Y ahora la salida del regulador se ve asi:

(http://s11.postimage.org/9xzp2op8f/Foto0309.jpg) (http://postimage.org/image/9xzp2op8f/)

Como veran, aun hay un poco de ripple, pero el micro ya ejecuta sin problemas y se deja programar. Tal vez cambie el capacitor de salida por uno de 100uF. Como bien dice Claudio, las respuestas a todas nuestras preguntas estan en la datasheet. Cito textual:
Código: [Seleccionar]
"Output capacitor selection is critical for regulator stability. Larger COUT values benefit the regulator by improving transient response and loop stability".

Los capacitores de 100nF ya estaban puestos a la entrada y salida de cada regulador, además en las proximidades de la alimentación del PIC.

Estuve re leyendo todo el hilo, y me surgió la duda eso de reprogramar el PIC, no estas usando un bootloader?
Con un bootloader tendrias que poder evitarte muchos problemas.
Willy, es la idea. Pero como no tengo experiencia con el tema bootloader queria dejarlo para mas adelante. Sin embargo ya estuve leyendo bastante y no se ve tan complicado ;) (menos en CCS).

Bueno, fue una linda batalla que me dio esta plaquita, pero al fin pude vencer con ayuda de todos ustedes! jeje.
Muchas gracias nuevamente!
Título: Re: Imposible programar PIC18F4550 TQFP
Publicado por: gera en 04 de Diciembre de 2012, 20:19:32
Bueno, acabo de cambiar el capacitor de 10uF de la salida por uno de 100uF/10V (la salida son 5V, supongo que se la va a aguantar).
Asi es como se ve ahora:

(http://s7.postimage.org/sap9grx0n/Foto0311.jpg) (http://postimage.org/image/sap9grx0n/)

La escala está en 200mV por división. Bastante bien, ah? :wink:
Título: Re: [SOLUCIONADO] Imposible programar PIC18F4550 TQFP
Publicado por: Nocturno en 05 de Diciembre de 2012, 02:17:13
Me alegro que lo hayas resuelto. Ya sabes, a partir de ahora, 100uF después del regulador siempre.
Título: Re: [SOLUCIONADO] Imposible programar PIC18F4550 TQFP
Publicado por: MerLiNz en 05 de Diciembre de 2012, 10:12:55
Mas que la cantidad, importa la calidad xD

Los electroliticos tienen una ESR algo alta (en comparacion con los ceramicos), si le pones por ejemplo 2 de 100nf ceramicos es mucho mejor que uno electrolitico de 100uf
Título: Re: Imposible programar PIC18F4550 TQFP
Publicado por: willynovi en 05 de Diciembre de 2012, 21:47:07
Estuve re leyendo todo el hilo, y me surgió la duda eso de reprogramar el PIC, no estas usando un bootloader?
Con un bootloader tendrias que poder evitarte muchos problemas.
Willy, es la idea. Pero como no tengo experiencia con el tema bootloader queria dejarlo para mas adelante. Sin embargo ya estuve leyendo bastante y no se ve tan complicado ;) (menos en CCS).

Suky lo ha explicado muy bien, no se bien si por acá en todopic o en otro foro.

Es muy simple de usar y para realizar ajustes al programa resulta muy cómodo porque si alimentas la placa desde el USB de la PC no necesitas mas que presionar un para de botones  ;-)
Recuerda que en tu programa no necesitas demasiadas modificaciones, solo la parte de redirección de los vectores re interrupciones e inicio, algo así  :D