Expresate

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

Avisos
Vaciar todo

Cómo construir un ICSP

29 Respuestas
6 Usuarios
0 Reactions
10.9 K Visitas
mif
Respuestas: 1095
 Mif
Topic starter
(@mif)
Noble Member
Registrado: hace 19 años

Hola gentecilla, he descubierto tras muchas horas perdidas que la placa que tengo diseñada para mi 16F876, funciona extraño cuando le hago imposición de manos, es decir, acerco las manos y se le va la pinza... no hay cortos, no hay cortes, y cuando estoy lejos funciona estupendamente, de modo que he decidido divorciarme de ella, y montarme una nueva con una placa de topos por comodidad.

El tema es que me gustaría montarla con ICSP, pero ando un poco perdido con el tema, en internet veo muhca información, pero siempre usan un programador para pasar del pc al pic, como el GTP-USB, o el TE20, el caso es que me gustaría hacerlo entero, es decir que mi placa sea programable de por si, pero para eso no hay tanta información.

¿Es posible que el sistema sea tan sencillo como este?:
ICSP

Pero no entiendo como va a ser posible conectar directamente el USB al 16F876, y quienes son Data y Clock cuando el USB solo tiene D+ y D-?
¿No debería ir conectado al puerto Com?
¿Cómo se configuraría el WinPic800 para este tipo de programador?
¿Cómo es posible que todo lo que haga falta sea un diodo cuando mi TE20 lleva mas de 20 componentes?

En fin, tengo muchas dudas sobre el tema, a ver si alguien sabe como montarlo.

Muchas gracias por la ayuda.

Responder
28 respuestas
eagleman
Respuestas: 25
(@eagleman)
Eminent Member
Registrado: hace 20 años

Hola,

El protocolo ICSP es un protocolo que ha hecho microchip para poder programar los pics en la propia placa del proyecto sin necesidad de llevarlos a un programador externo. Por ello lo que ha hecho furri es una buena idea, realmente utiliza las mismas señales que si pusiese fisicamente el chip en el programador, pero mediante un pequeño conector lleva las señales directamente al pic.

Los programas como el winpic800 y el ic-prog lo que hacen es leer el fichero .hex y mandarlo, siguiendo el protocolo ICSP de microchip, por alguno de los puertos del ordenador a un programador que su única función es adatar las señales de dicho puerto a las señales que realmente entiende el micro, la adaptación normalmente es por tensión o inversión de la señal.

Con respecto al bus USB yo creo que sería necesaria electrónica adicional (de esto no estoy demasiado convencido, habría que estudiarlo con detenimiento. Me parece mucho tiempo para la rentabilidad que se obtendría), además la programación del bus USB para implementar el protocolo ICSP es bastante más compleja que para el puerto serie o para el paralelo.

Para finalizar, el bootloader es un pequeñisimo programa (256 posiciones) escrito en ensamblador que se guarda en las últimas 256 posiciones de memoria del pic. Cuando este arranca comienza la ejecución del bootloader y si este no recibe nada del programa que le envia el .hex que nosotros hemos programado transfiere el puntero del contador de programa a la dirección 0 donde comenzará la ejecución del programa grabado. En este caso tenemos dos opciones:
a) No hay ningún programa: El pic no realizará nada
b) Hay un programa grabado: El pic comenzará su ejecución.

Una de las grandes ventajas es que no es necesario ningún componente adicional, solo tienes que conectar el pic al puerto serie del ordenador.
Como circuito tienes la placa SkyPic que está preparada para conectarse al puerto serie.
http://www.iearobotics.com/proyectos/skypic/skypic.html

Con respecto al software todo es libre (GPL).
Te pongo algunos links para que no tengas qeu recorrerte toda la página:
1) Guía de instalación del software (Nosotros usamos el SDCC pero puedes usar también ensamblador)
http://www.iearobotics.com/talleres/gen ... ndows.html
2) Guía de grabación con un ejemplo
http://www.iearobotics.com/talleres/gen ... mundo.html
3) Ahora no encuentro el link con el bootloader.hex en cuando lo vea lo pongo en el foro, de todas formas está en la web pero no me acuerdo donde.

Espero que te hay podido aclarar algo, sino dilo y veremos que podemos hacer.

Responder
mif
Respuestas: 1095
 Mif
Topic starter
(@mif)
Noble Member
Registrado: hace 19 años

Veo que tenemos el mismo programador furri.
segun tu idea entonces lo que puedo hacer es montar el cuircuito básico del TE20 sobre mi placa del micro, y asi lo tengo todo en uno, no? Además podria hacerle la alimentación externa, asi lo puedo usar en el portatil tb. La placa la he diseñado dejando bastante hueco, precisamente por si tenia que hacer eso de modo que me cabrá todo junto.
El diodo que dices, si no me equivoco es para la alimentación de 12V, a ver si luego te puedo buscar algo de informacion sobre el, que ahora me voy a por un cuarzo de 16Mhz, y había quedado con María a las 5... no llego.

Responder
furri
Respuestas: 2708
(@furri)
Ardero
Registrado: hace 20 años

Yo antes de montar todo un programador TE20 en mi circuito sopesaria lo del Bootloader, si es compatible con todos los micros o al menos con los mas usados yo me decantaria por esta opción... habrá que mirar los enlaces que ha enviado Eagleman.

Responder
mif
Respuestas: 1095
 Mif
Topic starter
(@mif)
Noble Member
Registrado: hace 19 años

perdona EagleMan, hemos escrito mas o menos a la vez y no he visto tu mensaje. Es muy interesante el tema del bootloader, luego lo mirare con detenimiento, porque creo que esa solución puede ser realmente interesante, pero... una curiosidad, a que patillas conectais el puerto serie del ordenador, a PGD y PGC (RB7 yRB6) o a TX y RX (RC7 y RC6)
Entonc es, si no he entendido mal, el bootloader lo unico que hace es leer lo que pasa el puerto serie, y guardarlo en la memoria del micro... como si se autoprogramase, ¿no? es muy interesante, desde luego... Puede que mi espíritu de electrónico me lleve a pensar que me sería más facil montarme un TE20 en mi placa, que hacer el tema del Bootloader, claro que tal y como lo has explicado, indudablemente es mas sencillo con vuestro sistema.
El Bootloader... evidentemente cambiará segun el micro, ¿no?
Es muy dificil de modificar, o de encontrar para otros micros? de moemnto yo uso el 16F876, y vosotros el 877, no creo que sea exactamente igual, no?

Mil gracias por vuestras respuestas.

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

Mif, no confundas terminos. Una cosa es el bootloader y otra cosa el protocolo ICSP.

Si mal no recuerdo de la página de EagleMan, el bootloader no tiene nada que ver con el protocolo ICSP, sino que se conecta a través del puerto serie del PIC (mediante un MAX).

S2

Ranganok Schahzaman

Responder
Página 2 / 6
Compartir: