TODOPIC
Microcontroladores PIC => Programadores => Mensaje iniciado por: J1M en 14 de Diciembre de 2004, 08:37:00
-
Bueno puessss microchip por fin lo ha sacado!!!


Creo que eramos varios en el foro los q estabamos interesados en hacer este tipo de programador, os dejo la info del pic:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1486
Esta noche me pondré a partirme un poco la cabeza para ver como hacer el programador, en principio sería una adaptación del GTP, quitando la parte del FTDI, y poco mas no??? (aunq me gustaría hacerlo en ICSP, para que salga mas chiquitín)
Salu2! 
//////////////////////////////////////////////////////////////////////////////////////////////////////
ESTADO ACTUAL DEL PROYECTO
//////////////////////////////////////////////////////////////////////////////////////////////////////
Comentaos que habia varias partes del antiguo diseño que no me convencían y he modificado el esquemático casi en su totalidad, ahora es mucho mas sencillo, mas barato, y mas compacto, el funcionamiento será distinto, os presento a "Pupi" jejeje.. aqui el esquemático, si no hay ningún fallo o modificación empezaré a programar con respecto a el, a excepción del cristal y los dos condensadores que viendo el datasheet del 18F2550, es posible que puedan ser eliminados, ya que el reloj interno hay q activarlo para trabajar con el USB, así aprovecharía tanto para el usb, que habría que activar el PLL interno aparte, como para el propio reloj del sistema, tengo que leer mas sobre esto, para estar seguro (tb saber como leches se programa esto del pll q no me ha kedado klaro del todo!), pero estoy casi convencido que tb se podrá eliminar! asiq mas barato, y mas sencillo aún!
http://foroscatv.almacenweb.com/temp/PuPi.jpg
Bueno os comento un poco la teoría de funcionamiento del cacharro.
La linea de 5v la cogeremos del propio usb del PC, alimentaremos al circuito del elevador de tensión, para ello mandaremos una secuencia de pulsos a través de las patas RC1 y RC2 (tengo que ver si lo puedo hacer mediante PWM (ya que tiene 2 modulos) y así descargar al micro de trabajo, sino puesss a webo! , con esto conseguiremos la Vpp necesaría para programar el pic, que solo estará "disponible" cuando pongamos a "1" la linea ACT.
Por otra parte tendremos el LED, que estará activo cuando conectemos el PuPi (peazo nombre ^^) al PC, y parpadeando mientras estemos programando.
Las demás patas de salida son:
- 0.3v : Tensión de alimentación del pic a programar, según las especificaciones es la minima tensión que necesita un pic para funcionar y la máxima tensión de salida de una puerta, por lo tanto nos viene perfecto para alimentar al PIC a programar cuando queramos
- D+ y D- : tensiones diferenciales de funcionamiento del USB
- data y clock : salida de datos y reloj respectivamente del programador hacia el pic a programar.
Bueno a grandes rasgos esto es todo, sino hay ningun fallo de diseño toca empezar a programar!!
-
bueno ya tengo medio hecho el esquemático, decidme si veis algun error:
http://foroscatv.almacenweb.com/temp/usb_pic_icsp.jpg
Como ya dije está basado en el programador todopic. Falta por implementar lo que sería la conexión usb, eso lo dejo para mañana que tengo sueño ya :p, lo que quería dejar es la parte dedicada a la programación ICSP del pic, y como ya digo sino hay ningun fallo está terminada.
una consulta para quien sepa sobre el programador paralelo en el que está basado:
- he kitado la segunda linea de 13.5v debido a que va a ser ICSP no le hace falta, no hay problema no?
- por la misma regla...debería quitar el tr1,r10,r1,c5,r8 y RB2... cierto???
Por otro lado, debido a que estamos usando un 18F2550, y este PIC tiene un oscilador dentro de hasta 8Mhz... sería factible hacer un código para no tener que utilizar ese cristal de 10Mhz, y los 2 cond de 22p???
Me gustaría intentar hacer un programa para el pic y que este fuera compatible con el IcProg, ya que, y debido a que microchip suministra los drivers de este pic, podríamos tener un puerto com virtual, y este podría ser usado por el IcProg, la historia es que llegado a este punto me pierdo :S ... sispic alguna ayudita en la programación??? :p ... me gustaría realizarlo en C.
S2! 
-
Pues sí que veo un error al darle al esquemático. El error es "No se puede descargar la página"

Jeje, supongo que se ha roto el link. Súbelo de nuevo y lo vemos.
Con respecto al resto de tus preguntas. Tengo entendido que la segunda línea de 13,5V sólo es necesaria si vas a usar la placa de zócalos del GTP, puesto que se utiliza para poder programar PICs de distintos patillajes. Si tu programador sólo va a funcionar vía ICSP no la necesitarás. De hecho, en GTP se unen las dos Vpp en una sóla en la salida ICSP.
¿Oscilador interno?, pues si la tarea que vas a realizar con el PIC es crítica en tiempos, mejor no usarlo porque no suelen ser de precisión. Y me temo que una comunicación USB debe ser muy crítica en tiempos. Pero quizás lo mejor será que lo pruebes.
Ya con el tema de la programación no te puedo ayudar. Aunque sospecho que no es algo obvio. Imagino que tendrás que implementar en el PIC todo el protocolo de comunicaciones necesario para grabar otro PIC. Ni idea de la compatibilidad con ICProg...
-
Escrito originalmente por nocturno66
Pues sí que veo un error al darle al esquemático. El error es "No se puede descargar la página" 
Jeje, supongo que se ha roto el link. Súbelo de nuevo y lo vemos.
Con respecto al resto de tus preguntas. Tengo entendido que la segunda línea de 13,5V sólo es necesaria si vas a usar la placa de zócalos del GTP, puesto que se utiliza para poder programar PICs de distintos patillajes. Si tu programador sólo va a funcionar vía ICSP no la necesitarás. De hecho, en GTP se unen las dos Vpp en una sóla en la salida ICSP.
¿Oscilador interno?, pues si la tarea que vas a realizar con el PIC es crítica en tiempos, mejor no usarlo porque no suelen ser de precisión. Y me temo que una comunicación USB debe ser muy crítica en tiempos. Pero quizás lo mejor será que lo pruebes.
Ya con el tema de la programación no te puedo ayudar. Aunque sospecho que no es algo obvio. Imagino que tendrás que implementar en el PIC todo el protocolo de comunicaciones necesario para grabar otro PIC. Ni idea de la compatibilidad con ICProg...
Mira ahora, esq esta noxe el pc ha petado y por tanto el server http :P
Queda claro entonces que la segunda linea de 13.5 no hace falta, pero...tr1,r10,r1,c5,r8 y RB2 tampoco no?
He encontrado un fallo, esta noche lo arreglo, es que se me ha olvidado conectar la linea de 13.5 :P, lo hice aprisa y corriendo y pasa lo q pasa jejeje. lo dicho a ver si esta noche dejo listo el esquematico.
Respecto al oscilador interno...no se si me he expresado mal, me refiero a que dentro del pic lleva un cristal de cuarzo, es decir, que sería igual que colocarlo fuera, o al menos eso creo.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en010280
http://ww1.microchip.com/downloads/en/DeviceDoc/39632b.pdf
Ese es el pdf del 18F2550 por si quereis ojearlo.
Sobre la implementación del protocolo de grabación eso es a lo que me refería, con alguna ayudita
, aunq me imagino que en la propia microchip vendrá el como, incluso supongo que en el datasheet, aquí es donde mas me voy a atrancar, asiq... a leer me toca.
salu2!
-
Me gustaría intentar hacer un programa para el pic y que este fuera compatible con el IcProg, ya que, y debido a que microchip suministra los drivers de este pic, podríamos tener un puerto com virtual, y este podría ser usado por el IcProg, la historia es que llegado a este punto me pierdo :S ... sispic alguna ayudita en la programación??? :p ... me gustaría realizarlo en C.
******************************************************************
Si es que quieres hacer el programamita para usarlo con el IcProg , deberías consultar aqui http://www.ic-prog.com/index1.htm no crees ???
-
jode sispic no esperaba esa respuesta ... :S
La verdad me da igual que software usar, ya sea el winpic800 o el icprog o el q sea, lo de usar el icprog lo decía ya que debído a que es compatible con varios programadores quizá haciendo pasar al mio por uno de ellos este sería mas portable... no iba con otra intencion... en cualquier caso siento si te he ofendido ...
salu2
-
Creo q empiezo a entender un pokillo el como programarlos, por si alguien está interesado os dejo los datasheets de programacion para las distintas series (por el momento os pongo solo el de la serie PIC18F2XX0/2XX5/4XX0/4XX5), siempre ciñendome a ICSP (q creo q es la forma mas facil y mas barata d programar), utilizaremos el modo de programación: "High-Voltage ICSP mode", aunque este pic tambien soporta el low-voltage, como mi intención es hacerlo también para la serie 16, así nos ahorramos follones mas tarde, ya que esta serie no lo soporta (la 16).
Programming Specification:
http://ww1.microchip.com/downloads/en/DeviceDoc/39622c.pdf
Respecto a la linea RB2/Vdd, como ya he dicho la voy a eliminar en principio del circuito, ya que (y he de suponer), en el circuito que vayamos a programar el pic lleva su propia alimentacion (5v).
Aunque me queda un par de dudas sobre el esquematico del programador... RA0, y RA1, para que se utilizan??, puede que me equivoque pero... es para "habilitar" la linea de 13.5?? podría también hacerse con un solo puerto?? se hace con 2 por seguridad?, es decir, para que no se active cuando no debe?? no termino de entenderlo.
edito: sispic me gustaría usar el winpic800, de que forma lo has programado para el envio de datos? es decir, en el momento de pulsar la tecla programar, que datos mandas? envias directamente el codigo? o realizas una comprobación antes?
no sabia q esto iba a ser tan complicado
... poco a poco.. 
salu2!
pd: he revisado la plakita y creo q ya está lista a falta de q algo no esté donde debiera
, en la misma dir q la otra: http://foroscatv.almacenweb.com/temp/usb_pic_icsp.jpg
-
Pero si no me ofendo hombre , solo que con el icprog yo no te puedo ayudar , abria que saver como lo han diseñado y maneja los puertos .
En cuanto al GTP_USB , en realidad es rs232 por el momento . Se comunica con el pic a 115.000 bps y en el estan implementados todos los algoritmos de programación .
Asi que de todo el trabajo se encarga el pic , detectar , programar leer etc . y todo esto a las ordenes del maestro pc que se encarga de mandarle los comandos y bytes de cada posicion etc.
En cuanto a estos usb pic18fxx5x , lo uno que se ganara es en simplicidad y algo mas rapido en los protocolos (vastante mas) , autodeteccion del programador cuando se conecte y mas cosas .
lo puedes intentar como un puerto com virtual , pero su velocidad se dividira por 100 , 100 es por decir algo , en el caso por ejemplo de un 18f8720 tendrias que tomartelo con calma y dejarlo por la noche .
Los algoritmos de programacion son muy faciles , lo mas dificil es sincronizar con el pc , ademas de que los nuevos usb no hay muchos ejemplos de momento que yo sepa .
Esta es mi opinion .
un saludo
-
Gracias por responder
la verdad es que la info y ejemplos son contados :S lo único que tengo es:
http://www.alecmcnamara.freeserve.co.uk/piccalc/
http://www.alecmcnamara.freeserve.co.uk/picnetusb/index.htm
http://www.alanmacek.com/usb/
Aunq son para el 16C745 alguna idea puedo ir tomando...y bueno el compilador C18, que aunq aun no he instalado la última actualización, supongo que en ella incluirán algo de este pic (18F2550). Ya que en microchip se encuentra la info justita ![Helado Helado]()
Como ya te decía lo primero que intentaré será hacer un programa para el PC que consiga enviar/recibir datos a/del pic. Haber si me llegaran en Enero los samples :S
De vuelta al programador... Tengo una duda en el elevador de tensión, que tiempos utilizas en la carga/descarga de los condensadores, si no me equivoco la secuencia sería:
- 00 [(Las 2 patas a 0) para empezar la carga de los condensadores
- 10 [Cargas el segundo condensador a 10V]
- 11 [Obtienes a la salida 15V]
- 00 [Vuelta a empezar]
No serían 15 sino 12.5 por las caidas en los diodos y demás, el problema es, que tiempos dejar entre fase y fase??
Por otro lado he encontrado un fallllito en el esquematico, a ver si esta noche me da tiempo a editarlo, el problema está en Vusb, no va a masa sino a un Cdesacoplo y una Res de 1.7K a la linea D- ... tengo que mirarlo mejor.
Salu2!
-
Comentaos que habia varias partes del antiguo diseño que no me convencían y he modificado el esquemático casi en su totalidad, ahora es mucho mas sencillo, mas barato, y mas compacto, el funcionamiento será distinto, os presento a "Pupi" jejeje.. aqui el esquemático, si no hay ningún fallo o modificación empezaré a programar con respecto a el, a excepción del cristal y los dos condensadores que viendo el datasheet del 18F2550, es posible que puedan ser eliminados, ya que el reloj interno hay q activarlo para trabajar con el USB, así aprovecharía tanto para el usb, que habría que activar el PLL interno aparte, como para el propio reloj del sistema, tengo que leer mas sobre esto, para estar seguro (tb saber como leches se programa esto del pll q no me ha kedado klaro del todo!), pero estoy casi convencido que tb se podrá eliminar! asiq mas barato, y mas sencillo aún!
http://foroscatv.almacenweb.com/temp/PuPi.jpg
Bueno os comento un poco la teoría de funcionamiento del cacharro.
La linea de 5v la cojeremos del propio usb del PC, alimentaremos al circuito del elevador de tensión, para ello mandaremos una secuencia de pulsos a través de las patas RC1 y RC2 (tengo que ver si lo puedo hacer mediante PWM (ya que tiene 2 modulos) y así descargar al micro de trabajo, sino puesss a webo!
, con esto conseguiremos la Vpp necesaría para programar el pic, que solo estará "disponible" cuando pongamos a "1" la linea ACT.
Por otra parte tendremos el LED, que estará activo cuando conectemos el PuPi (peazo nombre ^^) al PC, y parpadeando mientras estemos programando.
Las demás patas de salida son:
- 0.3v : Tensión de alimentación del pic a programar, según las especificaciones es la minima tensión que necesita un pic para funcionar y la máxima tensión de salida de una puerta, por lo tanto nos viene perfecto para alimentar al PIC a programar cuando queramos
- D+ y D- : tensiones diferenciales de funcionamiento del USB
- data y clock : salida de datos y reloj respectivamente del programador hacia el pic a programar.
Bueno a grandes rasgos esto es todo, sino hay ningun fallo de diseño toca empezar a programar!!
Salu2!
-
Realmente te felicito J1m ya que veo que le estas hechando todos los kilos a tu programador (pupi) tiene muy buena pinta y seria agradable verlo terminado y funcionando, lastima que estos pics salieron cuando ya no me llegan muestras. ni modo.
Animo que hay la llevas. Hasta pronto
-
Hola J1M...
Muy bueno lo tuyo... con respecto a la segunda línea de Vpp , si bien no es necesaria para el ICSP, creo que sería útil tenerla para poder hacer uso del zócalo del GTP, y de esa manera poder grabar fuera de circuito, inclusive memorias.
Por supuesto para eso será necesario un soft preparado para el caso.
No se si Sisco tendrá mucho trabajo como para hacer algo directo para USB en su WinPIC800, ya que la GTP/USB en realidad crea un com virtual y creo que con eso no serviría. Obviamente la gestión de programación la debe hacer el PIC y habrá que indicarle cual de las Vpp es la que corresponde a cada PIC...
Es solo una idea...
Un abrazo y felicitaciones.
marmatar
-
Gracias por el apoyo
la verdad es que ayuda a seguir adelante.
Respecto a la segunda linea de Vpp, en principio el PuPi está pensado solo para programar mediante ICSP, y debido a la tensión que va a usar solo para la serie Flash, una vez tenga este funcionando lo ampliaré para ponerle un socket ZIF, y q programe tanto los F, como los C, ya que esto requiere algo mas de trabajo y es mas complicadillo :p.
Respecto al Winpic800 ... se pueden hacer varias cosas respecto a la programación del PIC, una es usar el HID, que está incluido en windows dese el 98SE (velocidad limitada a 800bytes/s), usar el CDC, que consiste en la emulación del puerto COM (creo q no habría q modificar nada en el winpic...) con el driver de microchip, y la última es utilizar la dll y drivers d microchip, se consigue la velocidad máxima del USB2.0, esta info la teneis aqui:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1486
Para empezar sería interesante usar el CDC (o el HID si en el winpic diera follones el anterior, q espero q no!), en un futuro desarrollar una aplicación con su dll estaría para un 10 
Por otro lado, estoy revisando el eskema, esta parte en concreto:
- 0.3v : Tensión de alimentación del pic a programar, según las especificaciones es la minima tensión que necesita un pic para funcionar y la máxima tensión de salida de una puerta, por lo tanto nos viene perfecto para alimentar al PIC a programar cuando queramos
Creo q el pic necesita 5v a la hora d la programación, por lo q es posible q modifike el esquema para adaptar esto, sin embargo he visto un programador que hace uso de los 0.3 para alimentar al pic a programar, e intento saber el como y el pq :P
salu2! 
pd: parece que en la última versión del CCS hay programas de ejemplo para el usb... creo q voy a utilizar este compilador ya que el C18 es una locura!!
-
He encontrado esta aplicación en microchip:
Es el codigo fuente tanto del programador (en asm), como del programa (en visual basic), del pickit 1 flash, programador para pics por usb de microchip, es una buena ayuda para entender un poco la programación de pics gobernada por otro pic.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en012103
Salu2! 
PD:Si alguien tiene mas código referente a lo anterior sería bienvenido.
PD2: Felices Fiestas a todos!!!!!!
-
Por fin me han llegado los samples del 18F2550!!!


La cosa es... como los programo?? no he encontrado ningun software que los soporte!..
Sispic alguna ayudita d las tuyas?? 
Gracias! y a ver si puedo retomar el caxarro este pronto, q entre los examenes y el PFC no hay tiempo.... y aún hay gente q dice q se aburre... cawen to!!!
Salu2!
-
No te preocupes , solo falta que caiga alguno en mis manos para provar si hay algun bug .
Pero si te corre prisa te mando la version no oficial y cacharreas .
-
Me vendría mb!
lo que no se es si voy a poder trastearlo ahora en condiciones, casi q me espero al 12F pq sino estoy viendo q me olvido d los examenes.. jeje
te mando una dir al prv donde meterlo, es mi ftp, muchas gracias sisco 
pd: a mi me han mandado 5 samples, si aun te van a tardar en llegar lo tuyo te mando uno aunq sea en soic, ya me diras!
Salu2!
-
J1M, vengo del foro de noticas3d recomendado por ti xD. Alli soy karambola.
Muchas gracias por la ayuda tio.
PD: Peazo de foro que teneis por aqui xD.
Un Saludo.
-
Wellcome to the jungle!

Y espero q tu estancia x estos lares sea larrrga! y en breve veamos tu primer caxarrillo :p
Salu2! y bienvenido